mcu: Verify start value equal to shutdown value when using max duration

The mcu can only enforce the max duration if the start value is the
same as the shutdown value, so verify that before configuing the mcu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2021-11-22 09:41:13 -05:00
parent 4eeb4620cd
commit d1e13b7e12
1 changed files with 6 additions and 0 deletions

View File

@ -254,6 +254,9 @@ class MCU_digital_out:
self._mcu.add_config_cmd("set_digital_out pin=%s value=%d" self._mcu.add_config_cmd("set_digital_out pin=%s value=%d"
% (self._pin, self._start_value)) % (self._pin, self._start_value))
return return
if self._max_duration and self._start_value != self._shutdown_value:
raise pins.error("Pin with max duration must have start"
" value equal to shutdown value")
self._mcu.request_move_queue_slot() self._mcu.request_move_queue_slot()
self._oid = self._mcu.create_oid() self._oid = self._mcu.create_oid()
self._mcu.add_config_cmd( self._mcu.add_config_cmd(
@ -305,6 +308,9 @@ class MCU_pwm:
self._shutdown_value = max(0., min(1., shutdown_value)) self._shutdown_value = max(0., min(1., shutdown_value))
self._is_static = is_static self._is_static = is_static
def _build_config(self): def _build_config(self):
if self._max_duration and self._start_value != self._shutdown_value:
raise pins.error("Pin with max duration must have start"
" value equal to shutdown value")
cmd_queue = self._mcu.alloc_command_queue() cmd_queue = self._mcu.alloc_command_queue()
curtime = self._mcu.get_printer().get_reactor().monotonic() curtime = self._mcu.get_printer().get_reactor().monotonic()
printtime = self._mcu.estimated_print_time(curtime) printtime = self._mcu.estimated_print_time(curtime)