I am building some kind of small virtual printer with python.
I read all data coming from a serial port in ASCII format and I can save into a file the prints coming.
I'd need to find a method to correctly separate one print from the other...
Here's the code so far:
# get lines of text from serial port, save them to a file
from __future__ import print_function
import serial, io
addr = '/dev/ttyUSB0' # serial port to read data from
baud = 115200 # baud rate for serial port
fname = 'serial.dat' # log file to save data in
fmode = 'a' # log file mode = append
with serial.Serial(addr,baud) as pt, open(fname,fmode) as outf:
spb = io.TextIOWrapper(io.BufferedRWPair(pt,pt,1),
encoding='ascii', errors='ignore', newline='\r',line_buffering=True)
spb.readline() # throw away first line; likely to start mid-sentence (incomplete)
x = spb.readline() # read one line of text from serial port
print (x,end='') # echo line of text on-screen
outf.write(x) # write line of text to file
outf.flush() # make sure it actually gets written out