mcu: Default the restart method to 'command' on non-serial ports
If the mcu supports command restarts and it does not appear to use a real serial port, then default the restart method to 'command'. This is a better default on boards with native USB support. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
a67306c76b
commit
077a56c2ca
|
@ -264,7 +264,7 @@ serial: /dev/ttyACM0
|
|||
pin_map: arduino
|
||||
# This option may be used to enable Arduino pin name aliases. The
|
||||
# default is to not enable the aliases.
|
||||
#restart_method: arduino
|
||||
#restart_method:
|
||||
# This controls the mechanism the host will use to reset the
|
||||
# micro-controller. The choices are 'arduino', 'rpi_usb', and
|
||||
# 'command'. The 'arduino' method (toggle DTR) is common on Arduino
|
||||
|
@ -273,7 +273,8 @@ pin_map: arduino
|
|||
# disables power to all USB ports to accomplish a micro-controller
|
||||
# reset. The 'command' method involves sending a Klipper command to
|
||||
# the micro-controller so that it can reset itself. The default is
|
||||
# 'arduino'.
|
||||
# 'arduino' if the micro-controller communicates over a serial port,
|
||||
# 'command' otherwise.
|
||||
|
||||
# The printer section controls high level printer settings.
|
||||
[printer]
|
||||
|
|
|
@ -428,9 +428,9 @@ class MCU:
|
|||
# Restarts
|
||||
self._restart_method = 'command'
|
||||
if baud:
|
||||
rmethods = {m: m for m in ['arduino', 'command', 'rpi_usb']}
|
||||
rmethods = {m: m for m in [None, 'arduino', 'command', 'rpi_usb']}
|
||||
self._restart_method = config.getchoice(
|
||||
'restart_method', rmethods, 'arduino')
|
||||
'restart_method', rmethods, None)
|
||||
self._reset_cmd = self._config_reset_cmd = None
|
||||
self._emergency_stop_cmd = None
|
||||
self._is_shutdown = self._is_timeout = False
|
||||
|
@ -600,6 +600,12 @@ class MCU:
|
|||
self._emergency_stop_cmd = self.lookup_command("emergency_stop")
|
||||
self._reset_cmd = self.try_lookup_command("reset")
|
||||
self._config_reset_cmd = self.try_lookup_command("config_reset")
|
||||
if (self._restart_method is None
|
||||
and (self._reset_cmd is not None
|
||||
or self.config_reset_cmd is not None)
|
||||
and self._serial.msgparser.get_constant(
|
||||
'SERIAL_BAUD', None) is None):
|
||||
self._restart_method = 'command'
|
||||
self.register_msg(self.handle_shutdown, 'shutdown')
|
||||
self.register_msg(self.handle_shutdown, 'is_shutdown')
|
||||
self.register_msg(self.handle_mcu_stats, 'stats')
|
||||
|
|
Loading…
Reference in New Issue