Index: dialin/hd/alarms.py =================================================================== diff -u -r68418c949ee594c0f28b358c674a26f49eb244e6 -r095ca3226b2c95e8a2135f99bea8d57a03274536 --- dialin/hd/alarms.py (.../alarms.py) (revision 68418c949ee594c0f28b358c674a26f49eb244e6) +++ dialin/hd/alarms.py (.../alarms.py) (revision 095ca3226b2c95e8a2135f99bea8d57a03274536) @@ -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 @@ -202,17 +202,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] @@ -363,6 +363,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. @@ -395,6 +419,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. @@ -413,8 +446,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( @@ -457,7 +489,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] @@ -802,7 +834,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: Index: dialin/hd/battery.py =================================================================== diff -u -r68418c949ee594c0f28b358c674a26f49eb244e6 -r095ca3226b2c95e8a2135f99bea8d57a03274536 --- dialin/hd/battery.py (.../battery.py) (revision 68418c949ee594c0f28b358c674a26f49eb244e6) +++ dialin/hd/battery.py (.../battery.py) (revision 095ca3226b2c95e8a2135f99bea8d57a03274536) @@ -24,6 +24,7 @@ from ..utils.conversions import integer_to_bytearray, float_to_bytearray + class HDBattery(AbstractSubSystem): """ Hemodialysis Delivery (HD) Dialin API sub-class for battery subsystem. Index: dialin/hd/rtc.py =================================================================== diff -u -r68418c949ee594c0f28b358c674a26f49eb244e6 -r095ca3226b2c95e8a2135f99bea8d57a03274536 --- dialin/hd/rtc.py (.../rtc.py) (revision 68418c949ee594c0f28b358c674a26f49eb244e6) +++ dialin/hd/rtc.py (.../rtc.py) (revision 095ca3226b2c95e8a2135f99bea8d57a03274536) @@ -15,9 +15,6 @@ ############################################################################ import struct -from ..protocols.CAN import (DenaliMessage, - DenaliChannels) -from ..utils.conversions import integer_to_bytearray from ..common.msg_defs import MsgIds, MsgFieldPositions from logging import Logger from .constants import RESET, NO_RESET Index: dialin/ui/hd_simulator.py =================================================================== diff -u -r32001abdfb62770761771b563eb6ff517152fc76 -r095ca3226b2c95e8a2135f99bea8d57a03274536 --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 095ca3226b2c95e8a2135f99bea8d57a03274536) @@ -1552,7 +1552,10 @@ dry_self_test_state: int, prime_state: int, recirculate_state: int, - patient_connection_state: int) -> None: + patient_connection_state: int, + wet_selftests_state: int, + pretreatment_rsrvr_state: int + ) -> None: """ sends the broadcast message of the pre-treatment states @param sub_mode : (int) the main pre treatment state @@ -1564,6 +1567,8 @@ @param prime_state : (int) prime state @param recirculate_state : (int) recirculate state @param patient_connection_state : (int) patient connection state + @param wet_selftests_state : (int) wet selftest state + @param pretreatment_rsrvr_state : (int) reservoir state @return: """ payload = integer_to_bytearray(sub_mode) @@ -1575,6 +1580,8 @@ payload += integer_to_bytearray(prime_state) payload += integer_to_bytearray(recirculate_state) payload += integer_to_bytearray(patient_connection_state) + payload += integer_to_bytearray(wet_selftests_state) + payload += integer_to_bytearray(pretreatment_rsrvr_state) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_PRE_TREATMENT_STATE.value,