diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2021-01-30 00:01:23 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2021-03-02 11:38:50 -0500 |
commit | 9d3a3f3f306af5f1fbd39e537e10392f03f5b27d (patch) | |
tree | f4c5a0ae1c9504fe473af069eab82a167db876f6 /klippy/mcu.py | |
parent | bc2096f543cd437591de7d038911c6c1139b5bd5 (diff) | |
download | kutter-9d3a3f3f306af5f1fbd39e537e10392f03f5b27d.tar.gz kutter-9d3a3f3f306af5f1fbd39e537e10392f03f5b27d.tar.xz kutter-9d3a3f3f306af5f1fbd39e537e10392f03f5b27d.zip |
serialhdl: Update callers to decide serial fd type
Don't try to detect a "real serial port" in serialhdl.py. Instead,
have the callers invoke either connect_uart(), connect_file(), or
connect_pipe().
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/mcu.py')
-rw-r--r-- | klippy/mcu.py | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/klippy/mcu.py b/klippy/mcu.py index fe540962..7c6529a2 100644 --- a/klippy/mcu.py +++ b/klippy/mcu.py @@ -410,24 +410,18 @@ class MCU: self._name = self._name[4:] # Serial port self._serialport = config.get('serial') - serial_rts = True - if config.get('restart_method', None) == "cheetah": - # Special case: Cheetah boards require RTS to be deasserted, else - # a reset will trigger the built-in bootloader. - serial_rts = False - baud = 0 + self._baud = 0 if not (self._serialport.startswith("/dev/rpmsg_") or self._serialport.startswith("/tmp/klipper_host_")): - baud = config.getint('baud', 250000, minval=2400) - self._serial = serialhdl.SerialReader( - self._reactor, self._serialport, baud, serial_rts) + self._baud = config.getint('baud', 250000, minval=2400) + self._serial = serialhdl.SerialReader(self._reactor) # Restarts + restart_methods = [None, 'arduino', 'cheetah', 'command', 'rpi_usb'] self._restart_method = 'command' - if baud: - rmethods = {m: m for m in [None, 'arduino', 'cheetah', 'command', - 'rpi_usb']} - self._restart_method = config.getchoice( - 'restart_method', rmethods, None) + if self._baud: + rmethods = {m: m for m in restart_methods} + self._restart_method = config.getchoice('restart_method', + rmethods, None) self._reset_cmd = self._config_reset_cmd = None self._emergency_stop_cmd = None self._is_shutdown = self._is_timeout = False @@ -612,12 +606,18 @@ class MCU: if self.is_fileoutput(): self._connect_file() else: - if (self._restart_method == 'rpi_usb' - and not os.path.exists(self._serialport)): + resmeth = self._restart_method + if resmeth == 'rpi_usb' and not os.path.exists(self._serialport): # Try toggling usb power self._check_restart("enable power") try: - self._serial.connect() + if self._baud: + # Cheetah boards require RTS to be deasserted + # else a reset will trigger the built-in bootloader. + rts = (resmeth != "cheetah") + self._serial.connect_uart(self._serialport, self._baud, rts) + else: + self._serial.connect_pipe(self._serialport) self._clocksync.connect(self._serial) except serialhdl.error as e: raise error(str(e)) |