Index: leahi_dialin/td/modules/buttons.py =================================================================== diff -u -r313abfccbc36a4af235361c7a3961ccf7a74bd8d -r862daa5b6357ddaba02aa7d1fb9d0952e4a16e6f --- leahi_dialin/td/modules/buttons.py (.../buttons.py) (revision 313abfccbc36a4af235361c7a3961ccf7a74bd8d) +++ leahi_dialin/td/modules/buttons.py (.../buttons.py) (revision 862daa5b6357ddaba02aa7d1fb9d0952e4a16e6f) @@ -21,7 +21,7 @@ # 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 MsgIds, 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 from leahi_dialin.utils.abstract_classes import AbstractSubSystem @@ -50,18 +50,25 @@ 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 - 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): """ @@ -74,17 +81,27 @@ self.logger.debug("Poweroff message id detected, but was the wrong length.") return - msg_list = [] - msg_list.append(('mode', DataTypes.U16)) + 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 - result = self.process_into_vars(decoder_list = msg_list, - message = message) - if len(result['mode']) > 0: - self.poweroff_timeout_expired = bool(result['mode'][0]) - self.td_power_off_timestamp = timestamp +# ============================================================ 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