Index: dialin/hd/alarms.py =================================================================== diff -u -r4828fa8a43886d9dedc8f1f379a7052e423a0c90 -r43f6276a31d54216298e3174e13f7e841fa07d8e --- dialin/hd/alarms.py (.../alarms.py) (revision 4828fa8a43886d9dedc8f1f379a7052e423a0c90) +++ dialin/hd/alarms.py (.../alarms.py) (revision 43f6276a31d54216298e3174e13f7e841fa07d8e) @@ -7,8 +7,8 @@ # # @file alarms.py # -# @author (last) Micahel Garthwaite -# @date (last) 04-Apr-2023 +# @author (last) Dara Navaei +# @date (last) 27-Apr-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # @@ -41,7 +41,7 @@ HD_ALARM_LAMP_PATTERN_LOW = 5 HD_ALARM_LAMP_PATTERN_MANUAL = 6 - # Alarm states + # Alarm priority states HD_ALARM_STATE_NONE = 0 HD_ALARM_STATE_LOW = 1 HD_ALARM_STATE_MEDIUM = 2 @@ -210,17 +210,17 @@ def get_alarm_rank(self, alarm_id): """ - Gets alarm rank for given alarm. + 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. + Gets clear top only property for given alarm - @return: T/F + @return: Clear top only property (T/F) """ return self.alarm_clear_top_only_flags[alarm_id] @@ -379,6 +379,30 @@ """ return (self.alarms_flags & 64) > 0 + def get_alarm_flag_okay_button_only(self) -> bool: + """ + Gets the alarm flag Ok button only. + + @return: (bool) Alarm flag Ok button only (T/F) + """ + return (self.alarms_flags & 128) > 0 + + def get_alarm_flag_alarm_to_escalate(self) -> bool: + """ + Gets the alarm flag to escalate. + + @return: (bool) Alarm flag indicating an active alarm is due to escalate (T/F) + """ + return (self.alarms_flags & 256) > 0 + + def get_alarm_flag_is_alarm_silenced(self) -> bool: + """ + Gets the alarm flag alarm silence + + @return: (bool) Alarm flag indicating alarms are currently silenced (T/F) + """ + return (self.alarms_flags & 512) > 0 + def get_alarm_flag_lamp_on(self) -> bool: """ Gets the alarm flag lamp on. @@ -411,6 +435,15 @@ """ return (self.alarms_flags & 16384) > 0 + def get_alarm_flag_top_condition(self) -> bool: + """ + Gets the alarm flag top condition. + + @return: (bool) Top Alarm's condition is still being detected + """ + + return (self.alarms_flags & 32768) > 0 + def clear_dialin_alarms(self): """ Clears the alarms states in Dialin. @@ -437,8 +470,7 @@ @param message: published blood flow data message @return: none """ - - self.alarms_state = int.from_bytes(bytearray( + self.alarms_priority_state = int.from_bytes(bytearray( message['message'][self.START_POS_ALARM_STATE:self.END_POS_ALARM_STATE]), byteorder=DenaliMessage.BYTE_ORDER) self.alarm_top = int.from_bytes(bytearray( @@ -484,7 +516,7 @@ rank = struct.unpack('i', bytearray(message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7])) clr_top_only = struct.unpack('i', bytearray(message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8])) - self.logger.debug("Alarm ID: %d %d %d"%(alarm_id[0], data_1[0], data_2[0])) + self.logger.debug("Alarm ID: %d %d %d" % (alarm_id[0], data_1[0], data_2[0])) self.alarm_states[alarm_id[0]] = True self.alarm_conditions[alarm_id[0]] = True self.alarm_priorities[alarm_id[0]] = priority[0] @@ -837,7 +869,7 @@ else: str_res = str(ms) + " ms: " self.logger.debug("Alarm status broadcast interval overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: