From 5d805ba55059750e79c8b507d164c55a14c6d737 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 28 Nov 2016 13:14:56 -0500 Subject: 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 --- klippy/serialhdl.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'klippy/serialhdl.py') 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 -- cgit v1.2.3-70-g09d2