diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-11-28 13:14:56 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-11-29 21:54:45 -0500 |
commit | 5d805ba55059750e79c8b507d164c55a14c6d737 (patch) | |
tree | 83342573f394dd96e14e1b2d6433caf495373c30 /klippy/serialhdl.py | |
parent | bafe796eeb70703ea44a368614f3cc5be0898b45 (diff) | |
download | kutter-5d805ba55059750e79c8b507d164c55a14c6d737.tar.gz kutter-5d805ba55059750e79c8b507d164c55a14c6d737.tar.xz kutter-5d805ba55059750e79c8b507d164c55a14c6d737.zip |
klippy: Run the MCU connect code within the reactor
Setup the reactor and run the MCU connection code as a timer within
the reactor. The connection code will make use of reactor greenlets
so that it can wait for events during the connection phase.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/serialhdl.py')
-rw-r--r-- | klippy/serialhdl.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/klippy/serialhdl.py b/klippy/serialhdl.py index 619d46ce..a52a8130 100644 --- a/klippy/serialhdl.py +++ b/klippy/serialhdl.py @@ -59,7 +59,7 @@ class SerialReader: def connect(self): logging.info("Starting serial connect") self.ser = serial.Serial(self.serialport, self.baud, timeout=0) - stk500v2_leave(self.ser) + stk500v2_leave(self.ser, self.reactor) self.serialqueue = self.ffi_lib.serialqueue_alloc(self.ser.fileno(), 0) SerialBootStrap(self) self.background_thread = threading.Thread(target=self._bg_thread) @@ -269,7 +269,7 @@ class SerialBootStrap: params['#msgid'], len(params['#msg']))) # Attempt to place an AVR stk500v2 style programmer into normal mode -def stk500v2_leave(ser): +def stk500v2_leave(ser, reactor): logging.debug("Starting stk500v2 leave programmer sequence") origbaud = ser.baudrate # Request a dummy speed first as this seems to help reset the port @@ -277,10 +277,10 @@ def stk500v2_leave(ser): ser.read(1) # Send stk500v2 leave programmer sequence ser.baudrate = 115200 - time.sleep(0.100) + reactor.pause(time.time() + 0.100) ser.read(4096) ser.write('\x1b\x01\x00\x01\x0e\x11\x04') - time.sleep(0.050) + reactor.pause(time.time() + 0.050) res = ser.read(4096) logging.debug("Got %s from stk500v2" % (repr(res),)) ser.baudrate = origbaud |