Index: leahi_dialin/td/modules/buttons.py =================================================================== diff -u -r655be738c7bb307fcf3baa139acba0fb6c62ec4b -r6caa49d072aceb2655d605de5d2eea52ab1a8911 --- leahi_dialin/td/modules/buttons.py (.../buttons.py) (revision 655be738c7bb307fcf3baa139acba0fb6c62ec4b) +++ leahi_dialin/td/modules/buttons.py (.../buttons.py) (revision 6caa49d072aceb2655d605de5d2eea52ab1a8911) @@ -22,7 +22,6 @@ # Project imports from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.generic_defs import DataTypes -from leahi_dialin.common.msg_defs import MsgFieldPositions from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_override from leahi_dialin.protocols.CAN import CanMessenger, CanChannels @@ -52,19 +51,26 @@ function = self._handler_poweroff_timeout_occurred) self.td_power_off_timestamp = 0.0 #: The timestamp of the last message - self.poweroff_timeout_expired = False #: The Power Off timeout value + self.poweroff_timeout_expired = False self.handler_execution_times = [] - def reset_poweroff_timeout_expired(self): - """ - Resets the dialin poweroff timeout flag to False - @return: None +# ============================================================ Properties ============================================================ + @property + def poweroff_timeout_expired(self) -> dict: """ - self.poweroff_timeout_expired = False + The Power Off timeout value + """ + return self._poweroff_timeout_expired + @poweroff_timeout_expired.setter + def poweroff_timeout_expired(self, value): + self._poweroff_timeout_expired = value + + +# ============================================================ Handlers ============================================================ @publish(['msg_id_off_button_press_request', 'poweroff_timeout_expired', 'td_power_off_timestamp']) def _handler_poweroff_timeout_occurred(self, message, timestamp=0.0): """ @@ -78,18 +84,28 @@ self.logger.debug("Poweroff message id detected, but was the wrong length.") return - msg_list = [] - msg_list.append(('mode', DataTypes.U16)) - - result = self.process_into_vars(decoder_list = msg_list, - message = message) - - if len(result['mode']) > 0: - self.poweroff_timeout_expired = bool(result['mode'][0]) + msg_list =[] + msg_list.append((type(self).poweroff_timeout_expired, DataTypes.U16)) + + self.process_into_vars(decoder_list = msg_list, message = message) + self.poweroff_timeout_expired = bool(self.poweroff_timeout_expired) self.td_power_off_timestamp = timestamp self.handler_execution_times.append((timestamp, message, time.perf_counter() - start)) + +# ============================================================ Support ============================================================ + def reset_poweroff_timeout_expired(self): + """ + Resets the dialin poweroff timeout flag to False + + @return: None + """ + self.poweroff_timeout_expired = False + + + +# ============================================================ Overrides and Requests ============================================================ def cmd_off_button_override(self, state: int, reset: int = NO_RESET) -> int: """ Constructs and sends the Off button override command