Index: dialin/dg/events.py =================================================================== diff -u -r07c40d68ea5555ae1190f92229b5e0bc3df6fa71 -re33629935d88cb1e46c04cadc630e63e1e3c9058 --- dialin/dg/events.py (.../events.py) (revision 07c40d68ea5555ae1190f92229b5e0bc3df6fa71) +++ dialin/dg/events.py (.../events.py) (revision e33629935d88cb1e46c04cadc630e63e1e3c9058) @@ -174,9 +174,9 @@ event_data_2 = DGOpModes(event_data_2).name # Check if the event state name is sub mode change. elif event_state_name == DGEventList.DG_EVENT_SUB_MODE_CHANGE.name: - # Get the length of the list of the sub mode list + # Get the length of the list of the op mode list op_list_len = len(self._dg_event_dictionary[DGEventList.DG_EVENT_OP_MODE_CHANGE.name]) - # Get the last tuple of the sub mode + # Get the last tuple of the op mode # It is a list of tuples that each tuple is (timestamp, event type, prev op mode, current op mode) last_op_tuple = self._dg_event_dictionary[DGEventList.DG_EVENT_OP_MODE_CHANGE.name][op_list_len - 1] Index: dialin/hd/alarms.py =================================================================== diff -u -r7ea4b936cef531b2cde9053ae58b7119a3bf0e6c -re33629935d88cb1e46c04cadc630e63e1e3c9058 --- dialin/hd/alarms.py (.../alarms.py) (revision 7ea4b936cef531b2cde9053ae58b7119a3bf0e6c) +++ dialin/hd/alarms.py (.../alarms.py) (revision e33629935d88cb1e46c04cadc630e63e1e3c9058) @@ -56,9 +56,6 @@ START_POS_ALARMS_FLAGS = END_POS_ALARM_SILENCE_EXPIRES_IN END_POS_ALARMS_FLAGS = START_POS_ALARMS_FLAGS + 2 - START_POS_ALARM_ID = DenaliMessage.PAYLOAD_START_INDEX - END_POS_ALARM_ID = START_POS_ALARM_ID + 2 - def __init__(self, can_interface, logger: Logger): """ @param can_interface: Denali Can Messenger object @@ -99,6 +96,12 @@ self.alarm_states = [False] * 500 # alarm condition states based on received HD alarm activation and clear condition messages self.alarm_conditions = [False] * 500 + # alarm priorities based on received HD alarm activation messages + self.alarm_priorities = [0] * 500 + # alarm ranks based on received HD alarm activation messages + self.alarm_ranks = [0] * 500 + # alarm clear top only flags based on received HD alarm activation messages + self.alarm_clear_top_only_flags = [False] * 500 # alarm information self.alarm_volume = 0 @@ -150,6 +153,34 @@ """ return self.alarm_states[alarm_id] + def get_alarm_priority(self, alarm_id): + """ + Gets alarm priority for given alarm. + 0=None + 1=Low + 2=Medium + 3=High + + @return: Alarm priority + """ + return self.alarm_priorities[alarm_id] + + def get_alarm_rank(self, alarm_id): + """ + Gets alarm rank for given alarm. + + @return: Alarm rank + """ + return self.alarm_ranks[alarm_id] + + def get_alarm_clear_top_only(self, alarm_id): + """ + Gets alarm "clear top only" property for given alarm. + + @return: T/F + """ + return self.alarm_clear_top_only_flags[alarm_id] + def get_alarms_top(self): """ Gets the top alarm @@ -358,9 +389,20 @@ """ self.logger.debug("Alarm activated!") - alarm_id = struct.unpack('