Loading animation added
This commit is contained in:
@@ -36,7 +36,7 @@ from watchdog.events import PatternMatchingEventHandler
|
|||||||
from typing import Dict, List, Optional, Tuple, Union
|
from typing import Dict, List, Optional, Tuple, Union
|
||||||
|
|
||||||
|
|
||||||
BUFFER_SIZE: int = 256
|
BUFFER_SIZE: int = 126
|
||||||
PRINT_STRPAD = '\t\t =>'
|
PRINT_STRPAD = '\t\t =>'
|
||||||
|
|
||||||
|
|
||||||
@@ -107,6 +107,7 @@ class Telnet:
|
|||||||
|
|
||||||
|
|
||||||
class Pyboard(object):
|
class Pyboard(object):
|
||||||
|
i: int = 0
|
||||||
serial: Union[Serial, Telnet]
|
serial: Union[Serial, Telnet]
|
||||||
|
|
||||||
def __init__(self, device: str, baudrate: int = 115200, login: str = '', password: str = ''):
|
def __init__(self, device: str, baudrate: int = 115200, login: str = '', password: str = ''):
|
||||||
@@ -127,6 +128,12 @@ class Pyboard(object):
|
|||||||
def close(self):
|
def close(self):
|
||||||
self.serial.close()
|
self.serial.close()
|
||||||
|
|
||||||
|
def loading(self) -> int:
|
||||||
|
arrows = ['◜', '◝', '◞', '◟']
|
||||||
|
sys.stdout.write(f'[∘] Loading... {arrows[self.i]}\r')
|
||||||
|
sys.stdout.flush()
|
||||||
|
self.i = (self.i + 1) % 4
|
||||||
|
|
||||||
def stdout_write_bytes(self, data: str):
|
def stdout_write_bytes(self, data: str):
|
||||||
sys.stdout.buffer.write(data.replace(b'\x04', b''))
|
sys.stdout.buffer.write(data.replace(b'\x04', b''))
|
||||||
sys.stdout.buffer.flush()
|
sys.stdout.buffer.flush()
|
||||||
@@ -176,6 +183,8 @@ class Pyboard(object):
|
|||||||
if stream_output:
|
if stream_output:
|
||||||
self.stdout_write_bytes(stream_data)
|
self.stdout_write_bytes(stream_data)
|
||||||
data = data[-max_len:]
|
data = data[-max_len:]
|
||||||
|
else:
|
||||||
|
self.loading()
|
||||||
else:
|
else:
|
||||||
timeout += 1
|
timeout += 1
|
||||||
time.sleep(0.001)
|
time.sleep(0.001)
|
||||||
@@ -217,6 +226,7 @@ class Pyboard(object):
|
|||||||
raise Exception('Terminal: prompt has been lost')
|
raise Exception('Terminal: prompt has been lost')
|
||||||
|
|
||||||
for i in range(0, len(command), BUFFER_SIZE):
|
for i in range(0, len(command), BUFFER_SIZE):
|
||||||
|
self.loading()
|
||||||
self.serial.write(command[i: min(i + BUFFER_SIZE, len(command))])
|
self.serial.write(command[i: min(i + BUFFER_SIZE, len(command))])
|
||||||
time.sleep(0.001)
|
time.sleep(0.001)
|
||||||
|
|
||||||
@@ -519,9 +529,9 @@ class Picowatch(object):
|
|||||||
if status:
|
if status:
|
||||||
for name, size in output:
|
for name, size in output:
|
||||||
if size == -1:
|
if size == -1:
|
||||||
print('[.]', name[1:])
|
print('[*]', name[1:])
|
||||||
else:
|
else:
|
||||||
print('[:]', name[1:], f'({size}b)')
|
print('[.]', name[1:], f'({size}b)')
|
||||||
else:
|
else:
|
||||||
print('[?]', remote, PRINT_STRPAD, exception)
|
print('[?]', remote, PRINT_STRPAD, exception)
|
||||||
|
|
||||||
@@ -611,7 +621,7 @@ class Picowatch(object):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
print('Welcome to picowatch lib.')
|
print('Welcome to Picowatch Terminal')
|
||||||
# picowatch = False
|
# picowatch = False
|
||||||
|
|
||||||
# while not picowatch:
|
# while not picowatch:
|
||||||
@@ -629,8 +639,6 @@ print('Welcome to picowatch lib.')
|
|||||||
picowatch = Picowatch(Pyboard('COM5'))
|
picowatch = Picowatch(Pyboard('COM5'))
|
||||||
picowatch.interupt()
|
picowatch.interupt()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# sessions = {'deleted': set(), 'modified': set()}
|
# sessions = {'deleted': set(), 'modified': set()}
|
||||||
|
|
||||||
# def on_modified_callback(event):
|
# def on_modified_callback(event):
|
||||||
|
|||||||
Reference in New Issue
Block a user