diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-11-27 17:45:58 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-11-29 21:57:49 -0500 |
commit | 535c7b99b43baf50272c71fcaf52b10f1a707175 (patch) | |
tree | ce25fa2918e650c5da0ce8724f79602dfb370780 /klippy/console.py | |
parent | 5d805ba55059750e79c8b507d164c55a14c6d737 (diff) | |
download | kutter-535c7b99b43baf50272c71fcaf52b10f1a707175.tar.gz kutter-535c7b99b43baf50272c71fcaf52b10f1a707175.tar.xz kutter-535c7b99b43baf50272c71fcaf52b10f1a707175.zip |
serialhdl: Make SerialReader.connect() blocking
Use the greenlet mechanism to wait for the connection to come up in
the serial connect() method. This simplifies the calling code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/console.py')
-rwxr-xr-x | klippy/console.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/klippy/console.py b/klippy/console.py index 21cd5f4d..94476007 100755 --- a/klippy/console.py +++ b/klippy/console.py @@ -18,9 +18,14 @@ class KeyboardReader: util.set_nonblock(self.fd) self.pins = None self.data = "" - self.reactor.register_fd(self.fd, self.process_kbd) + reactor.register_fd(self.fd, self.process_kbd) + self.connect_timer = reactor.register_timer(self.connect, reactor.NOW) self.local_commands = { "PINS": self.set_pin_map, "SET": self.set_var } self.eval_globals = {} + def connect(self, eventtime): + self.ser.connect() + self.reactor.unregister_timer(self.connect_timer) + return self.reactor.NEVER def update_evals(self, eventtime): f = self.ser.msgparser.config.get('CLOCK_FREQ', 1) c = self.ser.get_clock(eventtime) @@ -101,7 +106,6 @@ def main(): logging.basicConfig(level=logging.DEBUG) r = reactor.Reactor() ser = serialhdl.SerialReader(r, serialport, baud) - ser.connect() kbd = KeyboardReader(ser, r) try: r.run() |