mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-15 18:58:03 -06:00
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>
This commit is contained in:
parent
5d805ba550
commit
535c7b99b4
4 changed files with 34 additions and 42 deletions
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue