41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import serial
|
|
import time
|
|
|
|
#ser = serial.Serial('/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0', 230400)
|
|
ser = serial.Serial('/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0', 250000)
|
|
#while True:
|
|
# ser.write(bytes(range(256)))
|
|
start = time.time()
|
|
|
|
last_val = None
|
|
run = 0
|
|
total_errors = 0
|
|
rx_bytes = 0
|
|
last_print = time.time()
|
|
while True:
|
|
bytes = ser.read(256)
|
|
for byte in bytes:
|
|
if last_val is not None and byte != (last_val + 1) % 256:
|
|
if run > 0:
|
|
print(f'{time.time()-start:>8.3f} {run} {last_val:02x} {byte:02x}')
|
|
run = 0
|
|
total_errors += 1
|
|
else:
|
|
run += 1
|
|
rx_bytes += 1
|
|
|
|
if time.time() - last_print > 5:
|
|
last_print = time.time()
|
|
print(f'{time.time()-start:>8.3f} {run} [all good] err={total_errors}@rx={rx_bytes}B',
|
|
f'(rate 1/{rx_bytes/total_errors:.5g})' if total_errors > 0 else 'rate unknown')
|
|
last_val = byte
|
|
|
|
#while True:
|
|
# data = ser.read_until(b'\0')
|
|
# print(f'{time.time()-start:>8.3f} {len(data)}')
|
|
|
|
# while True:
|
|
# data = ser.read(256)
|
|
# print('YES' if b'\0' in data else 'NO ', data)
|