Index: leahi_dialin/td/modules/buttons.py =================================================================== diff -u -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 -r3f4937e339925dde0b95f08e49969f8983c5cba4 --- leahi_dialin/td/modules/buttons.py (.../buttons.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) +++ leahi_dialin/td/modules/buttons.py (.../buttons.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) @@ -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,14 +81,26 @@ self.logger.debug("Poweroff message id detected, but was the wrong length.") return - mode = struct.unpack(DataTypes.U16.unpack_attrib(), bytearray( - message["message"][MsgFieldPositions.START_POS_FIELD_1: MsgFieldPositions.START_POS_FIELD_1 + 2])) - - if len(mode) > 0: - self.poweroff_timeout_expired = bool(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 + +# ============================================================ 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