adding flags for CTS-DSR hack and "safe" flow control

This commit is contained in:
Adam Mayer 2017-12-15 17:09:10 -05:00
parent 57474bad8c
commit 49db82f099
1 changed files with 18 additions and 9 deletions

View File

@ -11,19 +11,28 @@ def plot_to_svg(instream, outstream):
class Apple410:
"""A simple class for queing up commands for the Apple 410"""
def __init__(self, portname, baud=9600):
self.serial = serial.Serial(portname, baud, rtscts=True, dsrdtr=True, timeout=0.1)
def __init__(self, portname, baud=9600, flow_control_safe=False, cts_hack=False):
self.serial = serial.Serial(portname, baud, rtscts=False, dsrdtr=True, timeout=0.1)
self.pos = (0,0)
self.wd = self.vp = (0,0,2394,1759)
self.flow_control_safe = flow_control_safe
self.cts_hack = cts_hack
def sendchar(self, c):
self.serial.flush()
while not self.serial.cts:
time.sleep(0.2)
while not self.serial.dsr:
time.sleep(0.2)
self.serial.write(c.encode('ascii'))
self.serial.flush()
if self.flow_control_safe:
self.serial.write(c.encode('ascii'))
elif self.cts_hack:
self.serial.flush()
while not self.serial.cts:
time.sleep(0.2)
self.serial.write(c.encode('ascii'))
self.serial.flush()
else:
self.serial.flush()
while not self.serial.dsr:
time.sleep(0.2)
self.serial.write(c.encode('ascii'))
self.serial.flush()
def send(self, command):
for c in command: