Index: dialin/common/alarm_defs.py =================================================================== diff -u -r9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9 -r6b8fcf58c046f2177d120544922c3f49449bb88f --- dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9) +++ dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 6b8fcf58c046f2177d120544922c3f49449bb88f) @@ -8,9 +8,9 @@ # @file alarm_defs.py # # @author (last) Peter Lucia -# @date (last) 14-May-2021 +# @date (last) 21-May-2021 # @author (original) Peter Lucia -# @date (original) 14-May-2021 +# @date (original) 21-May-2021 # ############################################################################ from enum import unique @@ -246,3 +246,8 @@ ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR = 223 ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE = 224 ALARM_ID_HD_BATTERY_COMM_FAULT = 225 + ALARM_ID_HD_SYRINGE_PUMP_STALL = 226 + ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED = 227 + ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED = 228 + ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT = 229 + ALARM_ID_HD_DRY_SELF_TEST_TIMEOUT = 230 Index: dialin/common/msg_ids.py =================================================================== diff -u -r9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9 -r6b8fcf58c046f2177d120544922c3f49449bb88f --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 6b8fcf58c046f2177d120544922c3f49449bb88f) @@ -8,9 +8,9 @@ # @file msg_ids.py # # @author (last) Peter Lucia -# @date (last) 14-May-2021 +# @date (last) 21-May-2021 # @author (original) Peter Lucia -# @date (original) 14-May-2021 +# @date (original) 21-May-2021 # ############################################################################ from enum import unique @@ -146,9 +146,34 @@ MSG_ID_HD_VOLTAGES_DATA = 0X7B MSG_ID_HD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0X7C MSG_ID_HD_ALARM_INFORMATION = 0X7D + MSG_ID_HD_STANDBY_STATE = 0X7E + MSG_ID_UI_DISINFECT_REQUEST = 0X7F + MSG_ID_HD_DISINFECT_RESPONSE = 0X80 + MSG_ID_UI_CHEM_DISINFECT_CONFIRM = 0X81 + MSG_ID_HD_CHEM_DISINFECT_CONFIRM_RESPONSE = 0X82 + MSG_ID_DG_FLUSH_TIME_DATA = 0X83 + MSG_ID_DG_HEAT_DISINFECT_TIME_DATA = 0X84 + MSG_ID_DG_CHEM_DISINFECT_TIME_DATA = 0X85 MSG_ID_DG_VOLTAGES_DATA = 0X86 MSG_ID_DG_CHEM_DISINFECT_DATA = 0X87 + MSG_ID_DG_SERIAL_NUMBER = 0X88 + MSG_ID_UI_REQUEST_SYSTEM_USAGE_INFO = 0X89 + MSG_ID_HD_SERVICE_SCHEDULE_DATA = 0X8A + MSG_ID_HD_USAGE_DATA = 0X8B + MSG_ID_DG_SERVICE_SCHEDULE_DATA = 0X8C + MSG_ID_DG_USAGE_DATA = 0X8D + MSG_ID_HD_POST_SINGLE_TEST_RESULT = 0X8E + MSG_ID_HD_POST_FINAL_TEST_RESULT = 0X8F + MSG_ID_DG_POST_SINGLE_TEST_RESULT = 0X90 + MSG_ID_DG_POST_FINAL_TEST_RESULT = 0X91 + MSG_ID_UI_POST_FINAL_TEST_RESULT = 0X92 MSG_ID_HD_BUBBLES_DATA = 0X93 + MSG_ID_HD_TREATMENT_LOG_PERIODIC_DATA = 0X94 + MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT = 0X95 + MSG_ID_HD_TREATMENT_LOG_EVENT = 0X96 + MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST = 0X97 + MSG_ID_HD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE = 0X98 + MSG_ID_HD_SERIAL_NUMBER = 0X99 MSG_ID_CAN_ERROR_COUNT = 0X999 MSG_ID_TESTER_LOGIN_REQUEST = 0X8000 MSG_ID_DIAL_OUT_FLOW_SET_PT_OVERRIDE = 0X8001 @@ -242,8 +267,8 @@ MSG_ID_HD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE = 0X805B MSG_ID_HD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE = 0X805C MSG_ID_HD_BUBBLES_DATA_SEND_INTERVAL_OVERRIDE = 0X805D - MSG_ID_HD_BUBBLES_STATUS_OVERRIDE = 0X805E - MSG_ID_HD_BUBBLES_SELF_TEST_REQUEST = 0X8060 + MSG_ID_HD_BUBBLE_STATUS_OVERRIDE = 0X805E + MSG_ID_HD_BUBBLE_SELF_TEST_REQUEST = 0X8060 MSG_ID_DG_TESTER_LOGIN_REQUEST = 0XA000 MSG_ID_DG_ALARM_STATE_OVERRIDE = 0XA001 MSG_ID_DG_WATCHDOG_TASK_CHECKIN_OVERRIDE = 0XA002 Index: dialin/ui/dg_simulator.py =================================================================== diff -u -r9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9 -r6b8fcf58c046f2177d120544922c3f49449bb88f --- dialin/ui/dg_simulator.py (.../dg_simulator.py) (revision 9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9) +++ dialin/ui/dg_simulator.py (.../dg_simulator.py) (revision 6b8fcf58c046f2177d120544922c3f49449bb88f) @@ -53,6 +53,36 @@ MsgIdsDialin.MSG_DIALIN_ID_UI_SYSTEM_USAGE_REQUEST.value, self._handler_system_usage_response) + def cmd_send_dg_post_single_result(self, result: int, test_num: int) -> None: + """ + Reports a single result for power on self test + @param result: success or fail, where success = 1, 0 = fail + @param test_num: the test index [0-n] + @return: None + """ + payload = integer_to_bytearray(result) + payload += integer_to_bytearray(test_num) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dg_sync_broadcast_ch_id, + message_id=MsgIds.MSG_ID_DG_POST_SINGLE_TEST_RESULT.value, + payload=payload) + + self.can_interface.send(message, 0) + + def cmd_send_dg_post_final_result(self, result: int) -> None: + """ + Reports a final result for power on self test + @param result: success or fail, where success = 1, 0 = fail + @return: None + """ + payload = integer_to_bytearray(result) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dg_sync_broadcast_ch_id, + message_id=MsgIds.MSG_ID_DG_POST_FINAL_TEST_RESULT.value, + payload=payload) + + self.can_interface.send(message, 0) + def _handler_system_usage_response(self, message: dict) -> None: """ Handles a request for system usage Index: dialin/ui/hd_simulator.py =================================================================== diff -u -r9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9 -r6b8fcf58c046f2177d120544922c3f49449bb88f --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 9dcdf4c5acaf2d1e31b9e6e0d50c7c37d0cd08c9) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 6b8fcf58c046f2177d120544922c3f49449bb88f) @@ -86,6 +86,36 @@ self.treatment_parameter_rejections = TreatmentParameterRejections() + def cmd_send_hd_post_single_result(self, result: int, test_num: int) -> None: + """ + Reports a single result for power on self test + @param result: success or fail, where success = 1, 0 = fail + @param test_num: the test index [0-n] + @return: None + """ + payload = integer_to_bytearray(result) + payload += integer_to_bytearray(test_num) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, + message_id=MsgIds.MSG_ID_HD_POST_SINGLE_TEST_RESULT.value, + payload=payload) + + self.can_interface.send(message, 0) + + def cmd_send_hd_post_final_result(self, result: int) -> None: + """ + Reports a final result for power on self test + @param result: success or fail, where success = 1, 0 = fail + @return: None + """ + payload = integer_to_bytearray(result) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, + message_id=MsgIds.MSG_ID_HD_POST_FINAL_TEST_RESULT.value, + payload=payload) + + self.can_interface.send(message, 0) + def _handler_system_usage_response(self, message: dict) -> None: """ Handles a request for system usage Index: tests/peter/test_POST.py =================================================================== diff -u --- tests/peter/test_POST.py (revision 0) +++ tests/peter/test_POST.py (revision 6b8fcf58c046f2177d120544922c3f49449bb88f) @@ -0,0 +1,36 @@ +########################################################################### +# +# Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file test_post.py +# +# @author (last) Peter Lucia +# @date (last) 21-Mar-2021 +# @author (original) Peter Lucia +# @date (original) 21-Mar-2021 +# +############################################################################ +# in case PYTHONPATH is not set +import sys +sys.path.append("../../") +from dialin import HDSimulator, DGSimulator + +SUCCESS = 1 +FAILURE = 0 +NUM_HD_TESTS = 8 +NUM_DG_TESTS = 6 + +hd_sim = HDSimulator(log_level="DEBUG") +dg_sim = DGSimulator(log_level="DEBUG") + +for test_num in range(NUM_HD_TESTS-1): + hd_sim.cmd_send_hd_post_single_result(SUCCESS, test_num=test_num) +hd_sim.cmd_send_hd_post_single_result(FAILURE, test_num=7) + +for test_num in range(NUM_DG_TESTS-1): + dg_sim.cmd_send_dg_post_single_result(SUCCESS, test_num=test_num) +dg_sim.cmd_send_dg_post_single_result(FAILURE, test_num=5) +