Index: dialin/common/msg_defs.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -r3fb7646b2d2a5346ac5b6eecbcee97ccc643d8be --- dialin/common/msg_defs.py (.../msg_defs.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/common/msg_defs.py (.../msg_defs.py) (revision 3fb7646b2d2a5346ac5b6eecbcee97ccc643d8be) @@ -131,17 +131,19 @@ MSG_ID_HD_UI_SET_RTC_RESPONSE = 0x6E # DG to UI set RTC Response MSG_ID_UI_DG_SET_RTC_REQUEST = 0x6F # UI to HD request to set RTC Request MSG_ID_DG_UI_SET_RTC_RESPONSE = 0x70 # HD to UI Set RTC Response - MSG_ID_UI_START_TREATMENT_REQUEST = 0x71 # UI user has requested to start treatment - MSG_ID_HD_START_TREATMENT_RESPONSE = 0x72 # HD response to user request to start treatment + MSG_ID_UI_START_TREATMENT_REQUESTX = 0x71 # UI user has requested to start treatment + MSG_ID_HD_START_TREATMENT_RESPONSEX = 0x72 # HD response to user request to start treatment MSG_ID_UI_DISPOSABLE_REMOVAL_CONFIRM = 0x73 # UI user has confirmed disposable removal MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM_RESPONSE = 0x74 # HD response to user confirmation of disposable removal MSG_ID_UI_TREATMENT_LOG_DATA_REQUEST = 0x75 # UI request treatment log data message MSG_ID_HD_TREATMENT_LOG_DATA_RESPONSE = 0x76 # HD response to UI treatment log data request MSG_ID_HD_POST_TREATMENT_STATE = 0x77 # HD broadcast of post-treatment state - MSG_ID_HD_BLOOD_LEAK_STATE = 0x78 # HD broadcast of blood leak state + MSG_ID_HD_BLOOD_LEAK_STATEX = 0x78 # HD broadcast of blood leak state MSG_ID_DG_START_STOP_FLUSH = 0x79 # DG start/stop flush mode MSG_ID_DG_FLUSH_DATA = 0x7A # DG flush data publish MSG_ID_HD_VOLTAGES_DATA = 0x7B # HD voltages data publish + MSG_ID_HD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0x7C # HD response to UI set alarm audio volume request + MSG_ID_HD_ALARM_INFORMATION = 0x7D # HD alarm information broadcast message MSG_ID_CAN_ERROR_COUNT = 0x999 # test code in support of EMC testing @@ -228,8 +230,13 @@ MSG_ID_HD_BLOOD_LEAK_STATE_DETECTOR_OVERRIDE = 0x804F # HD blood leak state detector override request MSG_ID_HD_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE = 0x8050 # HD monitored voltages publish interval override request MSG_ID_HD_MONITORED_VOLTAGES_OVERRIDE = 0x8051 # HD monitored voltage override request + MSG_ID_HD_ALARM_INFO_SEND_INTERVAL_OVERRIDE = 0x8052 # HD alarm information broadcast interval override request + MSG_ID_HD_ALARM_AUDIO_VOLUME_LEVEL_OVERRIDE = 0x8053 # HD alarm audio volume level override request + MSG_ID_HD_ALARM_AUDIO_CURRENT_HG_OVERRIDE = 0x8054 # HD primary alarm audio (high gain) current override request + MSG_ID_HD_ALARM_AUDIO_CURRENT_LG_OVERRIDE = 0x8055 # HD primary alarm audio (low gain) current override request + MSG_ID_HD_ALARM_BACKUP_AUDIO_CURRENT_OVERRIDE = 0x8056 # HD backup alarm audio current override request - MSG_ID_DG_TESTER_LOGIN_REQUEST = 0XA000 # DG tester log-in + MSG_ID_DG_TESTER_LOGIN_REQUEST = 0xA000 # DG tester log-in MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001 # DG alarm state override message ID MSG_ID_DG_WATCHDOG_TASK_CHECKIN_OVERRIDE = 0xA002 # Watchdog check-in override request MSG_ID_DG_SET_RTC_DATE_TIME = 0xA004 # DG RTC set date/time Index: dialin/hd/alarms.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -r3fb7646b2d2a5346ac5b6eecbcee97ccc643d8be --- dialin/hd/alarms.py (.../alarms.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/hd/alarms.py (.../alarms.py) (revision 3fb7646b2d2a5346ac5b6eecbcee97ccc643d8be) @@ -17,11 +17,11 @@ from logging import Logger from .constants import RESET, NO_RESET -from ..common.msg_defs import MsgIds +from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish -from ..utils.conversions import integer_to_bytearray +from ..utils.conversions import integer_to_bytearray, float_to_bytearray class HDAlarms(_AbstractSubSystem): @@ -77,15 +77,16 @@ msg_id = MsgIds.MSG_ID_ALARM_TRIGGERED.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_alarm_activate) - channel_id = DenaliChannels.hd_alarm_broadcast_ch_id msg_id = MsgIds.MSG_ID_ALARM_CLEARED.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_alarm_clear) - - channel_id = DenaliChannels.hd_alarm_broadcast_ch_id msg_id = MsgIds.MSG_ID_ALARM_CONDITION_CLEARED.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_alarm_condition_clear) + channel_id = DenaliChannels.hd_sync_broadcast_ch_id + msg_id = MsgIds.MSG_ID_HD_ALARM_INFORMATION.value + self.can_interface.register_receiving_publication_function(channel_id, msg_id, + self._handler_alarm_information_sync) # composite alarm status based on latest HD alarm status broadcast message self.alarms_state = 0 @@ -99,6 +100,12 @@ # alarm condition states based on received HD alarm activation and clear condition messages self.alarm_conditions = [False] * 500 + # alarm information + self.alarm_volume = 0 + self.alarm_audio_curr_hg = 0.0 + self.alarm_audio_curr_lg = 0.0 + self.alarm_backup_audio_curr = 0.0 + def get_current_alarms_state(self): """ Gets the current alarms state. @@ -255,6 +262,25 @@ alarm_id = struct.unpack('