aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/mcu.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2021-01-30 00:01:23 -0500
committerKevin O'Connor <kevin@koconnor.net>2021-03-02 11:38:50 -0500
commit9d3a3f3f306af5f1fbd39e537e10392f03f5b27d (patch)
treef4c5a0ae1c9504fe473af069eab82a167db876f6 /klippy/mcu.py
parentbc2096f543cd437591de7d038911c6c1139b5bd5 (diff)
downloadkutter-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.py34
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))