ulisp/tdeck/sendprog.py

43 lines
982 B
Python
Executable File

#!/usr/bin/env python3
import os.path
import serial
import time
import sys
CHUNK_SIZE=8
LISP='xfer.lsp'
def chunkstring(string, length):
return (string[0+i:length+i] for i in range(0, len(string), length))
def chunkfile(path):
with open(path, 'rt') as source:
return list(chunkstring(source.read(), CHUNK_SIZE))
def readfile(path):
with open(path, 'rt') as source:
return source.read()
def select_candidate(clst):
for cand in clst:
if os.path.exists(cand):
print(f'[+] {cand}')
return cand
return None
candidates = ['/dev/ttyUSB0', '/dev/ttyACM0', '/dev/tty.usbmodem2101']
candidate = select_candidate(candidates)
seriell = serial.Serial(port=candidate, baudrate=9600)
if len(sys.argv) > 1:
paths = sys.argv[1:]
else:
paths = [LISP,]
for path in paths:
chunked = readfile(path)
for chunk in chunked:
print(chunk)
seriell.write(chunk.encode('ascii'))
time.sleep(0.1)