Index: .gitignore =================================================================== diff -u -rc3153b8411388a9318d827ae42e830627cebc220 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- .gitignore (.../.gitignore) (revision c3153b8411388a9318d827ae42e830627cebc220) +++ .gitignore (.../.gitignore) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -10,6 +10,7 @@ squishtesting *.pyc *.*~ +/leahi-common # Docs docs/build Index: leahi_dialin/__init__.py =================================================================== diff -u -r0f08c28544b557b2bbd8c04b10cff284f41e4fb9 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/__init__.py (.../__init__.py) (revision 0f08c28544b557b2bbd8c04b10cff284f41e4fb9) +++ leahi_dialin/__init__.py (.../__init__.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -1,3 +1,7 @@ +from leahi_dialin.utils.enum_updater import EnumUpdater +# Update the enums from C++ +EnumUpdater.execute() + from .td import * from .dd import * from .fp import * Index: leahi_dialin/common/__init__.py =================================================================== diff -u -rc1bff8da59cff294d67d90dd1e1f102dd5b65466 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/common/__init__.py (.../__init__.py) (revision c1bff8da59cff294d67d90dd1e1f102dd5b65466) +++ leahi_dialin/common/__init__.py (.../__init__.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -1,9 +1,6 @@ import os import json -# mandatory import -from .msg_defs import * - file_name = "config.json" sw_key = "SW" config = {} @@ -24,5 +21,6 @@ from .dd_defs_proxy import dd_enum_repository from .disp_defs_proxy import disp_enum_repository from .fp_defs_proxy import fp_enum_repository + from .msg_defs import * from .td_defs_proxy import td_enum_repository from .ui_defs import * Index: leahi_dialin/common/alarm_defs.py =================================================================== diff -u -r50fb8d28c343980a5becdce76b62d246ca734487 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 50fb8d28c343980a5becdce76b62d246ca734487) +++ leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -7,220 +7,317 @@ # # @file alarm_defs.py # -# @author (last) Vinayakam Mani -# @date (last) 10-May-2024 -# @author (original) Peter Lucia -# @date (original) 07-Aug-2020 +# @author (last) Enum Updater Script +# @date (last) 03-Aug-2026 +# @author (original) Zoltan Miskolci +# @date (original) 31-Jul-2026 # ############################################################################ from enum import unique -from ..utils.enums import AlarmEnum +from leahi_dialin.utils.enums import AlarmEnum -# Branch: staging @unique class AlarmList(AlarmEnum): - ALARM_ID_NO_ALARM = 0 # Indication for when no alarms is a possible situation - ALARM_ID_TD_SOFTWARE_FAULT = 1 # TD Software fault. Software found itself in an unexpected state - ALARM_ID_DD_SOFTWARE_FAULT = 2 # DD software fault. Software found itself in an unexpected state - ALARM_ID_FP_SOFTWARE_FAULT = 3 # FP software fault. Software found itself in an unexpected state - ALARM_ID_TD_FPGA_POST_TEST_FAILED = 4 # TD FPGA POST failure - ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED = 5 # TD Watchdog POST failure - ALARM_ID_TD_UI_COMM_POST_FAILED = 6 # TD UI communication POST failure. UI failed to communicate within a reasonable time after power up - ALARM_ID_TD_FPGA_CLOCK_SPEED_CHECK_FAILURE = 7 # TD processor clock speed checks against FPGA clock failure - ALARM_ID_TD_FPGA_COMM_TIMEOUT = 8 # TD FPGA communication down for too long - ALARM_ID_TD_UI_COMM_TIMEOUT = 9 # TD UI communication timeout - ALARM_ID_TD_DD_COMM_TIMEOUT = 10 # TD DD communication timeout - ALARM_ID_TD_COMM_TOO_MANY_BAD_CRCS = 11 # TD too many bad communications CRC - ALARM_ID_TD_CAN_MESSAGE_NOT_ACKED_BY_UI = 12 # TD didn't get ACK on message to UI that required acknowledgment - ALARM_ID_TD_CAN_MESSAGE_NOT_ACKED_BY_DD = 13 # TD didn't get ACK on message to DD that required acknowledgment - ALARM_ID_TD_CRITICAL_DATA_ERROR = 14 # TD critical data integrity check failed - ALARM_ID_DD_CRITICAL_DATA_ERROR = 15 # DD critical data integrity check failed - ALARM_ID_TD_WATCHDOG_EXPIRED = 16 # TD watchdog expired - ALARM_ID_DD_WATCHDOG_EXPIRED = 17 # DD watchdog expired - ALARM_ID_DD_COMM_TOO_MANY_BAD_CRCS = 18 # DD too many bad communications CRC - ALARM_ID_DD_CAN_MESSAGE_NOT_ACKED_BY_FP = 19 # DD didn't get ACK on message to FP that required acknowledgment - ALARM_ID_DD_CAN_MESSAGE_NOT_ACKED_BY_TD = 20 # DD didn't get ACK on message to TD that required acknowledgment - ALARM_ID_DD_FPGA_POST_TEST_FAILED = 21 # DD FPGA POST failure - ALARM_ID_DD_FPGA_CLOCK_SPEED_CHECK_FAILURE = 22 # DD processor clock speed checks against FPGA clock failure - ALARM_ID_DD_FPGA_COMM_TIMEOUT = 23 # DD FPGA communication down for too long - ALARM_ID_TD_ALARM_AUDIO_SELF_TEST_FAILURE = 24 # TD alarm audio failed POST - ALARM_ID_DD_VALVE_CONTROL_FAILURE = 25 # DD FPGA not accepting commanded valve states - ALARM_ID_TD_ARTERIAL_SENSOR_TIMEOUT_FAULT = 26 # TD arterial pressure sensor freshness/error timeout fault - ALARM_ID_TD_VENOUS_SENSOR_TIMEOUT_FAULT = 27 # TD venous pressure sensor freshness/error timeout fault - ALARM_ID_TD_TMP_PRESSURE_LOW = 28 # TD TMP pressure low - ALARM_ID_TD_TMP_PRESSURE_HIGH = 29 # TD TMP pressure high - ALARM_ID_AVAILABLE_30 = 30 # Available alarms - ALARM_ID_AVAILABLE_31 = 31 # Available alarms - ALARM_ID_AVAILABLE_32 = 32 # Available alarms - ALARM_ID_TD_VOLTAGE_OUT_OF_RANGE = 33 # TD voltage out of range fault - ALARM_ID_TD_AC_POWER_LOST = 34 # TD AC power lost - ALARM_ID_TD_AC_POWER_LOST_IN_TREATMENT = 35 # TD AC power lost during treatment - ALARM_ID_DD_D17_COND_SENSOR_FPGA_FAULT = 36 # DD CD1 conductivity sensor freshness/error timeout fault - ALARM_ID_DD_D27_COND_SENSOR_FPGA_FAULT = 37 # DD CD2 conductivity sensor freshness/error timeout fault - ALARM_ID_DD_D29_COND_SENSOR_FPGA_FAULT = 38 # DD CD3 conductivity sensor freshness/error timeout fault - ALARM_ID_DD_D43_COND_SENSOR_FPGA_FAULT = 39 # DD CD4 conductivity sensor freshness/error timeout fault - ALARM_ID_TD_VENOUS_BUBBLE_DETECTED = 40 # TD venous bubble detected - ALARM_ID_TD_CARTRIDGE_DOOR_OPENED = 41 # TD front door open - ALARM_ID_TD_STUCK_BUTTON_TEST_FAILED = 42 # TD stuck button self test failure - ALARM_ID_TD_ARTERIAL_PRESSURE_LOW = 43 # TD arterial pressure low - ALARM_ID_TD_ARTERIAL_PRESSURE_HIGH = 44 # TD arterial pressure high - ALARM_ID_TD_ARTERIAL_PRESSURE_OUT_OF_RANGE = 45 # TD arterial pressure out of range fault - ALARM_ID_TD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE = 46 # TD arterial pressure self-test failure - ALARM_ID_TD_VENOUS_PRESSURE_LOW = 47 # TD venous pressure low - ALARM_ID_TD_VENOUS_PRESSURE_HIGH = 48 # TD venous pressure high - ALARM_ID_TD_VENOUS_PRESSURE_OUT_OF_RANGE = 49 # TD venous pressure out of range fault - ALARM_ID_TD_VENOUS_PRESSURE_SELF_TEST_FAILURE = 50 # TD venous pressure self-test failure - ALARM_ID_TD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE = 51 # TD set pressure offset is out or range fault - ALARM_ID_DD_D11_PUMP_SPEED_CONTROL_ERROR = 52 # DD concentrate pump D11_PUMP speed control error - ALARM_ID_DD_D10_PUMP_SPEED_CONTROL_ERROR = 53 # DD concentrate pump D10_PUMP speed control error - ALARM_ID_DD_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE = 54 # DD concentrate pumps hall sensor out of range - ALARM_ID_DD_CONCENTRATE_PUMP_FAULT = 55 # DD concentrate pump fault - ALARM_ID_DD_TEMPERATURE_SENSOR_OUT_OF_RANGE = 56 # DD temperature sensor out of range - ALARM_ID_DD_RTD_SENSORS_FPGA_FAULT = 57 # DD temperature sensors freshness timeout fault - ALARM_ID_AVAILABLE_58 = 58 # DD Available alarms - ALARM_ID_DD_BAROMETRIC_SENSOR_COEFFS_BAD_CRC = 59 # DD barometric sensor coefficients bad CRC - ALARM_ID_DD_D12_PUMP_RPM_OUT_OF_RANGE = 60 # DD fresh dialysate pump RPM out of range - ALARM_ID_DD_D12_PUMP_OFF_FAULT = 61 # DD fresh dialysate pump running when it is not commanded to run - ALARM_ID_DD_D12_PUMP_CURRENT_OUT_OF_RANGE = 62 # DD fresh dialysate pump current out of range - ALARM_ID_DD_D12_PUMP_DIRECTION_INVALID = 63 # DD fresh dialysate pump invalid direction - ALARM_ID_DD_D12_PUMP_DIRECTION_FPGA_FAULT = 64 # DD fresh dialysate pump direction error count FPGA fault - ALARM_ID_DD_D48_PUMP_RPM_OUT_OF_RANGE = 65 # DD spent dialysate pump RPM out of range - ALARM_ID_DD_D48_PUMP_OFF_FAULT = 66 # DD spent dialysate pump running when it is not commanded to run - ALARM_ID_DD_D48_PUMP_CURRENT_OUT_OF_RANGE = 67 # DD spent dialysate pump current out of range - ALARM_ID_DD_D48_PUMP_DIRECTION_INVALID = 68 # DD spent dialysate pump invalid direction - ALARM_ID_DD_D48_PUMP_DIRECTION_FPGA_FAULT = 69 # DD spent dialysate pump direction error count FPGA fault - ALARM_ID_DD_FLUID_TOO_LOW_WHILE_D5_HEAT_IS_ON = 70 # DD primary heater is On when no fluid is present - ALARM_ID_DD_FLUID_TOO_LOW_WHILE_D45_HEAT_IS_ON = 71 # DD trimmer heater is On when no fluid is present - ALARM_ID_TD_BAROMETRIC_SENSOR_COEFFS_BAD_CRC = 72 # TD barometric sensor coefficients bad CRC - ALARM_ID_TD_BARO_PRESSURE_OUT_OF_RANGE = 73 # TD barometric sensor pressure out of range - ALARM_ID_DD_D76_PUMP_SPEED_CONTROL_ERROR = 74 # DD UF pump speed control error - ALARM_ID_DD_SC_STATE1_FILL_START_PRESSURE_OUT_OF_RANGE = 75 # DD spent chamber state 1 fill pressure out of range - ALARM_ID_DD_SC_STATE2_FILL_START_PRESSURE_OUT_OF_RANGE = 76 # DD spent chamber state 2 fill pressure out of range - ALARM_ID_DD_SC_FILL_TIMEOUT_FAULT = 77 # DD spent chamber fill timeout fault - ALARM_ID_TD_AIR_TRAP_FILL_TIMEOUT = 78 # TD air trap fill timeout - ALARM_ID_TD_AIR_TRAP_ILLEGAL_LEVELS = 79 # TD air trap illegal levels - ALARM_ID_TD_PINCH_VALVE_FAULT = 80 # TD pinch valve fault - ALARM_ID_TD_VALVE_HOMING_FAILED = 81 # TD pinch valve homing fault - ALARM_ID_TD_VALVE_TRANSITION_TIMEOUT = 82 # TD pinch valve transition timeout - ALARM_ID_FP_CAN_MESSAGE_NOT_ACKED_BY_DD = 83 # FP can message not acked by DD fault - ALARM_ID_FP_FPGA_COMM_TIMEOUT = 84 # FP FPGA communication timeout - ALARM_ID_FP_COMM_TOO_MANY_BAD_CRCS = 85 # FP too many bad crcs - ALARM_ID_FP_VALVE_CONTROL_FAILURE = 86 # FP valve control failure - ALARM_ID_DD_BC_STATE1_FILL_START_PRESSURE_OUT_OF_RANGE = 87 # DD balance chamber state1 fill start pressure not in range - ALARM_ID_DD_BC_STATE1_FILL_END_PRESSURE_OUT_OF_RANGE = 88 # DD balance chamber state1 fill end pressure not in range - ALARM_ID_DD_BC_STATE2_FILL_START_PRESSURE_OUT_OF_RANGE = 89 # DD balance chamber state2 fill start pressure not in range - ALARM_ID_DD_BC_STATE2_FILL_END_PRESSURE_OUT_OF_RANGE = 90 # DD balance chamber state2 fill end pressure not in range - ALARM_ID_DD_GEND_HYD_CHAMBER_PRESS_OUT_OF_RANGE = 91 # DD generate dialysate hydraulics chamber ngative pressure out of range - ALARM_ID_DD_BICARB_FILL_TIMEOUT_FAULT = 92 # DD spent chamber fill timeout fault - ALARM_ID_DD_D79_RINSE_PUMP_SPEED_OUT_OF_RANGE = 93 # DD D79 rinse pump commanded vs measured speed out of tolerance - ALARM_ID_DD_BC_STATE1_FILL_PRESSURE_DROP_OUT_OF_RANGE = 94 # DD balance chamber state1 fill initiated and pressure drop is not in range - ALARM_ID_DD_BC_STATE2_FILL_PRESSURE_DROP_OUT_OF_RANGE = 95 # DD balance chamber state2 fill initiated and pressure drop is not in range - ALARM_ID_TD_TREATMENT_STOPPED_BY_USER = 96 # TD treatment paused by user - ALARM_ID_DD_D74_COND_SENSOR_FPGA_FAULT = 97 # DD D74 bicarb conductivity sensor freshness/error timeout fault - ALARM_ID_TD_BLOOD_SITTING_WARNING = 98 # TD blood sitting too long warning - ALARM_ID_TD_BLOOD_SITTING_TOO_LONG = 99 # TD blood sitting too long alarm; no resume; no rinseback - # Added 30 TD-UI Alarms +1 TD only from 100 to 130 with some reserved IDs - ALARM_ID_TD_COMM_TIMEOUT = 100 # TD communication timeout - ALARM_ID_UI_POST_FAILURE_OS_VERSION = 101 # UI POST OS version compatibility failure - ALARM_ID_UI_POST_FAILURE_SHASUM = 102 # UI POST Application Integrity (Sha256Sum) failure - ALARM_ID_UI_POST_FAILURE_CANBUS = 103 # UI POST CANBus failure - ALARM_ID_UI_POST_FAILURE_DISPLAY = 104 # UI POST Display failure - ALARM_ID_UI_POST_FAILURE_TOUCH = 105 # UI POST Touch failure - ALARM_ID_UI_POST_FAILURE_SDCARD = 106 # UI POST SD-Card failure - ALARM_ID_UI_POST_FAILURE_RTC = 107 # UI POST RTC failure - ALARM_ID_UI_POST_FAILURE_WIFI = 108 # UI POST WiFi failure - ALARM_ID_UI_POST_FAILURE_BLUETOOTH = 109 # UI POST Bluetooth failure - ALARM_ID_UI_POST_FAILURE_ETHERNET = 110 # UI POST Ethernet failure - ALARM_ID_UI_POST_FAILURE_SOUND = 111 # UI POST Sound failure - ALARM_ID_UI_POST_FAILURE_CLOUDSYNC = 112 # UI POST CloudSync failure - ALARM_ID_UI_POST_FAILURE_INVALID_YEAR = 113 # UI POST Year check failure - ALARM_ID_UI_POST_FAILURE_SETTINGS_BAD = 114 # UI POST Configuration check failure - ALARM_ID_UI_EVNT_FAILURE_SDCARD = 115 # UI EVNT SD-Card failure - ALARM_ID_UI_RESERVED_116 = 116 # UI Reserved failure - ALARM_ID_UI_RESERVED_117 = 117 # UI Reserved failure - ALARM_ID_UI_RESERVED_118 = 118 # UI Reserved failure - ALARM_ID_UI_RESERVED_119 = 119 # UI Reserved failure - ALARM_ID_UI_RESERVED_120 = 120 # UI Reserved failure - ALARM_ID_UI_RESERVED_121 = 121 # UI Reserved failure - ALARM_ID_UI_RESERVED_122 = 122 # UI Reserved failure - ALARM_ID_UI_RESERVED_123 = 123 # UI Reserved failure - ALARM_ID_UI_RESERVED_124 = 124 # UI Reserved failure - ALARM_ID_UI_RESERVED_125 = 125 # UI Reserved failure - ALARM_ID_UI_RESERVED_126 = 126 # UI Reserved failure - ALARM_ID_UI_RESERVED_127 = 127 # UI Reserved failure - ALARM_ID_UI_RESERVED_128 = 128 # UI Reserved failure - ALARM_ID_UI_RESERVED_129 = 129 # UI Reserved failure - ALARM_ID_UI_RESERVED_130 = 130 # UI Reserved failure - ALARM_ID_BATTERY_LOW = 131 # TD Battery Low warning - ALARM_ID_DD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP = 132 # DD dialysate temperature above safety - ALARM_ID_DD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP = 133 # DD dialysate temperature high - ALARM_ID_DD_DIALYSATE_TEMP_BELOW_TARGET_TEMP = 134 # DD dialysate temperature low - ALARM_ID_FP_PRESSURE_RELIEF_OUT_LOW_RANGE = 135 # FP Pressure relief valve low - ALARM_ID_FP_PRESSURE_RELIEF_OUT_HIGH_RANGE = 136 # FP Pressure relief valve high - ALARM_ID_FP_POWER_BUDGET_OUT_OF_RANGE = 137 # FP Power budget exceeded - ALARM_ID_FP_FLOW_RATE_LOW_RANGE = 138 # FP flow rate low - ALARM_ID_FP_INLET_TEMPERATURE_OUT_LOW_RANGE = 139 # FP inlet water temperature low - ALARM_ID_FP_INLET_TEMPERATURE_OUT_HIGH_RANGE = 140 # FP inlet water temperature high - ALARM_ID_FP_INLET_PRESSURE_OUT_LOW_RANGE = 141 # FP inlet pressure low - ALARM_ID_FP_INLET_PRESSURE_OUT_HIGH_RANGE = 142 # FP inlet pressure high - ALARM_ID_FP_INLET_CONDUCTIVITY_OUT_HIGH_RANGE = 143 # FP inlet conductivity high - ALARM_ID_FP_INLET_CONDUCTIVITY_OUT_LOW_RANGE = 144 # FP inlet conductivty low - ALARM_ID_FP_RO_INLET_PRESSURE_OUT_HIGH_RANGE = 145 # FP pump inlet pressure high - ALARM_ID_FP_RO_OUTLET_CONDUCTIVITY_HIGH_RANGE = 146 # FP pump outlet conductivity high - ALARM_ID_FP_RO_INLET_CONDUCTIVITY_HIGH_RANGE = 147 # FP pump inlet conductivity high - ALARM_ID_FP_REJECTION_RATIO_LOW_RANGE = 148 # FP rejection ratio low - ALARM_ID_FP_INLET_PRESSURE_REGULATOR_OUT_OF_RANGE = 149 # FP inlet pressure regulator out of range - ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE = 150 # FP inlet temperature above 40C during filters flush - ALARM_ID_FP_PERMEATE_FLUSH_CONDUCTIVITY_TIMEOUT = 151 # FP membrane flush timeout - ALARM_ID_FP_CONCENTRATE_FLUSH_TANK_FULL_TIMEOUT = 152 # FP concentrate flush tank full timeout - ALARM_ID_FP_GEN_PERMEATE_TANK_FULL_TIMEOUT = 153 # FP tank full time out alarm - ALARM_ID_DD_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE = 154 # DD dialysate temperature sensors out of range - ALARM_ID_DD_BLOOD_LEAK_DETECTED = 155 # DD blood leak detected - ALARM_ID_DD_BLOOD_LEAK_INVALID_CAL_RECORD = 156 # DD blood leak invalid calibration record - ALARM_ID_DD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE = 157 # DD blood leak sensor embedded mode failure - ALARM_ID_DD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE = 158 # DD blood leak sensor set point failure - ALARM_ID_DD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT = 159 # DD blood leak sensor recovering please wait - ALARM_ID_FP_GEN_PERMEATE_TANK_FILL_TIMEOUT = 160 # FP tank fill time out alarm. - ALARM_ID_FP_INLET_PRESSURE_CRITICAL_OUT_RANGE = 161 # FP inlet pressure high fault - ALARM_ID_FP_PERMEATE_FLOW_OUT_HIGH_RANGE = 162 # FP permeate flow high fault - ALARM_ID_FP_PERMEATE_FLOW_OUT_LOW_RANGE = 163 # FP permeate flow low fault - ALARM_ID_FP_INLET_PRESSURE_LOW_RANGE = 164 # FP inlet pressure low fault - ALARM_ID_TD_AIR_TRAP_LOWER_TIMEOUT = 165 # TD air trap lower timeout - ALARM_ID_TD_SYRINGE_PUMP_SELF_TEST_FAILURE = 166 # TD syringe pump self-test failure alarm - ALARM_ID_TD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR = 167 # TD syringe pump is running while the BP is off - ALARM_ID_TD_SYRINGE_PUMP_FPGA_ADC_FAULT = 168 # TD syringe pump ADC FPGA fault - ALARM_ID_TD_SYRINGE_PUMP_FAULT = 169 # TD syringe pump fault reported by FPGA - ALARM_ID_TD_SYRINGE_PUMP_DAC_WRITE_ERROR = 170 # TD syringe pump DAC write failure - ALARM_ID_TD_SYRINGE_PUMP_SPEED_ERROR = 171 # TD syringe pump speed check error - ALARM_ID_TD_SYRINGE_PUMP_VOLUME_ERROR = 172 # TD syringe pump volume check error - ALARM_ID_TD_SYRINGE_PUMP_OVER_TRAVEL_ERROR = 173 # TD syringe pump over travel error - ALARM_ID_TD_SYRINGE_PUMP_NOT_STOPPED_ERROR = 174 # TD syringe pump not stopped in off state error - ALARM_ID_TD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR = 175 # TD syringe pump direction (from encoder) error - ALARM_ID_TD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR = 176 # TD syringe pump direction (from controller) error - ALARM_ID_TD_SYRINGE_PUMP_SYRINGE_EMPTY = 177 # TD syringe empty alarm - ALARM_ID_TD_SYRINGE_PUMP_SYRINGE_REMOVED = 178 # TD syringe pump syringe removed alarm - ALARM_ID_TD_SYRINGE_PUMP_STALL = 179 # TD syringe pump stall alarm - ALARM_ID_TD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD = 180 # TD heparin force sensor invalid calibration record - ALARM_ID_TD_SYRINGE_DETECTED = 181 # TD syringe detected alarm - ALARM_ID_TD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM = 182 # TD syringe pump not enough Heparin alarm - ALARM_ID_TD_SYRINGE_PUMP_OCCLUSION = 183 # TD syringe pump occlusion alarm - ALARM_ID_TD_SYRINGE_PUMP_PRIME_TIMEOUT = 184 # TD syringe pump prime timeout - ALARM_ID_FP_P9_COND_SENSOR_FPGA_FAULT = 185 # FP P9 conductivity sensor fpga fault - ALARM_ID_FP_P18_COND_SENSOR_FPGA_FAULT = 186 # FP P18 conductivity sensor fpga fault - ALARM_ID_TD_AUTO_LOAD_EJECT_BP_TIMEOUT = 187 # TD blood pump timeout during auto-load\eject operation - ALARM_ID_TD_AUTO_EJECT_EJECTOR_TIMEOUT = 188 # TD ejector failed to extend or retract during auto-eject operation - ALARM_ID_TD_EJECTOR_POST_TEST_FAILED = 189 # TD ejector POST homing failure - ALARM_ID_TD_AUTO_LOAD_EJECT_HIGH_BP_TORQUE = 190 # TD high blood pump torque during auto-load\eject operation - ALARM_ID_TD_AIR_PUMP_STALL = 191 # TD air pump stall detected - ALARM_ID_TD_CPU_RAM_ERROR = 192 # TD CPU RAM error - ALARM_ID_DD_CPU_RAM_ERROR = 193 # DD CPU RAM error - ALARM_ID_TD_INTEGRITY_POST_TEST_FAILED = 194 # TD integrity post test fault - ALARM_ID_DD_INTEGRITY_POST_TEST_FAILED = 195 # TD integrity post test fault - ALARM_ID_TD_EMPTY_SALINE_BAG = 196 # TD empty saline bag alarm - ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE = 197 # DD D92 pump rpm out of range - ALARM_ID_TD_PRIME_COMPLETED_MEDIUM = 198 # TD prime completed medium priority alarm - ALARM_ID_TD_REPEATED_AIR_TRAP_LOWER_EVENTS = 199 # TD repeated air trap lower events - NUM_OF_ALARM_IDS = 200 # Number of alarms - - + ALARM_ID_NO_ALARM = 0 # Indication for when no alarms is a possible situation + ALARM_ID_TD_SOFTWARE_FAULT = 1 # TD Software fault. Software found itself in an unexpected state + ALARM_ID_DD_SOFTWARE_FAULT = 2 # DD software fault. Software found itself in an unexpected state + ALARM_ID_FP_SOFTWARE_FAULT = 3 # FP software fault. Software found itself in an unexpected state + ALARM_ID_TD_FPGA_POST_TEST_FAILED = 4 # TD FPGA POST failure + ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED = 5 # TD Watchdog POST failure + ALARM_ID_TD_UI_COMM_POST_FAILED = 6 # TD UI communication POST failure. UI failed to communicate within a reasonable time after power up + ALARM_ID_TD_FPGA_CLOCK_SPEED_CHECK_FAILURE = 7 # TD processor clock speed checks against FPGA clock failure + ALARM_ID_TD_FPGA_COMM_TIMEOUT = 8 # TD FPGA communication down for too long + ALARM_ID_TD_UI_COMM_TIMEOUT = 9 # TD UI communication timeout + ALARM_ID_TD_DD_COMM_TIMEOUT = 10 # TD DD communication timeout + ALARM_ID_TD_COMM_TOO_MANY_BAD_CRCS = 11 # TD too many bad communications CRC + ALARM_ID_TD_CAN_MESSAGE_NOT_ACKED_BY_UI = 12 # TD didn't get ACK on message to UI that required acknowledgment + ALARM_ID_TD_CAN_MESSAGE_NOT_ACKED_BY_DD = 13 # TD didn't get ACK on message to DD that required acknowledgment + ALARM_ID_TD_CRITICAL_DATA_ERROR = 14 # TD critical data integrity check failed + ALARM_ID_DD_CRITICAL_DATA_ERROR = 15 # DD critical data integrity check failed + ALARM_ID_TD_WATCHDOG_EXPIRED = 16 # TD watchdog expired + ALARM_ID_DD_WATCHDOG_EXPIRED = 17 # DD watchdog expired + ALARM_ID_DD_COMM_TOO_MANY_BAD_CRCS = 18 # DD too many bad communications CRC + ALARM_ID_DD_CAN_MESSAGE_NOT_ACKED_BY_FP = 19 # DD didn't get ACK on message to FP that required acknowledgment + ALARM_ID_DD_CAN_MESSAGE_NOT_ACKED_BY_TD = 20 # DD didn't get ACK on message to TD that required acknowledgment + ALARM_ID_DD_FPGA_POST_TEST_FAILED = 21 # DD FPGA POST failure + ALARM_ID_DD_FPGA_CLOCK_SPEED_CHECK_FAILURE = 22 # DD processor clock speed checks against FPGA clock failure + ALARM_ID_DD_FPGA_COMM_TIMEOUT = 23 # DD FPGA communication down for too long + ALARM_ID_TD_ALARM_AUDIO_SELF_TEST_FAILURE = 24 # TD alarm audio failed POST + ALARM_ID_DD_VALVE_CONTROL_FAILURE = 25 # DD FPGA not accepting commanded valve states + ALARM_ID_TD_ARTERIAL_SENSOR_TIMEOUT_FAULT = 26 # TD arterial pressure sensor freshness/error timeout fault + ALARM_ID_TD_VENOUS_SENSOR_TIMEOUT_FAULT = 27 # TD venous pressure sensor freshness/error timeout fault + ALARM_ID_TD_TMP_PRESSURE_LOW = 28 # TD TMP pressure low + ALARM_ID_TD_TMP_PRESSURE_HIGH = 29 # TD TMP pressure high + ALARM_ID_TD_VENOUS_BUBBLE_SELF_TEST_FAILURE = 30 # TD venous bubble self-test failure. + ALARM_ID_TD_BLOOD_PRIME_PAUSE_WARNING = 31 # TD blood prime pause warning + ALARM_ID_TD_BLOOD_PRIME_PAUSE_TIMEOUT = 32 # TD blood prime pause timeout + ALARM_ID_TD_VOLTAGE_OUT_OF_RANGE = 33 # TD voltage out of range fault + ALARM_ID_TD_AC_POWER_LOST = 34 # TD AC power lost + ALARM_ID_TD_AC_POWER_LOST_IN_TREATMENT = 35 # TD AC power lost during treatment + ALARM_ID_DD_D17_COND_SENSOR_FPGA_FAULT = 36 # DD CD1 conductivity sensor freshness/error timeout fault + ALARM_ID_DD_D27_COND_SENSOR_FPGA_FAULT = 37 # DD CD2 conductivity sensor freshness/error timeout fault + ALARM_ID_DD_D29_COND_SENSOR_FPGA_FAULT = 38 # DD CD3 conductivity sensor freshness/error timeout fault + ALARM_ID_DD_D43_COND_SENSOR_FPGA_FAULT = 39 # DD CD4 conductivity sensor freshness/error timeout fault + ALARM_ID_TD_VENOUS_BUBBLE_DETECTED = 40 # TD venous bubble detected + ALARM_ID_TD_CARTRIDGE_DOOR_OPENED = 41 # TD front door open + ALARM_ID_TD_STUCK_BUTTON_TEST_FAILED = 42 # TD stuck button self test failure + ALARM_ID_TD_ARTERIAL_PRESSURE_LOW = 43 # TD arterial pressure low + ALARM_ID_TD_ARTERIAL_PRESSURE_HIGH = 44 # TD arterial pressure high + ALARM_ID_TD_ARTERIAL_PRESSURE_OUT_OF_RANGE = 45 # TD arterial pressure out of range fault + ALARM_ID_TD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE = 46 # TD arterial pressure self-test failure + ALARM_ID_TD_VENOUS_PRESSURE_LOW = 47 # TD venous pressure low + ALARM_ID_TD_VENOUS_PRESSURE_HIGH = 48 # TD venous pressure high + ALARM_ID_TD_VENOUS_PRESSURE_OUT_OF_RANGE = 49 # TD venous pressure out of range fault + ALARM_ID_TD_VENOUS_PRESSURE_SELF_TEST_FAILURE = 50 # TD venous pressure self-test failure + ALARM_ID_TD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE = 51 # TD set pressure offset is out or range fault + ALARM_ID_DD_D11_PUMP_SPEED_CONTROL_ERROR = 52 # DD concentrate pump D11_PUMP speed control error + ALARM_ID_DD_D10_PUMP_SPEED_CONTROL_ERROR = 53 # DD concentrate pump D10_PUMP speed control error + ALARM_ID_DD_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE = 54 # DD concentrate pumps hall sensor out of range + ALARM_ID_DD_CONCENTRATE_PUMP_FAULT = 55 # DD concentrate pump fault + ALARM_ID_DD_TEMPERATURE_SENSOR_OUT_OF_RANGE = 56 # DD temperature sensor out of range + ALARM_ID_DD_RTD_SENSORS_FPGA_FAULT = 57 # DD temperature sensors freshness timeout fault + ALARM_ID_DD_BC_FILL_TIMEOUT_FAULT = 58 # DD balancing chamber fill timeout fault + ALARM_ID_DD_BAROMETRIC_SENSOR_COEFFS_BAD_CRC = 59 # DD barometric sensor coefficients bad CRC + ALARM_ID_DD_D12_PUMP_RPM_OUT_OF_RANGE = 60 # DD fresh dialysate pump RPM out of range + ALARM_ID_DD_D12_PUMP_OFF_FAULT = 61 # DD fresh dialysate pump running when it is not commanded to run + ALARM_ID_DD_D12_PUMP_CURRENT_OUT_OF_RANGE = 62 # DD fresh dialysate pump current out of range + ALARM_ID_DD_D12_PUMP_DIRECTION_INVALID = 63 # DD fresh dialysate pump invalid direction + ALARM_ID_DD_D12_PUMP_DIRECTION_FPGA_FAULT = 64 # DD fresh dialysate pump direction error count FPGA fault + ALARM_ID_DD_D48_PUMP_RPM_OUT_OF_RANGE = 65 # DD spent dialysate pump RPM out of range + ALARM_ID_DD_D48_PUMP_OFF_FAULT = 66 # DD spent dialysate pump running when it is not commanded to run + ALARM_ID_DD_D48_PUMP_CURRENT_OUT_OF_RANGE = 67 # DD spent dialysate pump current out of range + ALARM_ID_DD_D48_PUMP_DIRECTION_INVALID = 68 # DD spent dialysate pump invalid direction + ALARM_ID_DD_D48_PUMP_DIRECTION_FPGA_FAULT = 69 # DD spent dialysate pump direction error count FPGA fault + ALARM_ID_DD_FLUID_TOO_LOW_WHILE_D5_HEAT_IS_ON = 70 # DD primary heater is On when no fluid is present + ALARM_ID_DD_FLUID_TOO_LOW_WHILE_D45_HEAT_IS_ON = 71 # DD trimmer heater is On when no fluid is present + ALARM_ID_TD_BAROMETRIC_SENSOR_COEFFS_BAD_CRC = 72 # TD barometric sensor coefficients bad CRC + ALARM_ID_TD_BARO_PRESSURE_OUT_OF_RANGE = 73 # TD barometric sensor pressure out of range + ALARM_ID_DD_D76_PUMP_SPEED_CONTROL_ERROR = 74 # DD UF pump speed control error + ALARM_ID_DD_SC_STATE1_FILL_START_PRESSURE_OUT_OF_RANGE = 75 # DD spent chamber state 1 fill pressure out of range + ALARM_ID_DD_SC_STATE2_FILL_START_PRESSURE_OUT_OF_RANGE = 76 # DD spent chamber state 2 fill pressure out of range + ALARM_ID_DD_SC_FILL_TIMEOUT_FAULT = 77 # DD spent chamber fill timeout fault + ALARM_ID_TD_AIR_TRAP_FILL_TIMEOUT = 78 # TD air trap fill timeout + ALARM_ID_TD_AIR_TRAP_ILLEGAL_LEVELS = 79 # TD air trap illegal levels + ALARM_ID_TD_PINCH_VALVE_FAULT = 80 # TD pinch valve fault + ALARM_ID_TD_VALVE_HOMING_FAILED = 81 # TD pinch valve homing fault + ALARM_ID_TD_VALVE_TRANSITION_TIMEOUT = 82 # TD pinch valve transition timeout + ALARM_ID_FP_CAN_MESSAGE_NOT_ACKED_BY_DD = 83 # FP can message not acked by DD fault + ALARM_ID_FP_FPGA_COMM_TIMEOUT = 84 # FP FPGA communication timeout + ALARM_ID_FP_COMM_TOO_MANY_BAD_CRCS = 85 # FP too many bad crcs + ALARM_ID_FP_VALVE_CONTROL_FAILURE = 86 # FP valve control failure + ALARM_ID_DD_BC_STATE1_FILL_START_PRESSURE_OUT_OF_RANGE = 87 # DD balance chamber state1 fill start pressure not in range + ALARM_ID_DD_AVAILABLE_1 = 88 # Available alarm ID 1 + ALARM_ID_DD_BC_STATE2_FILL_START_PRESSURE_OUT_OF_RANGE = 89 # DD balance chamber state2 fill start pressure not in range + ALARM_ID_DD_AVAILABLE_2 = 90 # Available alarm ID 2 + ALARM_ID_DD_GEND_HYD_CHAMBER_PRESS_OUT_OF_RANGE = 91 # DD generate dialysate hydraulics chamber ngative pressure out of range + ALARM_ID_DD_BICARB_FILL_TIMEOUT_FAULT = 92 # DD spent chamber fill timeout fault + ALARM_ID_DD_D79_RINSE_PUMP_SPEED_OUT_OF_RANGE = 93 # DD D79 rinse pump commanded vs measured speed out of tolerance + ALARM_ID_DD_BC_STATE1_FILL_PRESSURE_DROP_OUT_OF_RANGE = 94 # DD balance chamber state1 fill initiated and pressure drop is not in range + ALARM_ID_DD_BC_STATE2_FILL_PRESSURE_DROP_OUT_OF_RANGE = 95 # DD balance chamber state2 fill initiated and pressure drop is not in range + ALARM_ID_TD_TREATMENT_STOPPED_BY_USER = 96 # TD treatment paused by user + ALARM_ID_DD_D74_COND_SENSOR_FPGA_FAULT = 97 # DD D74 bicarb conductivity sensor freshness/error timeout fault + ALARM_ID_TD_BLOOD_SITTING_WARNING = 98 # TD blood sitting too long warning + ALARM_ID_TD_BLOOD_SITTING_TOO_LONG = 99 # TD blood sitting too long alarm; no resume; no rinseback + ALARM_ID_TD_COMM_TIMEOUT = 100 # TD communication timeout + ALARM_ID_UI_POST_FAILURE_OS_VERSION = 101 # UI POST OS version compatibility failure + ALARM_ID_UI_POST_FAILURE_SHASUM = 102 # UI POST Application Integrity (Sha256Sum) failure + ALARM_ID_UI_POST_FAILURE_CANBUS = 103 # UI POST CANBus failure + ALARM_ID_UI_POST_FAILURE_DISPLAY = 104 # UI POST Display failure + ALARM_ID_UI_POST_FAILURE_TOUCH = 105 # UI POST Touch failure + ALARM_ID_UI_POST_FAILURE_SDCARD = 106 # UI POST SD-Card failure + ALARM_ID_UI_POST_FAILURE_RTC = 107 # UI POST RTC failure + ALARM_ID_UI_POST_FAILURE_WIFI = 108 # UI POST WiFi failure + ALARM_ID_UI_POST_FAILURE_BLUETOOTH = 109 # UI POST Bluetooth failure + ALARM_ID_UI_POST_FAILURE_ETHERNET = 110 # UI POST Ethernet failure + ALARM_ID_UI_POST_FAILURE_SOUND = 111 # UI POST Sound failure + ALARM_ID_UI_POST_FAILURE_CLOUDSYNC = 112 # UI POST CloudSync failure + ALARM_ID_UI_POST_FAILURE_INVALID_YEAR = 113 # UI POST Year check failure + ALARM_ID_UI_POST_FAILURE_SETTINGS_BAD = 114 # UI POST Configuration check failure + ALARM_ID_UI_EVNT_FAILURE_SDCARD = 115 # UI EVNT SD-Card failure + ALARM_ID_UI_RESERVED_116 = 116 # UI Reserved failure + ALARM_ID_UI_RESERVED_117 = 117 # UI Reserved failure + ALARM_ID_UI_RESERVED_118 = 118 # UI Reserved failure + ALARM_ID_UI_RESERVED_119 = 119 # UI Reserved failure + ALARM_ID_UI_RESERVED_120 = 120 # UI Reserved failure + ALARM_ID_UI_RESERVED_121 = 121 # UI Reserved failure + ALARM_ID_UI_RESERVED_122 = 122 # UI Reserved failure + ALARM_ID_UI_RESERVED_123 = 123 # UI Reserved failure + ALARM_ID_UI_RESERVED_124 = 124 # UI Reserved failure + ALARM_ID_UI_RESERVED_125 = 125 # UI Reserved failure + ALARM_ID_UI_RESERVED_126 = 126 # UI Reserved failure + ALARM_ID_UI_RESERVED_127 = 127 # UI Reserved failure + ALARM_ID_UI_RESERVED_128 = 128 # UI Reserved failure + ALARM_ID_UI_RESERVED_129 = 129 # UI Reserved failure + ALARM_ID_UI_RESERVED_130 = 130 # UI Reserved failure + ALARM_ID_BATTERY_LOW = 131 # TD Battery Low warning + ALARM_ID_DD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP = 132 # DD dialysate temperature above safety + ALARM_ID_DD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP = 133 # DD dialysate temperature high + ALARM_ID_DD_DIALYSATE_TEMP_BELOW_TARGET_TEMP = 134 # DD dialysate temperature low + ALARM_ID_FP_PRESSURE_RELIEF_OUT_LOW_RANGE = 135 # FP Pressure relief valve low + ALARM_ID_FP_PRESSURE_RELIEF_OUT_HIGH_RANGE = 136 # FP Pressure relief valve high + ALARM_ID_FP_POWER_BUDGET_OUT_OF_RANGE = 137 # FP Power budget exceeded + ALARM_ID_FP_FLOW_RATE_LOW_RANGE = 138 # FP flow rate low + ALARM_ID_FP_INLET_TEMPERATURE_OUT_LOW_RANGE = 139 # FP inlet water temperature low + ALARM_ID_FP_INLET_TEMPERATURE_OUT_HIGH_RANGE = 140 # FP inlet water temperature high + ALARM_ID_FP_INLET_PRESSURE_OUT_LOW_RANGE = 141 # FP inlet pressure low + ALARM_ID_FP_INLET_PRESSURE_OUT_HIGH_RANGE = 142 # FP inlet pressure high + ALARM_ID_FP_INLET_CONDUCTIVITY_OUT_HIGH_RANGE = 143 # FP inlet conductivity high + ALARM_ID_FP_INLET_CONDUCTIVITY_OUT_LOW_RANGE = 144 # FP inlet conductivty low + ALARM_ID_FP_RO_INLET_PRESSURE_OUT_HIGH_RANGE = 145 # FP pump inlet pressure high + ALARM_ID_FP_RO_OUTLET_CONDUCTIVITY_HIGH_RANGE = 146 # FP pump outlet conductivity high + ALARM_ID_FP_RO_INLET_CONDUCTIVITY_HIGH_RANGE = 147 # FP pump inlet conductivity high + ALARM_ID_FP_REJECTION_RATIO_LOW_RANGE = 148 # FP rejection ratio low + ALARM_ID_FP_INLET_PRESSURE_REGULATOR_OUT_OF_RANGE = 149 # FP inlet pressure regulator out of range + ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE = 150 # FP inlet temperature above 40C during filters flush + ALARM_ID_FP_PERMEATE_FLUSH_CONDUCTIVITY_TIMEOUT = 151 # FP membrane flush timeout + ALARM_ID_FP_CONCENTRATE_FLUSH_TANK_FULL_TIMEOUT = 152 # FP concentrate flush tank full timeout + ALARM_ID_FP_GEN_PERMEATE_TANK_FULL_TIMEOUT = 153 # FP tank full time out alarm + ALARM_ID_DD_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE = 154 # DD dialysate temperature sensors out of range + ALARM_ID_DD_BLOOD_LEAK_DETECTED = 155 # DD blood leak detected + ALARM_ID_DD_BLOOD_LEAK_INVALID_CAL_RECORD = 156 # DD blood leak invalid calibration record + ALARM_ID_DD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE = 157 # DD blood leak sensor embedded mode failure + ALARM_ID_DD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE = 158 # DD blood leak sensor set point failure + ALARM_ID_DD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT = 159 # DD blood leak sensor recovering please wait + ALARM_ID_FP_GEN_PERMEATE_TANK_FILL_TIMEOUT = 160 # FP tank fill time out alarm. + ALARM_ID_FP_INLET_PRESSURE_CRITICAL_OUT_RANGE = 161 # FP inlet pressure high fault + ALARM_ID_FP_PERMEATE_FLOW_OUT_HIGH_RANGE = 162 # FP permeate flow high fault + ALARM_ID_FP_PERMEATE_FLOW_OUT_LOW_RANGE = 163 # FP permeate flow low fault + ALARM_ID_FP_INLET_PRESSURE_LOW_RANGE = 164 # FP inlet pressure low fault + ALARM_ID_TD_AIR_TRAP_LOWER_TIMEOUT = 165 # TD air trap lower timeout + ALARM_ID_TD_SYRINGE_PUMP_SELF_TEST_FAILURE = 166 # TD syringe pump self-test failure alarm + ALARM_ID_TD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR = 167 # TD syringe pump is running while the BP is off + ALARM_ID_TD_SYRINGE_PUMP_FPGA_ADC_FAULT = 168 # TD syringe pump ADC FPGA fault + ALARM_ID_TD_SYRINGE_PUMP_FAULT = 169 # TD syringe pump fault reported by FPGA + ALARM_ID_TD_SYRINGE_PUMP_DAC_WRITE_ERROR = 170 # TD syringe pump DAC write failure + ALARM_ID_TD_SYRINGE_PUMP_SPEED_ERROR = 171 # TD syringe pump speed check error + ALARM_ID_TD_SYRINGE_PUMP_VOLUME_ERROR = 172 # TD syringe pump volume check error + ALARM_ID_TD_SYRINGE_PUMP_OVER_TRAVEL_ERROR = 173 # TD syringe pump over travel error + ALARM_ID_TD_SYRINGE_PUMP_NOT_STOPPED_ERROR = 174 # TD syringe pump not stopped in off state error + ALARM_ID_TD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR = 175 # TD syringe pump direction (from encoder) error + ALARM_ID_TD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR = 176 # TD syringe pump direction (from controller) error + ALARM_ID_TD_SYRINGE_PUMP_SYRINGE_EMPTY = 177 # TD syringe empty alarm + ALARM_ID_TD_SYRINGE_PUMP_SYRINGE_REMOVED = 178 # TD syringe pump syringe removed alarm + ALARM_ID_TD_SYRINGE_PUMP_STALL = 179 # TD syringe pump stall alarm + ALARM_ID_TD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD = 180 # TD heparin force sensor invalid calibration record + ALARM_ID_TD_SYRINGE_DETECTED = 181 # TD syringe detected alarm + ALARM_ID_TD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM = 182 # TD syringe pump not enough Heparin alarm + ALARM_ID_TD_SYRINGE_PUMP_OCCLUSION = 183 # TD syringe pump occlusion alarm + ALARM_ID_TD_SYRINGE_PUMP_PRIME_TIMEOUT = 184 # TD syringe pump prime timeout + ALARM_ID_FP_P9_COND_SENSOR_FPGA_FAULT = 185 # FP P9 conductivity sensor fpga fault + ALARM_ID_FP_P18_COND_SENSOR_FPGA_FAULT = 186 # FP P18 conductivity sensor fpga fault + ALARM_ID_TD_AUTO_LOAD_EJECT_BP_TIMEOUT = 187 # TD blood pump timeout during auto-load operation + ALARM_ID_TD_AUTO_EJECT_EJECTOR_TIMEOUT = 188 # TD ejector failed to extend or retract during auto-eject operation + ALARM_ID_TD_EJECTOR_POST_TEST_FAILED = 189 # TD ejector POST homing failure + ALARM_ID_TD_AUTO_LOAD_EJECT_HIGH_BP_TORQUE = 190 # TD high blood pump torque during auto-load operation + ALARM_ID_TD_AIR_PUMP_STALL = 191 # TD air pump stall detected + ALARM_ID_TD_CPU_RAM_ERROR = 192 # TD CPU RAM error + ALARM_ID_DD_CPU_RAM_ERROR = 193 # DD CPU RAM error + ALARM_ID_TD_INTEGRITY_POST_TEST_FAILED = 194 # TD integrity post test fault + ALARM_ID_DD_INTEGRITY_POST_TEST_FAILED = 195 # TD integrity post test fault + ALARM_ID_TD_EMPTY_SALINE_BAG = 196 # TD empty saline bag alarm + ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE = 197 # DD D92 pump rpm out of range + ALARM_ID_TD_PRIME_COMPLETED_MEDIUM = 198 # TD prime completed medium priority alarm + ALARM_ID_TD_REPEATED_AIR_TRAP_LOWER_EVENTS = 199 # TD repeated air trap lower events + ALARM_ID_TD_TUBE_SET_MISMATCH = 200 # TD tubeset mismatch alarm + ALARM_ID_FW_RESERVED_201 = 201 # FW reserved for use + ALARM_ID_TD_BATTERY_PACK_ERROR_DETECTED = 202 # FW reserved for use + ALARM_ID_TD_BATTERY_COMM_FAULT = 203 # FW reserved for use + ALARM_ID_TD_BATTERY_CHARGER_ERROR_DETECTED = 204 # FW reserved for use + ALARM_ID_FW_RESERVED_205 = 205 # FW reserved for use + ALARM_ID_FW_RESERVED_206 = 206 # FW reserved for use + ALARM_ID_FW_RESERVED_207 = 207 # FW reserved for use + ALARM_ID_FW_RESERVED_208 = 208 # FW reserved for use + ALARM_ID_FW_RESERVED_209 = 209 # FW reserved for use + ALARM_ID_FW_RESERVED_210 = 210 # FW reserved for use + ALARM_ID_FW_RESERVED_211 = 211 # FW reserved for use + ALARM_ID_FW_RESERVED_212 = 212 # FW reserved for use + ALARM_ID_FW_RESERVED_213 = 213 # FW reserved for use + ALARM_ID_FW_RESERVED_214 = 214 # FW reserved for use + ALARM_ID_FW_RESERVED_215 = 215 # FW reserved for use + ALARM_ID_FW_RESERVED_216 = 216 # FW reserved for use + ALARM_ID_FW_RESERVED_217 = 217 # FW reserved for use + ALARM_ID_FW_RESERVED_218 = 218 # FW reserved for use + ALARM_ID_FW_RESERVED_219 = 219 # FW reserved for use + ALARM_ID_FW_RESERVED_220 = 220 # FW reserved for use + ALARM_ID_FW_RESERVED_221 = 221 # FW reserved for use + ALARM_ID_FW_RESERVED_222 = 222 # FW reserved for use + ALARM_ID_FW_RESERVED_223 = 223 # FW reserved for use + ALARM_ID_FW_RESERVED_224 = 224 # FW reserved for use + ALARM_ID_FW_RESERVED_225 = 225 # FW reserved for use + ALARM_ID_FW_RESERVED_226 = 226 # FW reserved for use + ALARM_ID_FW_RESERVED_227 = 227 # FW reserved for use + ALARM_ID_FW_RESERVED_228 = 228 # FW reserved for use + ALARM_ID_FW_RESERVED_229 = 229 # FW reserved for use + ALARM_ID_FW_RESERVED_230 = 230 # FW reserved for use + ALARM_ID_FW_RESERVED_231 = 231 # FW reserved for use + ALARM_ID_FW_RESERVED_232 = 232 # FW reserved for use + ALARM_ID_FW_RESERVED_233 = 233 # FW reserved for use + ALARM_ID_FW_RESERVED_234 = 234 # FW reserved for use + ALARM_ID_FW_RESERVED_235 = 235 # FW reserved for use + ALARM_ID_FW_RESERVED_236 = 236 # FW reserved for use + ALARM_ID_FW_RESERVED_237 = 237 # FW reserved for use + ALARM_ID_FW_RESERVED_238 = 238 # FW reserved for use + ALARM_ID_FW_RESERVED_239 = 239 # FW reserved for use + ALARM_ID_FW_RESERVED_240 = 240 # FW reserved for use + ALARM_ID_FW_RESERVED_241 = 241 # FW reserved for use + ALARM_ID_FW_RESERVED_242 = 242 # FW reserved for use + ALARM_ID_FW_RESERVED_243 = 243 # FW reserved for use + ALARM_ID_FW_RESERVED_244 = 244 # FW reserved for use + ALARM_ID_FW_RESERVED_245 = 245 # FW reserved for use + ALARM_ID_FW_RESERVED_246 = 246 # FW reserved for use + ALARM_ID_FW_RESERVED_247 = 247 # FW reserved for use + ALARM_ID_FW_RESERVED_248 = 248 # FW reserved for use + ALARM_ID_FW_RESERVED_249 = 249 # FW reserved for use + ALARM_ID_FW_RESERVED_250 = 250 # FW reserved for use + ALARM_ID_FW_RESERVED_251 = 251 # FW reserved for use + ALARM_ID_FW_RESERVED_252 = 252 # FW reserved for use + ALARM_ID_FW_RESERVED_253 = 253 # FW reserved for use + ALARM_ID_FW_RESERVED_254 = 254 # FW reserved for use + ALARM_ID_FW_RESERVED_255 = 255 # FW reserved for use + ALARM_ID_FW_RESERVED_256 = 256 # FW reserved for use + ALARM_ID_FW_RESERVED_257 = 257 # FW reserved for use + ALARM_ID_FW_RESERVED_258 = 258 # FW reserved for use + ALARM_ID_FW_RESERVED_259 = 259 # FW reserved for use + ALARM_ID_FW_RESERVED_260 = 260 # FW reserved for use + ALARM_ID_FW_RESERVED_261 = 261 # FW reserved for use + ALARM_ID_FW_RESERVED_262 = 262 # FW reserved for use + ALARM_ID_FW_RESERVED_263 = 263 # FW reserved for use + ALARM_ID_FW_RESERVED_264 = 264 # FW reserved for use + ALARM_ID_FW_RESERVED_265 = 265 # FW reserved for use + ALARM_ID_FW_RESERVED_266 = 266 # FW reserved for use + ALARM_ID_FW_RESERVED_267 = 267 # FW reserved for use + ALARM_ID_FW_RESERVED_268 = 268 # FW reserved for use + ALARM_ID_FW_RESERVED_269 = 269 # FW reserved for use + ALARM_ID_FW_RESERVED_270 = 270 # FW reserved for use + ALARM_ID_FW_RESERVED_271 = 271 # FW reserved for use + ALARM_ID_FW_RESERVED_272 = 272 # FW reserved for use + ALARM_ID_FW_RESERVED_273 = 273 # FW reserved for use + ALARM_ID_FW_RESERVED_274 = 274 # FW reserved for use + ALARM_ID_FW_RESERVED_275 = 275 # FW reserved for use + ALARM_ID_FW_RESERVED_276 = 276 # FW reserved for use + ALARM_ID_FW_RESERVED_277 = 277 # FW reserved for use + ALARM_ID_FW_RESERVED_278 = 278 # FW reserved for use + ALARM_ID_FW_RESERVED_279 = 279 # FW reserved for use + ALARM_ID_FW_RESERVED_280 = 280 # FW reserved for use + ALARM_ID_FW_RESERVED_281 = 281 # FW reserved for use + ALARM_ID_FW_RESERVED_282 = 282 # FW reserved for use + ALARM_ID_FW_RESERVED_283 = 283 # FW reserved for use + ALARM_ID_FW_RESERVED_284 = 284 # FW reserved for use + ALARM_ID_FW_RESERVED_285 = 285 # FW reserved for use + ALARM_ID_FW_RESERVED_286 = 286 # FW reserved for use + ALARM_ID_FW_RESERVED_287 = 287 # FW reserved for use + ALARM_ID_FW_RESERVED_288 = 288 # FW reserved for use + ALARM_ID_FW_RESERVED_289 = 289 # FW reserved for use + ALARM_ID_FW_RESERVED_290 = 290 # FW reserved for use + ALARM_ID_FW_RESERVED_291 = 291 # FW reserved for use + ALARM_ID_FW_RESERVED_292 = 292 # FW reserved for use + ALARM_ID_FW_RESERVED_293 = 293 # FW reserved for use + ALARM_ID_FW_RESERVED_294 = 294 # FW reserved for use + ALARM_ID_FW_RESERVED_295 = 295 # FW reserved for use + ALARM_ID_FW_RESERVED_296 = 296 # FW reserved for use + ALARM_ID_FW_RESERVED_297 = 297 # FW reserved for use + ALARM_ID_FW_RESERVED_298 = 298 # FW reserved for use + ALARM_ID_FW_RESERVED_299 = 299 # FW reserved for use + ALARM_ID_FW_RESERVED_300 = 300 # FW reserved for use + NUM_OF_ALARM_IDS = 301 # Number of alarms Index: leahi_dialin/common/fp_defs.py =================================================================== diff -u -r9c1ee405a484654486ee23393f0b8e6b33a17154 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision 9c1ee405a484654486ee23393f0b8e6b33a17154) +++ leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -16,11 +16,12 @@ from enum import unique -from .dd_defs import DDConductivitySensorNames, DDPressureSensorNames, DDValveNames, DDLevelSensorNames +from .dd_defs import DDConductivitySensorNames, DDEventList, DDPressureSensorNames, DDValveNames, DDLevelSensorNames from ..utils.enums import DialinEnum # ================================================== Constants ================================================== +BETA_IOFP_EVENT_OFFSET = DDEventList.NUM_OF_DD_EVENT_IDS.value # Offset to translate Dialin FPEventList to DD firmware DD Event List enum BETA_IOFP_COND_SENSOR_OFFSET = DDConductivitySensorNames.NUM_OF_CONDUCTIVITY_SENSORS.value # Offset to translate Dialin FPTemperaturesNames to DD firmware DD Conductivity Sensors enum BETA_IOFP_PRES_SENSOR_OFFSET = DDPressureSensorNames.NUM_OF_PRESSURE_SENSORS.value # Offset to translate Dialin FPTemperaturesNames to DD firmware DD Pressure Sensors enum BETA_IOFP_VALVE_OFFSET = DDValveNames.NUM_OF_DD_VALVES.value # Offset to translate Dialin FPValveNames to DD firmware DD_Valves Index: leahi_dialin/common/msg_defs.py =================================================================== diff -u -r3f4937e339925dde0b95f08e49969f8983c5cba4 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/common/msg_defs.py (.../msg_defs.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) +++ leahi_dialin/common/msg_defs.py (.../msg_defs.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -2,72 +2,87 @@ # # Copyright (c) 2020-2024 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. +# 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 msg_defs.py # -# @author (last) Dara Navaei -# @date (last) 08-May-2024 -# @author (original) Peter Lucia -# @date (original) 07-Aug-2020 +# @author (last) Enum Updater Script +# @date (last) 03-Aug-2026 +# @author (original) Zoltan Miskolci +# @date (original) 31-Jul-2026 # ############################################################################ from enum import unique -from ..utils.enums import DialinEnum +from leahi_dialin.utils.enums import DialinEnum -ACK_NOT_REQUIRED = [ ] - - @unique class RequestRejectReasons(DialinEnum): - REQUEST_REJECT_REASON_NONE = 0 - REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE = 1 - REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM = 2 - REQUEST_REJECT_REASON_NOT_IN_TREATMENT_MODE = 3 - REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE = 4 - REQUEST_REJECT_REASON_TREATMENT_TOO_CLOSE_TO_FINISHED = 5 - REQUEST_REJECT_REASON_TREATMENT_TIME_OUT_OF_RANGE = 6 - REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_CURRENT = 7 - REQUEST_REJECT_REASON_BLOOD_FLOW_OUT_OF_RANGE = 8 - REQUEST_REJECT_REASON_DIAL_FLOW_OUT_OF_RANGE = 9 - REQUEST_REJECT_REASON_DIAL_VOLUME_OUT_OF_RANGE = 10 - REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE = 11 - REQUEST_REJECT_REASON_UF_RATE_OUT_OF_RANGE = 12 - REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM = 13 - REQUEST_REJECT_REASON_UF_NOT_IN_PROGESS = 14 - REQUEST_REJECT_REASON_UF_NOT_PAUSED = 15 - REQUEST_REJECT_REASON_SALINE_BOLUS_IN_PROGRESS = 16 - REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE = 17 - REQUEST_REJECT_REASON_FILTER_FLUSH_HAS_BEEN_EXPIRED = 18 - REQUEST_REJECT_REASON_SALINE_MAX_VOLUME_REACHED = 19 - REQUEST_REJECT_REASON_SALINE_BOLUS_NOT_IN_PROGRESS = 20 - REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE = 21 - REQUEST_REJECT_REASON_ALARM_IS_ACTIVE = 22 - REQUEST_REJECT_REASON_INVALID_COMMAND = 23 - REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED = 24 - REQUEST_REJECT_REASON_ADDL_RINSEBACK_MAX_VOLUME_REACHED = 25 - REQUEST_REJECT_REASON_DIALYZER_NOT_INVERTED = 26 - REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM = 27 - REQUEST_REJECT_REASON_DD_COMM_LOST = 28 - REQUEST_REJECT_REASON_DD_NOT_IN_STANDBY_IDLE_STATE = 29 - REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT = 30 - REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME = 31 - REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS = 32 - REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED = 33 - REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED = 34 - REQUEST_REJECT_REASON_DOOR_NOT_CLOSED = 35 - REQUEST_REJECT_REASON_DD_DIALYSATE_CAP_OPEN = 36 - REQUEST_REJECT_REASON_DD_CONCENTRATE_CAP_OPEN = 37 - REQUEST_REJECT_REASON_DISINFECT_HAS_BEEN_EXPIRED = 38 - REQUEST_REJECT_REASON_DD_SERVICE_IS_DUE = 39 - REQUEST_REJECT_REASON_TD_SERVICE_IS_DUE = 40 - REQUEST_REJECT_REASON_RO_FILTER_TEMPERATURE_OUT_OF_RANGE = 41 - REQUEST_REJECT_REASON_DD_INCOMPATIBLE = 42 - REQUEST_REJECT_REASON_DIALYZER_REPRIME_IN_PROGRESS = 43 - REQUEST_REJECT_REASON_RO_ONLY_MODE_DD_BUSY = 44 - REQUEST_REJECT_REASON_RO_ONLY_MODE_INVALID_PARAMETER = 45 - REQUEST_REJECT_REASON_RO_ONLY_MODE_INVALID_PAYLOAD_LENGTH = 46 - REQUEST_REJECT_REASON_TREATMENT_CANNOT_BE_RESUMED = 47 -RequestRejectReasons._str_list = {} + REQUEST_REJECT_REASON_NONE = 0 # Used when there is no rejection + REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE = 1 # Request is not allowed in the current operating mode + REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM = 2 # Validated request was not confirmed by user in reasonable time + REQUEST_REJECT_REASON_NOT_IN_TREATMENT_MODE = 3 # Request is not allowed if not in treatment mode + REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE = 4 # Request is not allowed in current treatment state + REQUEST_REJECT_REASON_TREATMENT_TOO_CLOSE_TO_FINISHED = 5 # Request is not allowed so near end of treatment + REQUEST_REJECT_REASON_TREATMENT_TIME_OUT_OF_RANGE = 6 # Treatment duration is out of range + REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_CURRENT = 7 # Treatment time change is less than currently elapsed treatment time + REQUEST_REJECT_REASON_BLOOD_FLOW_OUT_OF_RANGE = 8 # Blood flow is out of range + REQUEST_REJECT_REASON_DIAL_FLOW_OUT_OF_RANGE = 9 # Dialysate flow is out of range + REQUEST_REJECT_REASON_DIAL_VOLUME_OUT_OF_RANGE = 10 # Dialysate flow rate or treatment duration causes dialysate volume to exceed limit + REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE = 11 # Ultrafiltration volume is out of range + REQUEST_REJECT_REASON_UF_RATE_OUT_OF_RANGE = 12 # Ultrafiltration rate is out of range + REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM = 13 # Treatment time change is less than minimum treatment time + REQUEST_REJECT_REASON_UF_NOT_IN_PROGESS = 14 # Ultrafiltration is not currently in progress + REQUEST_REJECT_REASON_UF_NOT_PAUSED = 15 # Ultrafiltration is not currently paused + REQUEST_REJECT_REASON_FLUID_BOLUS_IN_PROGRESS = 16 # A fluid bolus is in progress + REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE = 17 # A treatment parameter is out of range + REQUEST_REJECT_REASON_FILTER_FLUSH_HAS_BEEN_EXPIRED = 18 # Filter flush time has been expired + REQUEST_REJECT_REASON_SALINE_MAX_VOLUME_REACHED = 19 # Saline bolus volume maximum has been reached - no more saline allowed + REQUEST_REJECT_REASON_FLUID_BOLUS_NOT_IN_PROGRESS = 20 # A fluid bolus is not in progress + REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE = 21 # Requested user action is disabled in current state + REQUEST_REJECT_REASON_ALARM_IS_ACTIVE = 22 # Requested user action not allowed while alarm is active + REQUEST_REJECT_REASON_INVALID_COMMAND = 23 # Requested user action invalid + REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED = 24 # The treatment has been completed + REQUEST_REJECT_REASON_ADDL_RINSEBACK_MAX_VOLUME_REACHED = 25 # Rinseback additional volume maximum has been reached - no more additional rinsebacks allowed + REQUEST_REJECT_REASON_DIALYZER_NOT_INVERTED = 26 # Dialyzer not inverted yet + REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM = 27 # The user has not confirmed patient connection + REQUEST_REJECT_REASON_DD_COMM_LOST = 28 # Treatment cannot initiate if DD comm is lost + REQUEST_REJECT_REASON_DD_NOT_IN_STANDBY_IDLE_STATE = 29 # Treatment cannot initiate if DD is not in standby idle state + REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT = 30 # Request message not formatted properly + REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME = 31 # Given date/time is invalid + REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS = 32 # Treatment is in progress + REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED = 33 # Battery does not have enough charge to start treatment + REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED = 34 # Cannot move on to recirculate without completing full rinseback. + REQUEST_REJECT_REASON_DOOR_NOT_CLOSED = 35 # Door is not closed + REQUEST_REJECT_REASON_DD_DIALYSATE_CAP_OPEN = 36 # Dialysate cap open + REQUEST_REJECT_REASON_DD_CONCENTRATE_CAP_OPEN = 37 # Concentrate cap open + REQUEST_REJECT_REASON_DISINFECT_HAS_BEEN_EXPIRED = 38 # Disinfect has been expired + REQUEST_REJECT_REASON_DD_SERVICE_IS_DUE = 39 # DD service is due + REQUEST_REJECT_REASON_TD_SERVICE_IS_DUE = 40 # TD service is due + REQUEST_REJECT_REASON_RO_FILTER_TEMPERATURE_OUT_OF_RANGE = 41 # RO filter temperature out of range + REQUEST_REJECT_REASON_DD_INCOMPATIBLE = 42 # DD firmware version is not compatible with TD firmware + REQUEST_REJECT_REASON_DIALYZER_REPRIME_IN_PROGRESS = 43 # Fluid bolus is not allowed during dialyzer reprime + REQUEST_REJECT_REASON_RO_ONLY_MODE_DD_BUSY = 44 # RO only mode DD is busy + REQUEST_REJECT_REASON_RO_ONLY_MODE_INVALID_PARAMETER = 45 # RO only mode invalid parameter + REQUEST_REJECT_REASON_RO_ONLY_MODE_INVALID_PAYLOAD_LENGTH = 46 # RO only mode invalid payload length + REQUEST_REJECT_REASON_TREATMENT_CANNOT_BE_RESUMED = 47 # Cannot resume treatment per alarm + REQUEST_REJECT_REASON_HEPARIN_STOP_TIME_EXCEEDS_DURATION = 48 # The Heparin stop time setting is greater than the treatment duration + REQUEST_REJECT_REASON_HEPARIN_STOP_TIME_WITH_NO_DISPENSE = 49 # Heparin settings are zero but stop time setting is non-zero + REQUEST_REJECT_REASON_HEPARIN_PAUSE_INVALID_IN_THIS_STATE = 50 # Heparin cannot be paused if not currently deliverying Heparin + REQUEST_REJECT_REASON_HEPARIN_NOT_PAUSED = 51 # Heparin cannot be resumed if not paused + REQUEST_REJECT_REASON_HEPARIN_VOLUME_EXCEEDS_10_ML = 52 # Heparin volume needed for treatment exceeds 10 mL maximum. + REQUEST_REJECT_REASON_PARAM_NOT_APPLICABLE = 53 # Treatment parameter not applicable for current treatment modality type + REQUEST_REJECT_REASON_ACID_CONV_FACTOR_MISMATCH = 54 # Acid conversion factor from UI mismatch with FW + REQUEST_REJECT_REASON_INVALID_PATIENT_WEIGHTS = 55 # Patient pre and estimated target weights are invalid + REQUEST_REJECT_REASON_UF_VOL_AND_WEIGHTS_INCONSISTENT = 56 # UF volume and the patient weights are not consistent + REQUEST_REJECT_REASON_TD_AUTHENTICATION_INVALID = 57 # TD authentication invalid + REQUEST_REJECT_REASON_CONFIRMATION_NOT_EXPECTED = 58 # Confirmation received without prior validation + REQUEST_REJECT_REASON_CONFIRMATION_MISMATCH = 59 # Confirmed value does not match validated value + REQUEST_REJECT_REASON_INVALID_TREATMENT_SUB_STATE = 60 # Request is not allowed in current treatment sub-state + REQUEST_REJECT_REASON_MODALITY_MISMATCH = 61 # Mismatched modality (Rx entered vs reatment initiation modality ) + NUM_OF_REQUEST_REJECT_REASONS = 62 # Number of settings change reject codes + +RequestRejectReasons._str_list = { } + +ACK_NOT_REQUIRED = [ ] Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r3dc5b82f0b6f0ad88f51e709ec969b3f62af5240 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 3dc5b82f0b6f0ad88f51e709ec969b3f62af5240) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -1,579 +1,517 @@ ########################################################################### # -# Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2024 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 msg_ids.py # -# @author (last) Dara Navaei -# @date (last) 10-May-2024 -# @author (original) Peter Lucia -# @date (original) 06-Apr-2021 +# @author (last) Enum Updater Script +# @date (last) 03-Aug-2026 +# @author (original) Zoltan Miskolci +# @date (original) 31-Jul-2026 # ############################################################################ from enum import unique -from ..utils.enums import DialinEnum +from leahi_dialin.utils.enums import DialinEnum -# Branch: staging @unique class MsgIds(DialinEnum): - MSG_ID_UNUSED = 0x0 - MSG_ID_ALARM_STATUS_DATA = 0x1 - MSG_ID_ALARM_TRIGGERED = 0x2 - MSG_ID_ALARM_CLEARED = 0x3 - MSG_ID_ALARM_CONDITION_CLEARED = 0x4 - MSG_ID_USER_ALARM_SILENCE_REQUEST = 0x5 - MSG_ID_UI_ALARM_USER_ACTION_REQUEST = 0x6 - MSG_ID_TD_ALARM_INFORMATION_DATA = 0x7 - MSG_ID_DD_ALARM_INFO_DATA = 0x8 - MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST = 0x9 - MSG_ID_TD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE = 0xA - MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD_REQUEST = 0xB - MSG_ID_TD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0xC - MSG_ID_FW_VERSIONS_REQUEST = 0xD - MSG_ID_TD_VERSION_RESPONSE = 0xE - MSG_ID_DD_VERSION_RESPONSE = 0xF - MSG_ID_UI_CHECK_IN = 0x10 - MSG_ID_TD_BLOOD_PUMP_DATA = 0x11 - MSG_ID_TD_OP_MODE_DATA = 0x12 - MSG_ID_DD_OP_MODE_DATA = 0x13 - MSG_ID_DD_COMMAND_RESPONSE = 0x14 - MSG_ID_TD_UI_VERSION_INFO_REQUEST = 0x15 - MSG_ID_UI_VERSION_INFO_RESPONSE = 0x16 - MSG_ID_TD_EVENT = 0x17 - MSG_ID_DD_EVENT = 0x18 - MSG_ID_TD_DD_ALARMS_REQUEST = 0x19 - MSG_ID_UI_TD_RESET_IN_SERVICE_MODE_REQUEST = 0x1A - MSG_ID_DD_VALVES_STATES_DATA = 0x1B - MSG_ID_DD_PRESSURES_DATA = 0x1C - MSG_ID_TD_VOLTAGES_DATA = 0x1D - MSG_ID_TD_BUBBLES_DATA = 0x1E - MSG_ID_DD_CONDUCTIVITY_DATA = 0x1F - MSG_ID_TD_AIR_PUMP_DATA = 0x20 - MSG_ID_TD_SWITCHES_DATA = 0x21 - MSG_ID_POWER_OFF_WARNING = 0x22 - MSG_ID_OFF_BUTTON_PRESS_REQUEST = 0x23 - MSG_ID_TD_PRESSURE_DATA = 0x24 - MSG_ID_DD_CONCENTRATE_PUMP_DATA = 0x25 - MSG_ID_DD_TEMPERATURE_DATA = 0x26 - MSG_ID_DIALYSATE_PUMPS_DATA = 0x27 - MSG_ID_DD_HEATERS_DATA = 0x28 - MSG_ID_DD_LEVEL_DATA = 0x29 - MSG_ID_TD_AIR_TRAP_DATA = 0x2A - MSG_ID_TD_VALVES_DATA = 0x2B - MSG_ID_FP_EVENT = 0x2C - MSG_ID_FP_ALARM_INFO_DATA= 0x2D - MSG_ID_DD_BAL_CHAMBER_DATA = 0x2E - MSG_ID_DD_GEN_DIALYSATE_MODE_DATA = 0x2F - MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA = 0x30 - MSG_ID_FP_VALVES_STATES_DATA = 0x31 - MSG_ID_FP_RO_PUMP_DATA = 0x32 - MSG_ID_FP_OP_MODE_DATA = 0x33 - MSG_ID_FP_PRESSURES_DATA = 0x34 - MSG_ID_FP_LEVEL_DATA = 0x35 - MSG_ID_FP_FLOW_DATA = 0x36 - MSG_ID_FP_CONDUCTIVITY_DATA = 0x37 - MSG_ID_DD_FP_START_STOP_CMD_REQUEST = 0x38 - MSG_ID_FP_TEMPERATURE_DATA = 0x39 - MSG_ID_FP_HEATER_DATA = 0x3A - MSG_ID_TD_TREATMENT_TIME_DATA = 0x3B - MSG_ID_TD_TREATMENT_STATE_DATA = 0x3C - MSG_ID_TD_SALINE_BOLUS_DATA = 0x3D - MSG_ID_TD_ULTRAFILTRATION_DATA = 0x3E - MSG_ID_UI_TREATMENT_PARAMS_TO_VALIDATE = 0x3F - MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE = 0x40 - MSG_ID_UI_ULTRAFILTRATION_VOLUME_TO_VALIDATE = 0x41 - MSG_ID_TD_RESP_ULTRAFILTRATION_VOLUME_TO_VALIDATE = 0x42 - MSG_ID_TD_TREATMENT_PARAM_RANGES = 0x43 - MSG_ID_UI_TREATMENT_PARAMS_CONFIRMED = 0x44 - MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW = 0x45 - MSG_ID_TD_RESP_INITIATE_TREATMENT_WORKFLOW = 0x46 - MSG_ID_UI_UF_PAUSE_RESUME_REQUEST = 0x47 - MSG_ID_TD_UF_PAUSE_RESUME_RESPONSE = 0x48 - MSG_ID_FP_GEN_PERMEATE_MODE_DATA = 0x49 - MSG_ID_DD_PRE_GEN_DIALYSATE_STATE_DATA = 0x4A - MSG_ID_DD_POST_GEN_DIALYSATE_STATE_DATA = 0x4B - MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA = 0x4C - MSG_ID_FP_PRE_GEN_WATER_MODE_DATA = 0x4D - MSG_ID_TD_EJECTOR_DATA = 0x4E - MSG_ID_TD_TREATMENT_SET_POINTS = 0x4F - MSG_ID_FP_BOOST_PUMP_DATA = 0x50 - MSG_ID_TD_SERIAL_RESPONSE = 0x51 - MSG_ID_DD_SERIAL_RESPONSE = 0x52 - MSG_ID_TD_TEMPERATURE_DATA = 0x53 - MSG_ID_TD_BATTERY_DATA = 0x54 - MSG_ID_UI_ADJUST_PATIENT_DISCONNECT_CONFIRM_REQUEST = 0x55 - MSG_ID_TD_ADJUST_PATIENT_DISCONNECT_CONFIRM_RESPONSE = 0x56 - MSG_ID_FP_CONCENTRATE_FLUSH_DATA = 0x57 - MSG_ID_FP_GENP_DEF_DATA = 0x58 - MSG_ID_FP_PRE_GEN_DEF_DATA = 0x59 - MSG_ID_FP_VERSION_RESPONSE = 0x5A - MSG_ID_TD_TREATMENT_PAUSED_TIMER_DATA = 0x5B - MSG_ID_DD_UF_DATA = 0x5C - MSG_ID_FP_PERMEATE_TANK_DATA = 0x5D - MSG_ID_DD_SPENT_CHAMBER_FILL_DATA = 0x5E - MSG_ID_UI_SOLUTION_INFUSION_REQUEST = 0x5F - MSG_ID_TD_SOLUTION_INFUSION_RESPONSE = 0x60 - MSG_ID_DD_BLOOD_LEAK_DATA = 0x61 - MSG_ID_DD_FP_INLET_PRESSURE_CHECK_DATA = 0x62 - MSG_ID_UI_BLOOD_PRESSURE_REQUEST = 0x63 - MSG_ID_TD_BLOOD_PRESSURE_RESPONSE = 0x64 - MSG_ID_TD_BLOOD_PRESSURE_DATA = 0x65 - MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE_REQUEST = 0x66 - MSG_ID_USER_UF_SETTINGS_CHANGE_CONFIRMATION_RESPONSE = 0x67 - MSG_ID_DD_VOLTAGES_DATA = 0x68 - MSG_ID_DD_RINSE_PUMP_DATA = 0x69 - MSG_ID_TD_TREATMENT_LOG_ALARM_EVENT = 0x6A - MSG_ID_TD_TREATMENT_LOG_EVENT = 0x6B - MSG_ID_TD_DATE_AND_TIME_REQUEST = 0x6C - MSG_ID_TD_DATE_AND_TIME_RESPONSE = 0x6D - MSG_ID_DD_DATE_AND_TIME_REQUEST = 0x6E - MSG_ID_DD_DATE_AND_TIME_RESPONSE = 0x6F - MSG_ID_DD_DRY_BICART_DATA = 0x70 - MSG_ID_FP_RO_REJECTION_RATIO_DATA = 0x71 - MSG_ID_UI_PRESSURE_LIMITS_CHANGE_REQUEST = 0x72 - MSG_ID_TD_PRESSURE_LIMITS_CHANGE_RESPONSE = 0x73 - MSG_ID_UI_BOLUS_VOLUME_CHANGE_REQUEST = 0x74 - MSG_ID_TD_BOLUS_VOLUME_CHANGE_RESPONSE = 0x75 - MSG_ID_UI_DURATION_VALIDATE_REQUEST = 0x76 - MSG_ID_TD_DURATION_VALIDATE_RESPONSE = 0x77 - MSG_ID_UI_DURATION_CONFIRM_REQUEST = 0x78 - MSG_ID_TD_DURATION_CONFIRM_RESPONSE = 0x79 - MSG_ID_UI_TREATMENT_SET_POINTS_CHANGE_REQUEST = 0x7A - MSG_ID_TD_TREATMENT_SET_POINTS_CHANGE_RESPONSE = 0x7B - MSG_ID_UI_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_REQUEST = 0x7C - MSG_ID_TD_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_RESPONSE = 0x7D - MSG_ID_UI_TREATMENT_SET_POINT_DIALYSATE_FLOW_CHANGE_REQUEST = 0x7E - MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_FLOW_CHANGE_RESPONSE = 0x7F - MSG_ID_UI_TREATMENT_SET_POINT_DIALYSATE_TEMPERATURE_CHANGE_REQUEST = 0x80 - MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_TEMPERATURE_CHANGE_RESPONSE = 0x81 - MSG_ID_TD_INSTITUTIONAL_RECORD_REQUEST = 0x82 - MSG_ID_TD_INSTITUTIONAL_RECORD_RESPONSE = 0x83 - MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_REQUEST = 0x84 - MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_RESPONSE = 0x85 - MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_REQUEST = 0x86 - MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_RESPONSE = 0x87 - MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_REQUEST = 0x88 - MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_RESPONSE = 0x89 - MSG_ID_TD_HEPARIN_REQUEST = 0x8A - MSG_ID_TD_HEPARIN_RESPONSE = 0x8B - MSG_ID_TD_HEPARIN_DATA = 0x8C - MSG_ID_TD_END_TREATMENT_REQUEST = 0x8D - MSG_ID_TD_END_TREATMENT_RESPONSE = 0x8E - MSG_ID_TD_RINSEBACK_PROGRESS = 0x8F - MSG_ID_UI_RINSEBACK_CMD_REQUEST = 0x90 - MSG_ID_TD_RINSEBACK_CMD_RESPONSE = 0x91 - MSG_ID_UI_ADJUST_DISPOSABLES_CONFIRM_REQUEST = 0x92 - MSG_ID_TD_ADJUST_DISPOSABLES_CONFIRM_RESPONSE = 0x93 - MSG_ID_UI_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_REQUEST = 0x94 - MSG_ID_TD_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_RESPONSE = 0x95 - TBD_96 = 0x96 - MSG_ID_TD_BLOOD_PRIME_PROGRESS_DATA = 0x97 - MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST = 0x98 - MSG_ID_TD_BLOOD_PRIME_CMD_RESPONSE = 0x99 - MSG_ID_TD_ISOLATED_UF_DATA = 0x9A - MSG_ID_UI_ISOLATED_UF_DURATION_CHANGE_REQUEST = 0x9B - MSG_ID_TD_ISOLATED_UF_DURATION_CHANGE_RESPONSE = 0x9C - MSG_ID_UI_ISOLATED_UF_VOLUME_GOAL_CHANGE_REQUEST = 0x9D - MSG_ID_TD_ISOLATED_UF_VOLUME_GOAL_CHANGE_RESPONSE = 0x9E - MSG_ID_UI_ISOLATED_UF_CONFIRM_REQUEST = 0x9F - MSG_ID_TD_ISOLATED_UF_CONFIRM_RESPONSE = 0xA0 - MSG_ID_UI_ADJUST_START_TREATMENT_REQUEST = 0xA1 - MSG_ID_TD_ADJUST_START_TREATMENT_RESPONSE = 0xA2 - MSG_ID_UI_WATER_SAMPLE_RESULT_REQUEST = 0XA3 - MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST = 0xA4 - MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE = 0xA5 - MSG_ID_UI_RECIRCULATE_REQUEST = 0xA6 - MSG_ID_TD_RECIRCULATE_RESPONSE = 0xA7 - MSG_ID_TD_RECIRCULATE_DATA = 0xA8 - MSG_ID_UI_ADJUST_TREATMENT_LOGS_REQUEST = 0xA9 - MSG_ID_TD_ADJUST_TREATMENT_LOGS_RESPONSE = 0xAA - MSG_ID_TD_WATER_SAMPLE_RESULT_RESPONSE = 0xAB - MSG_ID_TD_WATER_SAMPLE_DATA = 0xAC - MSG_ID_TD_TREATMENT_LOG_AVERAGE_DATA = 0xAD - MSG_ID_TD_DRY_SELF_TEST_PROGRESS_DATA = 0xAE - MSG_ID_TD_TUBE_SET_AUTHENTICATION_REQUEST = 0xAF - MSG_ID_UI_TUBE_SET_AUTHENTICATION_ACK_RESPONSE = 0xB0 - MSG_ID_TD_SYRINGE_PUMP_DATA = 0xB1 - MSG_ID_TD_HEPARIN_PAUSE_RESUME_RESPONSE= 0xB2 - MSG_ID_FFU_SIGNAL_TD_UPDATE_AVAILABLE = 0xB3 - MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE = 0xB4 - MSG_ID_TD_UI_CONFIRMATION_REQUEST = 0xB5 - MSG_ID_UI_CONFIRMATION_RESULT_RESPONSE = 0xB6 - AVAILABLE_MSG_ID_B7 = 0xB7 - MSG_ID_UI_VITALS_ADJUSTMENT_REQUEST = 0xB8 - MSG_ID_TD_VITALS_ADJUSTMENT_RESPONSE = 0xB9 - MSG_ID_UI_DD_NVM_GET_RECORD_REQUEST = 0xBA - MSG_ID_DD_NVM_SYSTEM_RECORD_RESPONSE = 0xBB - MSG_ID_UI_DD_NVM_SET_SYSTEM_RECORD_REQUEST = 0xBC - MSG_ID_DD_NVM_SERVICE_RECORD_RESPONSE = 0xBD - MSG_ID_UI_DD_NVM_SET_SERVICE_RECORD_REQUEST = 0xBE - MSG_ID_DD_NVM_INSTITUTIONAL_RECORD_RESPONSE = 0xBF - MSG_ID_UI_DD_NVM_SET_INSTITUTIONAL_RECORD_REQUEST = 0xC0 - MSG_ID_DD_NVM_USAGE_INFO_RECORD_RESPONSE = 0xC1 - MSG_ID_UI_DD_NVM_SET_USAGE_INFO_RECORD_REQUEST = 0xC2 - MSG_ID_DD_NVM_CAL_PRESSURE_SENSOR_RESPONSE = 0xC3 - MSG_ID_UI_DD_NVM_SET_CAL_PRESSURE_SENSOR_REQUEST = 0xC4 - MSG_ID_DD_NVM_CAL_TEMP_SENSOR_RESPONSE = 0xC5 - MSG_ID_UI_DD_NVM_SET_CAL_TEMP_SENSOR_REQUEST = 0xC6 - MSG_ID_DD_NVM_CAL_CONC_PUMP_RESPONSE = 0xC7 - MSG_ID_UI_DD_NVM_SET_CAL_CONC_PUMP_REQUEST = 0xC8 - MSG_ID_DD_NVM_CAL_D12_PUMP_RESPONSE = 0xC9 - MSG_ID_UI_DD_NVM_SET_CAL_D12_PUMP_REQUEST = 0xCA - MSG_ID_DD_NVM_CAL_D48_PUMP_RESPONSE = 0xCB - MSG_ID_UI_DD_NVM_SET_CAL_D48_PUMP_REQUEST = 0xCC - MSG_ID_DD_NVM_CAL_ACID_CONCENTRATE_RESPONSE = 0xCD - MSG_ID_UI_DD_NVM_SET_CAL_ACID_CONCENTRATE_REQUEST = 0xCE - MSG_ID_DD_NVM_CAL_BICARB_CONCENTRATE_RESPONSE = 0xCF - MSG_ID_UI_DD_NVM_SET_CAL_BICARB_CONCENTRATE_REQUEST = 0xD0 - MSG_ID_DD_NVM_CAL_ACCEL_SENSOR_RESPONSE = 0xD1 - MSG_ID_UI_DD_NVM_SET_CAL_ACCEL_SENSOR_REQUEST = 0xD2 - MSG_ID_DD_NVM_CAL_BLOOD_LEAK_SENSOR_RESPONSE = 0xD3 - MSG_ID_UI_DD_NVM_SET_CAL_BLOOD_LEAK_SENSOR_REQUEST = 0xD4 - MSG_ID_DD_NVM_RECORD_CRC_OVERRIDE_REQUEST = 0xD5 - MSG_ID_UI_SETUP_CONNECTION_CONFIRM_REQUEST = 0xD6 - MSG_ID_TD_SETUP_CONNECTION_CONFIRM_RESPONSE = 0xD7 - MSG_ID_TD_POST_FINAL_TEST_RESULT = 0xD8 - MSG_ID_TD_POST_SINGLE_TEST_RESULT = 0xD9 - MSG_ID_TD_UI_CANCEL_REQUEST = 0xDA - MSG_ID_DD_SUBSTITUTION_PUMP_DATA = 0xDB - MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_DATA = 0xDC - MSG_ID_FP_FILTER_FLUSH_DATA = 0xDD - MSG_ID_FP_PERMEATE_FLUSH_DATA = 0xDE - MSG_ID_DD_NVM_GET_RECORD_RESPONSE = 0xDF - MSG_ID_DD_NVM_SET_SYSTEM_RECORD_RESPONSE = 0xE0 - MSG_ID_DD_NVM_SET_SERVICE_RECORD_RESPONSE = 0xE1 - MSG_ID_DD_NVM_SET_INSTITUTIONAL_RECORD_RESPONSE = 0xE2 - MSG_ID_DD_NVM_SET_USAGE_INFO_RECORD_RESPONSE = 0xE3 - MSG_ID_DD_NVM_SET_CAL_PRESSURE_SENSOR_RESPONSE = 0xE4 - MSG_ID_DD_NVM_SET_CAL_TEMP_SENSOR_RESPONSE = 0xE5 - MSG_ID_DD_NVM_SET_CAL_CONC_PUMP_RESPONSE = 0xE6 - MSG_ID_DD_NVM_SET_CAL_D12_PUMP_RESPONSE = 0xE7 - MSG_ID_DD_NVM_SET_CAL_D48_PUMP_RESPONSE = 0xE8 - MSG_ID_DD_NVM_SET_CAL_ACID_CONCENTRATE_RESPONSE = 0xE9 - MSG_ID_DD_NVM_SET_CAL_BICARB_CONCENTRATE_RESPONSE = 0xEA - MSG_ID_DD_NVM_SET_CAL_ACCEL_SENSOR_RESPONSE = 0xEB - MSG_ID_DD_NVM_SET_CAL_BLOOD_LEAK_SENSOR_RESPONSE = 0xEC - TBD_ED = 0xED - TBD_EE = 0xEE - TBD_EF = 0xEF - MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0xF0 + MSG_ID_UNUSED = 0x0 # Zero is an undefined (un-used) message ID) + MSG_ID_ALARM_STATUS_DATA = 0x1 # HD broadcast of system alarm state information + MSG_ID_ALARM_TRIGGERED = 0x2 # Alarm triggered event + MSG_ID_ALARM_CLEARED = 0x3 # Alarm cleared event + MSG_ID_ALARM_CONDITION_CLEARED = 0x4 # Alarm condition cleared event + MSG_ID_USER_ALARM_SILENCE_REQUEST = 0x5 # UI request alarm silence (or cancel) + MSG_ID_UI_ALARM_USER_ACTION_REQUEST = 0x6 # UI user has requested an alarm action + MSG_ID_TD_ALARM_INFORMATION_DATA = 0x7 # TD alarm information broadcast message + MSG_ID_DD_ALARM_INFO_DATA = 0x8 # DD alarm information data publish + MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST = 0x9 # UI active alarms list request + MSG_ID_TD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE = 0xA # TD active alarms list request response + MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD_REQUEST = 0xB # UI command to set alarm audio volume level + MSG_ID_TD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0xC # TD response to UI set alarm audio volume request + MSG_ID_FW_VERSIONS_REQUEST = 0xD # UI request for f/w versions + MSG_ID_TD_VERSION_RESPONSE = 0xE # TD f/w version response + MSG_ID_DD_VERSION_RESPONSE = 0xF # DD f/w version response + MSG_ID_UI_CHECK_IN = 0x10 # UI check-in with TD + MSG_ID_TD_BLOOD_PUMP_DATA = 0x11 # TD broadcast blood pump data + MSG_ID_TD_OP_MODE_DATA = 0x12 # TD broadcast current operating mode + MSG_ID_DD_OP_MODE_DATA = 0x13 # DD broadcast current operating mode + MSG_ID_DD_COMMAND_RESPONSE = 0x14 # DD response to command from TD + MSG_ID_TD_UI_VERSION_INFO_REQUEST = 0x15 # TD request for UI version information + MSG_ID_UI_VERSION_INFO_RESPONSE = 0x16 # UI response to TD request for version information + MSG_ID_TD_EVENT = 0x17 # TD general event + MSG_ID_DD_EVENT = 0x18 # DD general event + MSG_ID_TD_DD_ALARMS_REQUEST = 0x19 # TD request for DD to re-send trigger messages for each active alarm + MSG_ID_UI_TD_RESET_IN_SERVICE_MODE_REQUEST = 0x1A # UI TD reset in service mode request + MSG_ID_DD_VALVES_STATES_DATA = 0x1B # DD broadcast valve states + MSG_ID_DD_PRESSURES_DATA = 0x1C # DD pressure sensor readings + MSG_ID_TD_VOLTAGES_DATA = 0x1D # TD broadcast voltages data + MSG_ID_TD_BUBBLES_DATA = 0x1E # TD broadcast bubbles data + MSG_ID_DD_CONDUCTIVITY_DATA = 0x1F # DD conductivity sensor readings + MSG_ID_TD_AIR_PUMP_DATA = 0x20 # TD broadcast air pump data + MSG_ID_TD_SWITCHES_DATA = 0x21 # TD broadcast switches data + MSG_ID_POWER_OFF_WARNING = 0x22 # TD broadcast for a power off warning + MSG_ID_OFF_BUTTON_PRESS_REQUEST = 0x23 # TD off button request message to UI for user confirmation + MSG_ID_TD_PRESSURE_DATA = 0x24 # TD broadcast pressure data + MSG_ID_DD_CONCENTRATE_PUMP_DATA = 0x25 # DD concentrate pump data + MSG_ID_DD_TEMPERATURE_DATA = 0x26 # DD temperature data + MSG_ID_DIALYSATE_PUMPS_DATA = 0x27 # DD dialysate pumps data + MSG_ID_DD_HEATERS_DATA = 0x28 # DD heaters data + MSG_ID_DD_LEVEL_DATA = 0x29 # DD level data + MSG_ID_TD_AIR_TRAP_DATA = 0x2A # TD broadcast air trap data + MSG_ID_TD_VALVES_DATA = 0x2B # TD broadcast valves data + MSG_ID_FP_EVENT = 0x2C # FP general event + MSG_ID_FP_ALARM_INFO_DATA = 0x2D # FP alarm info data + MSG_ID_DD_BAL_CHAMBER_DATA = 0x2E # DD balancing chamber data + MSG_ID_DD_GEN_DIALYSATE_MODE_DATA = 0x2F # DD Generate dialysate mode data + MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA = 0x30 # DD Generate dialysate request data coming from TD with additional parameters + MSG_ID_FP_VALVES_STATES_DATA = 0x31 # FP valves data + MSG_ID_FP_RO_PUMP_DATA = 0x32 # FP broadcast P12 pump data + MSG_ID_FP_OP_MODE_DATA = 0x33 # FP broadcast operation mode data + MSG_ID_FP_PRESSURES_DATA = 0x34 # FP broadcast pressures data + MSG_ID_FP_LEVEL_DATA = 0x35 # FP broadcast level data + MSG_ID_FP_FLOW_DATA = 0x36 # FP broadcast flow data + MSG_ID_FP_CONDUCTIVITY_DATA = 0x37 # FP broadcast conductivity data + MSG_ID_AVAILABLE_6 = 0x38 # DD requests FP to start/stop delivering the purified water + MSG_ID_FP_TEMPERATURE_DATA = 0x39 # FP temperatures data broadcast + MSG_ID_FP_HEATER_DATA = 0x3A # FP heater data broadcast + MSG_ID_TD_TREATMENT_TIME_DATA = 0x3B # TD treatment time data broadcast + MSG_ID_TD_TREATMENT_STATE_DATA = 0x3C # TD treatment state data broadcast + MSG_ID_TD_FLUID_BOLUS_DATA = 0x3D # TD fluid bolus status data broadcast + MSG_ID_TD_ULTRAFILTRATION_DATA = 0x3E # TD ultrafiltration status data broadcast + MSG_ID_UI_TREATMENT_PARAMS_TO_VALIDATE = 0x3F # UI treatment parameters to be validated by TD + MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE = 0x40 # TD response to treatment parameter validation request + MSG_ID_UI_TREATMENT_UF_VOLUME_VALIDATE_REQUEST = 0x41 # UI ultrafiltration volume parameter to be validated by TD + MSG_ID_TD_TREATMENT_UF_VOLUME_VALIDATE_RESPONSE = 0x42 # TD response to ultrafiltration volume validation request + MSG_ID_TD_TREATMENT_PARAM_RANGES = 0x43 # TD treatment parameter ranges for UI + MSG_ID_TD_VALIDATED_TREATMENT_PARAMS = 0x44 # Treatment parameters validated and confirmed from TD + MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW = 0x45 # UI initiate/cancel treatment workflow request + MSG_ID_TD_RESP_INITIATE_TREATMENT_WORKFLOW = 0x46 # TD response to initiate/cancel treatment workflow request + MSG_ID_UI_UF_PAUSE_RESUME_REQUEST = 0x47 # UI ultrafiltration pause/resume request + MSG_ID_TD_UF_PAUSE_RESUME_RESPONSE = 0x48 # TD response to ultrafiltration pause/resume request + MSG_ID_FP_GEN_WATER_MODE_DATA = 0x49 # FP Gen Permeate data broadcast + MSG_ID_DD_PRE_GEN_DIALYSATE_STATE_DATA = 0x4A # DD Pre-gen dialysate mode data + MSG_ID_DD_POST_GEN_DIALYSATE_STATE_DATA = 0x4B # DD Post-gen dialysate mode data + MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA = 0x4C # DD Pre Generate dialysate request data coming from TD. + MSG_ID_FP_PRE_GEN_WATER_MODE_DATA = 0x4D # FP Pre Generate water mode data. + MSG_ID_TD_EJECTOR_DATA = 0x4E # TD ejector data broadcast + MSG_ID_TD_TREATMENT_SET_POINTS = 0x4F # TD treatment user set points. + MSG_ID_FP_BOOST_PUMP_DATA = 0x50 # FP broadcast P40 pump data + MSG_ID_TD_SERIAL_RESPONSE = 0x51 # TD response to UI serial request + MSG_ID_DD_SERIAL_RESPONSE = 0x52 # DD response to UI serial request + MSG_ID_TD_TEMPERATURE_DATA = 0x53 # TD Temperature broadcast data + MSG_ID_TD_BATTERY_DATA = 0x54 # TD Battery broadcast data + MSG_ID_UI_PATIENT_DISCONNECT_CONFIRM_REQUEST = 0x55 # UI requests patient disconnect confirmation. + MSG_ID_TD_PATIENT_DISCONNECT_CONFIRM_RESPONSE = 0x56 # TD response to patient disconnect confirmation request. + MSG_ID_FP_CONCENTRATE_FLUSH_DATA = 0x57 # FP Concentrate Flush broadcast data + MSG_ID_FP_GENP_DEF_DATA = 0x58 # FP Generate Permeate Defeatured broadcast data + MSG_ID_FP_PRE_GEN_DEF_DATA = 0x59 # FP Pre Generate Permeate Defeatured broadcast data + MSG_ID_FP_VERSION_RESPONSE = 0x5A # FP FW Version response + MSG_ID_TD_TREATMENT_PAUSED_TIMER_DATA = 0x5B # TD treatment paused timer data. + MSG_ID_DD_UF_DATA = 0x5C # DD ultrafiltration data + MSG_ID_FP_PERMEATE_TANK_DATA = 0x5D # FP Permeate tank broadcast data + MSG_ID_DD_SPENT_CHAMBER_FILL_DATA = 0x5E # DD spent chamber fill broadcast data + MSG_ID_UI_FLUID_BOLUS_REQUEST = 0x5F # UI Fluid Bolus request + MSG_ID_TD_FLUID_BOLUS_RESPONSE = 0x60 # TD Fluid Bolus response + MSG_ID_DD_BLOOD_LEAK_DATA = 0x61 # DD blood leak data + MSG_ID_FP_INLET_PRESSURE_CHECK_DATA = 0x62 # FP Inlet Pressure Check broadcast data + MSG_ID_UI_BLOOD_PRESSURE_REQUEST = 0x63 # UI request to initiate a blood pressure reading + MSG_ID_TD_BLOOD_PRESSURE_READING = 0x64 # TD blood pressure reading to UI + MSG_ID_TD_BLOOD_PRESSURE_DATA = 0x65 # TD blood pressure broadcast data + MSG_ID_UI_ULTRAFILTRATION_CHANGE_CONFIRM_REQUEST = 0x66 # UI request to validate ultrafiltration volume change + MSG_ID_TD_ULTRAFILTRATION_CHANGE_CONFIRM_RESPONSE = 0x67 # TD response to request to validate ultrafiltration volume change + MSG_ID_DD_VOLTAGES_DATA = 0x68 # DD voltage broadcast data + MSG_ID_DD_RINSE_PUMP_DATA = 0x69 # DD rinse pump data + MSG_ID_TD_TREATMENT_LOG_ALARM_EVENT = 0x6A # TD treatment log alarm event + MSG_ID_TD_TREATMENT_LOG_EVENT = 0x6B # TD treatment log event + MSG_ID_TD_DATE_AND_TIME_REQUEST = 0x6C # TD date and time request + MSG_ID_TD_DATE_AND_TIME_RESPONSE = 0x6D # TD date and time response + MSG_ID_DD_DATE_AND_TIME_REQUEST = 0x6E # DD date and time request + MSG_ID_DD_DATE_AND_TIME_RESPONSE = 0x6F # DD date and time response + MSG_ID_DD_DRY_BICART_DATA = 0x70 # DD dry bicart data + MSG_ID_FP_RO_REJECTION_RATIO_DATA = 0x71 # FP broadcast RO Rejection ratio data + MSG_ID_UI_PRESSURE_LIMITS_CHANGE_REQUEST = 0x72 # UI pressure limits change request + MSG_ID_TD_PRESSURE_LIMITS_CHANGE_RESPONSE = 0x73 # TD pressure limits change response + MSG_ID_UI_BOLUS_VOLUME_CHANGE_REQUEST = 0x74 # UI bolus volume change request + MSG_ID_TD_BOLUS_VOLUME_CHANGE_RESPONSE = 0x75 # TD bolus volume change response + MSG_ID_UI_DURATION_VALIDATE_REQUEST = 0x76 # UI duration validation request + MSG_ID_TD_DURATION_VALIDATE_RESPONSE = 0x77 # TD duration validation response + MSG_ID_UI_DURATION_CONFIRM_REQUEST = 0x78 # UI duration confirm request + MSG_ID_TD_DURATION_CONFIRM_RESPONSE = 0x79 # TD duration confirm response + MSG_ID_UI_TREATMENT_SET_POINTS_CHANGE_REQUEST = 0x7A # UI treatment set points change request + MSG_ID_TD_TREATMENT_SET_POINTS_CHANGE_RESPONSE = 0x7B # TD treatment set points change response + MSG_ID_UI_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_REQUEST = 0x7C # UI treatment set point blood flow change request + MSG_ID_TD_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_RESPONSE = 0x7D # TD treatment set point blood flow change response + MSG_ID_UI_TREATMENT_SET_POINT_DIALYSATE_FLOW_CHANGE_REQUEST = 0x7E # UI treatment set point dialysate flow change request + MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_FLOW_CHANGE_RESPONSE = 0x7F # TD treatment set point dialysate flow change response + MSG_ID_UI_TREATMENT_SET_POINT_DIALYSATE_TEMP_CHANGE_REQUEST = 0x80 # UI treatment set point dialysate temperature change request + MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_TEMP_CHANGE_RESPONSE = 0x81 # TD treatment set point dialysate temperature change response + MSG_ID_TD_INSTITUTIONAL_RECORD_REQUEST = 0x82 # TD institutional record request + MSG_ID_TD_INSTITUTIONAL_RECORD_RESPONSE = 0x83 # TD institutional record response + MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_REQUEST = 0x84 # TD adjust institutional record request + MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_RESPONSE = 0x85 # TD adjust institutional record response + MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_REQUEST = 0x86 # TD advanced institutional record request + MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_RESPONSE = 0x87 # TD advanced institutional record response + MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_REQUEST = 0x88 # TD advanced institutional record request + MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_RESPONSE = 0x89 # TD advanced institutional record response + MSG_ID_TD_HEPARIN_REQUEST = 0x8A # TD heparin request + MSG_ID_TD_HEPARIN_RESPONSE = 0x8B # TD heparin response + MSG_ID_TD_HEPARIN_DATA = 0x8C # TD heparin data + MSG_ID_TD_END_TREATMENT_REQUEST = 0x8D # TD end treatment request + MSG_ID_TD_END_TREATMENT_RESPONSE = 0x8E # TD end treatment response + MSG_ID_TD_RINSEBACK_PROGRESS = 0x8F # TD rinseback progress + MSG_ID_UI_RINSEBACK_CMD_REQUEST = 0x90 # UI rinseback request + MSG_ID_TD_RINSEBACK_CMD_RESPONSE = 0x91 # TD rinseback response + MSG_ID_UI_ADJUST_DISPOSABLES_CONFIRM_REQUEST = 0x92 # UI adjust disposables confirm request + MSG_ID_TD_ADJUST_DISPOSABLES_CONFIRM_RESPONSE = 0x93 # TD adjust disposables confirm response + MSG_ID_UI_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_REQUEST = 0x94 # UI adjust disposables removal confirm request + MSG_ID_TD_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_RESPONSE = 0x95 # TD adjust disposables removal confirm response + MSG_ID_FP_FILTER_FLUSH_DEF_DATA = 0x96 # FP Filter Flush Defeatured broadcast data + MSG_ID_TD_BLOOD_PRIME_PROGRESS_DATA = 0x97 # TD broadcast of blood prime progress + MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST = 0x98 # UI blood prime command request + MSG_ID_TD_BLOOD_PRIME_CMD_RESPONSE = 0x99 # TD blood prime command response + MSG_ID_TD_ISOLATED_UF_DATA = 0x9A # TD isolated UF data + MSG_ID_UI_ISOLATED_UF_DURATION_CHANGE_REQUEST = 0x9B # UI isolated UF duration change request + MSG_ID_TD_ISOLATED_UF_DURATION_CHANGE_RESPONSE = 0x9C # TD isolated UF duration change response + MSG_ID_UI_ISOLATED_UF_VOLUME_GOAL_CHANGE_REQUEST = 0x9D # UI isolated UF volume goal change request + MSG_ID_TD_ISOLATED_UF_VOLUME_GOAL_CHANGE_RESPONSE = 0x9E # TD isolated UF volume goal change response + MSG_ID_UI_ISOLATED_UF_CONFIRM_REQUEST = 0x9F # UI isolated UF confirm request + MSG_ID_TD_ISOLATED_UF_CONFIRM_RESPONSE = 0xA0 # TD isolated UF confirm response + MSG_ID_UI_ADJUST_START_TREATMENT_REQUEST = 0xA1 # UI adjust start treatment request + MSG_ID_TD_ADJUST_START_TREATMENT_RESPONSE = 0xA2 # TD adjust start treatment response + MSG_ID_UI_WATER_SAMPLE_RESULT_REQUEST = 0xA3 # UI water sample result request + MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST = 0xA4 # UI pressure limit widen request. + MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE = 0xA5 # TD pressure limit widen response. + MSG_ID_UI_RECIRCULATE_REQUEST = 0xA6 # UI recirculate request + MSG_ID_TD_RECIRCULATE_RESPONSE = 0xA7 # TD recirculate response + MSG_ID_TD_RECIRCULATE_DATA = 0xA8 # TD recirculate data + MSG_ID_UI_ADJUST_TREATMENT_LOGS_REQUEST = 0xA9 # UI adjust treatment logs request. + MSG_ID_TD_ADJUST_TREATMENT_LOGS_RESPONSE = 0xAA # TD adjust treatment logs response + MSG_ID_TD_WATER_SAMPLE_RESULT_RESPONSE = 0xAB # UI water sample result response + MSG_ID_TD_WATER_SAMPLE_DATA = 0xAC # TD broadcast water sample data + MSG_ID_TD_TREATMENT_LOG_AVERAGE_DATA = 0xAD # TD broadcast of treatment log average data + MSG_ID_TD_DRY_SELF_TEST_PROGRESS_DATA = 0xAE # TD dry self test progress data + MSG_ID_TD_TUBE_SET_AUTHENTICATION_REQUEST = 0xAF # UI tube set authentication acknowledge request + MSG_ID_TD_TUBE_SET_AUTHENTICATION_ACK_RESPONSE = 0xB0 # TD tube set authentication acknowledge response + MSG_ID_TD_SYRINGE_PUMP_DATA = 0xB1 # TD broadcast of syringe pump data + MSG_ID_TD_HEPARIN_PAUSE_RESUME_RESPONSE = 0xB2 # TD response to pause/resume Heparin delivery request + MSG_ID_FFU_SIGNAL_TD_UPDATE_AVAILABLE = 0xB3 # FFU signal TD update is available. + MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE = 0xB4 # FFU signal DD update is available. + MSG_ID_TD_UI_GENERIC_CONFIRMATION_REQUEST = 0xB5 # TD request for generic UI confirmation. + MSG_ID_UI_GENERIC_CONFIRMATION_RESULT_RESPONSE = 0xB6 # UI generic confirmation result to TD. + MSG_ID_AVAILABLE_B7 = 0xB7 # Msg ID not used - available for use. + MSG_ID_UI_VITALS_ADJUSTMENT_REQUEST = 0xB8 # UI vitals adjustment request + MSG_ID_TD_VITALS_ADJUSTMENT_RESPONSE = 0xB9 # TD vitals adjustment response + MSG_ID_UI_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_REQUEST = 0xD6 # UI setup connection confirmation request + MSG_ID_TD_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_RESPONSE = 0xD7 # TD setup connection confirmation response + MSG_ID_DD_SUBSTITUTION_PUMP_DATA = 0xDB # DD substitution pump broadcast data. + MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_DATA = 0xDC # DD conductivity resistance data broadcast. + MSG_ID_FP_FILTER_FLUSH_DATA = 0xDD # FP Filter Flush broadcast data + MSG_ID_FP_PERMEATE_FLUSH_DATA = 0xDE # FP Permeate Flush broadcast data - MSG_ID_UI_TD_NVM_GET_RECORD_REQUEST = 0x100 - MSG_ID_TD_NVM_SYSTEM_RECORD_RESPONSE = 0x101 - MSG_ID_UI_TD_NVM_SET_SYSTEM_RECORD = 0x102 - MSG_ID_TD_NVM_SERVICE_RECORD_RESPONSE = 0x103 - MSG_ID_UI_TD_NVM_SET_SERVICE_RECORD = 0x104 - MSG_ID_TD_NVM_INSTITUTIONAL_RECORD_RESPONSE = 0x105 - MSG_ID_UI_TD_NVM_SET_INSTITUTIONAL_RECORD = 0x106 - MSG_ID_TD_NVM_USAGE_INFO_RECORD_RESPONSE = 0x107 - MSG_ID_UI_TD_NVM_SET_USAGE_INFO_RECORD = 0x108 - MSG_ID_TD_NVM_CAL_RESPONSE = 0x109 - MSG_ID_UI_TD_NVM_SET_CAL_RECORD = 0x10A - MSG_ID_TD_NVM_RECORD_CRC_OVERRIDE_REQUEST = 0x10B + MSG_ID_TESTER_LOGIN_REQUEST = 0x8000 # TD tester log-in + MSG_ID_TD_SOFTWARE_RESET_REQUEST = 0x8001 # TD reset request + MSG_ID_TD_SEND_TEST_CONFIGURATION = 0x8002 # TD send test configuration to Dialin + MSG_ID_TD_BUBBLE_OVERRIDE_REQUEST = 0x8003 # TD override request for a given bubble detector + MSG_ID_TD_VOLTAGE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8004 # TD override request for the voltage data broadcast interval + MSG_ID_TD_VOLTAGE_OVERRIDE_REQUEST = 0x8005 # TD override request for a given voltage + MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8006 # TD override request for the bubble data broadcast interval + MSG_ID_TD_PRESSURE_OVERRIDE_REQUEST = 0x8007 # TD override request for a given pressure + MSG_ID_TD_AIR_PUMP_SET_STATE_REQUEST = 0x8008 # TD set air pump state request + MSG_ID_TD_AIR_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8009 # TD override request for the air pump data broadcast interval + MSG_ID_TD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x800A # TD override request for the switches data broadcast interval + MSG_ID_TD_SWITCH_STATE_OVERRIDE_REQUEST = 0x800B # TD override request for a given switch + MSG_ID_TD_OFF_BUTTON_OVERRIDE_REQUEST = 0x800C # TD override request for the off button + MSG_ID_TD_STOP_BUTTON_OVERRIDE_REQUEST = 0x800D # TD override request for the stop button + MSG_ID_TD_ALARM_LAMP_PATTERN_OVERRIDE_REQUEST = 0x800E # TD override request for the alarm lamp pattern + MSG_ID_TD_ALARM_AUDIO_LEVEL_OVERRIDE_REQUEST = 0x800F # TD override request for the alarm audio level + MSG_ID_TD_ALARM_AUDIO_CURRENT_HG_OVERRIDE_REQUEST = 0x8010 # TD override request for the alarm audio HG current + MSG_ID_TD_ALARM_AUDIO_CURRENT_LG_OVERRIDE_REQUEST = 0x8011 # TD override request for the alarm audio LG current + MSG_ID_TD_BACKUP_ALARM_AUDIO_CURRENT_OVERRIDE_REQUEST = 0x8012 # TD override request for the backup alarm audio current + MSG_ID_TD_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8013 # TD override request for the pressures data broadcast interval + MSG_ID_TD_AIR_TRAP_LEVEL_OVERRIDE_REQUEST = 0x8014 # TD override request for debounced reading of a given air trap level sensor + MSG_ID_TD_AIR_TRAP_LEVEL_RAW_OVERRIDE_REQUEST = 0x8015 # TD override request for raw reading of a given air trap level sensor + MSG_ID_TD_AIR_TRAP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8016 # TD override request for the air trap data broadcast interval + MSG_ID_TD_3_WAY_VALVE_SET_STATE_REQUEST = 0x8017 # TD set 3-way valve state request + MSG_ID_TD_ROTARY_PINCH_VALVE_SET_POS_REQUEST = 0x8018 # TD set rotary pinch valve commanded position request + MSG_ID_TD_ROTARY_PINCH_VALVE_STATUS_OVERRIDE_REQUEST = 0x8019 # TD override request for rotary pinch valve + MSG_ID_TD_ROTARY_PINCH_VALVE_POSITION_OVERRIDE_REQUEST = 0x801A # TD override request for rotary pinch valve actual encoder position + MSG_ID_TD_VALVES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x801B # TD override request for pinch valves data broadcast interval + MSG_ID_TD_ALARM_STATUS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x801C # TD override request for alarm status broadcast interval + MSG_ID_TD_ALARM_INFO_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x801D # TD override request for alarm information broadcast interval + MSG_ID_TD_ALARM_START_TIME_OVERRIDE_REQUEST = 0x801E # TD override request for alarm start time + MSG_ID_TD_ALARM_CLEAR_ALL_ALARMS_REQUEST = 0x801F # TD clear all alarms request + MSG_ID_TD_WATCHDOG_OVERRIDE_REQUEST = 0x8020 # TD override request for watchdog task check-in + MSG_ID_TD_ALARM_STATE_OVERRIDE_REQUEST = 0x8021 # TD override request for alarm state + MSG_ID_TD_SAFETY_SHUTDOWN_OVERRIDE_REQUEST = 0x8022 # TD override request for safety shutdown + MSG_ID_TD_PINCH_VALVE_SET_POSITION_REQUEST = 0x8023 # TD set pinch valve A/B/C position + MSG_ID_TD_PINCH_VALVE_HOME_REQUEST = 0x8024 # TD initiate a pinch valve home operation + MSG_ID_TD_BLOOD_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8025 # TD override request for blood pump data broadcast interval + MSG_ID_TD_BLOOD_PUMP_SET_FLOW_RATE_REQUEST = 0x8026 # TD set blood pump set flow rate request + MSG_ID_TD_BLOOD_PUMP_SET_SPEED_REQUEST = 0x8027 # TD set blood pump set speed request + MSG_ID_TD_BLOOD_PUMP_MEASURED_FLOW_RATE_OVERRIDE_REQUEST = 0x8028 # TD override request for blood pump measured flow rate + MSG_ID_TD_BLOOD_PUMP_MEASURED_MOTOR_SPEED_OVERRIDE_REQUEST = 0x8029 # TD override request for blood pump measured motor speed + MSG_ID_TD_BLOOD_PUMP_MEASURED_ROTOR_SPEED_OVERRIDE_REQUEST = 0x802A # TD override request for blood pump measured rotor speed + MSG_ID_TD_BLOOD_PUMP_ROTOR_COUNT_OVERRIDE_REQUEST = 0x802B # TD override request for blood pump rotor count + MSG_ID_TD_TMP_PRESSURE_OVERRIDE_REQUEST = 0x802C # TD override request for TMP pressure + MSG_ID_TD_REQ_CURRENT_TREATMENT_PARAMETERS = 0x802D # TD request for current treatment parameters + MSG_ID_TD_RSP_CURRENT_TREATMENT_PARAMETERS = 0x802E # TD response to request for current treatment parameters + MSG_ID_TD_SET_TREATMENT_PARAMETER = 0x802F # TD set a specific treatment parameter + MSG_ID_TD_OP_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8030 # TD override request for operation mode data publish interval + MSG_ID_TD_OP_MODE_OVERRIDE_REQUEST = 0x8031 # TD set operation mode request + MSG_ID_TD_EJECTOR_MOTOR_SET_SPEED_REQUEST = 0x8032 # TD set ejector motor speed request + MSG_ID_TD_EJECTOR_COMMAND = 0x8033 # TD ejector command + MSG_ID_TD_EJECTOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8034 # TD override request for ejector data publish interval + MSG_ID_TD_SET_AIR_TRAP_CONTROL = 0x8035 # TD set air trap control to start or stop + MSG_ID_TD_HOME_BLOOD_PUMP = 0x8036 # TD home blood pump request + MSG_ID_TD_BLOOD_FLOW_STROKE_VOLUME_OVERRIDE_REQUEST = 0x8037 # TD override request for blood flow stroke volume + MSG_ID_TD_BLOOD_FLOW_WEAR_A_TERM_OVERRIDE_REQUEST = 0x8038 # TD override request for blood flow wear A term + MSG_ID_TD_BLOOD_FLOW_WEAR_B_TERM_OVERRIDE_REQUEST = 0x8039 # TD override request for blood flow wear B term + MSG_ID_TD_SET_TEST_CONFIGURATION = 0x803A # TD set test configuration + MSG_ID_TD_GET_TEST_CONFIGURATION = 0x803B # TD get test configuration + MSG_ID_TD_RESET_ALL_TEST_CONFIGURATIONS = 0x803C # TD reset all the configurations + MSG_ID_TD_AIR_PUMP_POWER_RAISE_OVERRIDE_REQUEST = 0x803D # TD override request for air pump power level used to raise air trap level + MSG_ID_TD_AIR_PUMP_POWER_LOWER_OVERRIDE_REQUEST = 0x803E # TD override request for air pump power level used to lower air trap level + MSG_ID_TD_HARD_STOP_BLOOD_PUMP = 0x803F # TD hard stop blood pump + MSG_ID_TD_BARO_MFG_CRC_OVERRIDE = 0x8040 # TD barometric pressure sensor manufacturing CRC override. + MSG_ID_TD_BARO_PRESSURE_OVERRIDE = 0x8041 # TD barometric pressure sensor override. + MSG_ID_TD_TEMPERATURE_OVERRIDE = 0x8042 # TD temperature sensor override. + MSG_ID_TD_TEMPERATURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8043 # TD temperature sensor publish interval broadcast override. + MSG_ID_TD_EJECTOR_OPT_SENSOR_OVERRIDE_REQUEST = 0x8044 # TD ejector optical sensor override. + MSG_ID_TD_BLOOD_PRIME_VOLUME_OVERRIDE = 0x8045 # TD blood prime override. + MSG_ID_TD_BLOOD_PRIME_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8046 # TD blood prime publish interval broadcast override. + MSG_ID_TD_ENABLE_VENOUS_BUBBLE_ALARM = 0x8047 # TD enable venous bubble alarm. + MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST = 0x8048 # TD syringe pump operation request + MSG_ID_HD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0x8049 # TD syringe pump data publish interval override request - MSG_ID_TD_TESTER_LOGIN_REQUEST = 0x8000 - MSG_ID_TD_SOFTWARE_RESET_REQUEST = 0x8001 - MSG_ID_TD_SEND_TEST_CONFIGURATION = 0x8002 - MSG_ID_TD_BUBBLE_OVERRIDE_REQUEST = 0x8003 - MSG_ID_TD_VOLTAGE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8004 - MSG_ID_TD_VOLTAGE_OVERRIDE_REQUEST = 0x8005 - MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8006 - MSG_ID_TD_PRESSURE_OVERRIDE_REQUEST = 0x8007 - MSG_ID_TD_AIR_PUMP_SET_STATE_REQUEST = 0x8008 - MSG_ID_TD_AIR_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8009 - MSG_ID_TD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x800A - MSG_ID_TD_SWITCH_STATE_OVERRIDE_REQUEST = 0x800B - MSG_ID_TD_OFF_BUTTON_OVERRIDE_REQUEST = 0x800C - MSG_ID_TD_STOP_BUTTON_OVERRIDE_REQUEST = 0x800D - MSG_ID_TD_ALARM_LAMP_PATTERN_OVERRIDE_REQUEST = 0x800E - MSG_ID_TD_ALARM_AUDIO_LEVEL_OVERRIDE_REQUEST = 0x800F - MSG_ID_TD_ALARM_AUDIO_CURRENT_HG_OVERRIDE_REQUEST = 0x8010 - MSG_ID_TD_ALARM_AUDIO_CURRENT_LG_OVERRIDE_REQUEST = 0x8011 - MSG_ID_TD_BACKUP_ALARM_AUDIO_CURRENT_OVERRIDE_REQUEST = 0x8012 - MSG_ID_TD_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8013 - MSG_ID_TD_AIR_TRAP_LEVEL_OVERRIDE_REQUEST = 0x8014 - MSG_ID_TD_AIR_TRAP_LEVEL_RAW_OVERRIDE_REQUEST = 0x8015 - MSG_ID_TD_AIR_TRAP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8016 - MSG_ID_TD_2_WAY_VALVE_SET_STATE_REQUEST = 0x8017 - MSG_ID_TD_ROTARY_PINCH_VALVE_SET_POS_REQUEST = 0x8018 - MSG_ID_TD_ROTARY_PINCH_VALVE_STATUS_OVERRIDE_REQUEST = 0x8019 - MSG_ID_TD_ROTARY_PINCH_VALVE_POSITION_OVERRIDE_REQUEST = 0x801A - MSG_ID_TD_VALVES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x801B - MSG_ID_TD_ALARM_STATUS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x801C - MSG_ID_TD_ALARM_INFO_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x801D - MSG_ID_TD_ALARM_START_TIME_OVERRIDE_REQUEST = 0x801E - MSG_ID_TD_ALARM_CLEAR_ALL_ALARMS_REQUEST = 0x801F - MSG_ID_TD_WATCHDOG_OVERRIDE_REQUEST = 0x8020 - MSG_ID_TD_ALARM_STATE_OVERRIDE_REQUEST = 0x8021 - MSG_ID_TD_SAFETY_SHUTDOWN_OVERRIDE_REQUEST = 0x8022 - MSG_ID_TD_PINCH_VALVE_SET_POSITION_REQUEST = 0x8023 - MSG_ID_TD_PINCH_VALVE_HOME_REQUEST = 0x8024 - MSG_ID_TD_BLOOD_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8025 - MSG_ID_TD_BLOOD_PUMP_SET_FLOW_RATE_REQUEST = 0x8026 - MSG_ID_TD_BLOOD_PUMP_SET_SPEED_REQUEST = 0x8027 - MSG_ID_TD_BLOOD_PUMP_MEASURED_FLOW_RATE_OVERRIDE_REQUEST = 0x8028 - MSG_ID_TD_BLOOD_PUMP_MEASURED_MOTOR_SPEED_OVERRIDE_REQUEST = 0x8029 - MSG_ID_TD_BLOOD_PUMP_MEASURED_ROTOR_SPEED_OVERRIDE_REQUEST = 0x802A - MSG_ID_TD_BLOOD_PUMP_ROTOR_COUNT_OVERRIDE_REQUEST = 0x802B - MSG_ID_TD_TMP_PRESSURE_OVERRIDE_REQUEST = 0x802C - MSG_ID_TD_REQ_CURRENT_TREATMENT_PARAMETERS = 0x802D - MSG_ID_TD_RSP_CURRENT_TREATMENT_PARAMETERS = 0x802E - MSG_ID_TD_SET_TREATMENT_PARAMETER = 0x802F - MSG_ID_TD_OP_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8030 - MSG_ID_TD_OP_MODE_OVERRIDE_REQUEST = 0x8031 - MSG_ID_TD_EJECTOR_MOTOR_SET_SPEED_REQUEST = 0x8032 - MSG_ID_TD_EJECTOR_COMMAND = 0x8033 - MSG_ID_TD_EJECTOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8034 - MSG_ID_TD_SET_AIR_TRAP_CONTROL = 0x8035 - MSG_ID_TD_HOME_BLOOD_PUMP_REQUEST = 0x8036 - MSG_ID_TD_BLOOD_FLOW_STROKE_VOLUME_OVERRIDE_REQUEST = 0x8037 - MSG_ID_TD_BLOOD_FLOW_WEAR_A_TERM_OVERRIDE_REQUEST = 0x8038 - MSG_ID_TD_BLOOD_FLOW_WEAR_B_TERM_OVERRIDE_REQUEST = 0x8039 - MSG_ID_TD_SET_TEST_CONFIGURATION = 0x803A - MSG_ID_TD_GET_TEST_CONFIGURATION = 0x803B - MSG_ID_TD_RESET_ALL_TEST_CONFIGURATIONS = 0x803C - MSG_ID_TD_AIR_PUMP_POWER_RAISE_OVERRIDE_REQUEST = 0x803D - MSG_ID_TD_AIR_PUMP_POWER_LOWER_OVERRIDE_REQUEST = 0x803E - MSG_ID_TD_HARD_STOP_BLOOD_PUMP = 0x803F - MSG_ID_TD_BARO_MFG_CRC_OVERRIDE = 0x8040 - MSG_ID_TD_BARO_PRESSURE_OVERRIDE = 0x8041 - MSG_ID_TD_TEMPERATURE_OVERRIDE = 0x8042 - MSG_ID_TD_TEMPERATURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8043 - MSG_ID_TD_EJECTOR_OPT_SENSOR_OVERRIDE_REQUEST = 0x8044 - MSG_ID_TD_ENABLE_VENOUS_BUBBLE_ALARM = 0x8047 - MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST = 0x8048 - MSG_ID_TD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0x8049 - MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST = 0x8050 - MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST = 0x8051 - MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST = 0x8052 - MSG_ID_TD_SYRINGE_PUMP_POSITION_OVERRIDE_REQUEST = 0x8053 - MSG_ID_TD_SYRINGE_PUMP_VOLUME_OVERRIDE_REQUEST = 0x8054 - MSG_ID_TD_SYRINGE_PUMP_STATUS_OVERRIDE_REQUEST = 0x8055 - MSG_ID_TD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE_REQUEST = 0x8056 - MSG_ID_TD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE_REQUEST = 0x8057 - MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST = 0x8058 - MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST = 0x8059 - MSG_ID_TD_SYRINGE_PUMP_FORCE_SENSOR_CALIBRATION_REQUEST = 0x8060 - MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST = 0x8061 - MSG_ID_TD_ALARM_PROPERTIES_RESPONSE = 0x8062 - MSG_ID_BATTERY_REGISTERS_OVERRIDE_REQUEST = 0x8063 - MSG_ID_TD_BATTERY_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8064 + MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST = 0x8050 # TD syringe pump measured rate override request + MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST = 0x8051 # TD syringe pump measured force override request + MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST = 0x8052 # TD syringe pump measured home override request + MSG_ID_TD_SYRINGE_PUMP_POSITION_OVERRIDE_REQUEST = 0x8053 # TD syringe pump measured position override request + MSG_ID_TD_SYRINGE_PUMP_VOLUME_OVERRIDE_REQUEST = 0x8054 # TD syringe pump measured volume override request + MSG_ID_TD_SYRINGE_PUMP_STATUS_OVERRIDE_REQUEST = 0x8055 # TD syringe pump status override request + MSG_ID_TD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE_REQUEST = 0x8056 # TD syringe pump Encoder status override request + MSG_ID_TD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE_REQUEST = 0x8057 # TD syringe pump ADC and DAC status override request + MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST = 0x8058 # TD syringe pump ADC read counter override request + MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST = 0x8059 # TD heparin bolus target rate override request - MSG_ID_TD_BATTERY_I2C_STATUS_OVERRIDE_REQUEST = 0x8068 + MSG_ID_TD_SYRINGE_PUMP_FORCE_SENSOR_CALIBRATION_REQUEST = 0x8060 # TD set syringe pump force sensor DAC calibration request + MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST = 0x8061 # TD send alarm table properties request + MSG_ID_TD_ALARM_PROPERTIES_RESPONSE = 0x8062 # TD send alarm table properties response to Dialin + MSG_ID_TD_BATTERY_REGISTERS_OVERRIDE_REQUEST = 0x8063 # TD battery registers override. + MSG_ID_TD_BATTERY_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8064 # TD battery publish interval override. - MSG_ID_TD_TRAINING_TEST_OVERRIDE_REQUEST = 0x8999 + MSG_ID_TD_BATTERY_I2C_STATUS_OVERRIDE_REQUEST = 0x8068 # TD battery I2C status override. - MSG_ID_DD_TESTER_LOGIN_REQUEST = 0xA000 - MSG_ID_DD_SOFTWARE_RESET_REQUEST = 0xA001 - MSG_ID_DD_SEND_TEST_CONFIGURATION = 0xA002 - MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA003 - MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST = 0xA004 - MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST = 0xA005 - MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA006 - MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA007 - MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST = 0xA008 - MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST = 0xA009 - MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA00A - MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST = 0xA00B - MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST = 0xA00C - MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA00D - MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA00E - MSG_ID_DD_CONDUCTIVITY_SENSOR_READ_COUNTER_OVERRIDE_REQUEST = 0xA00F - MSG_ID_DD_CONDUCTIVITY_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST = 0xA010 - MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA011 - MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA012 - MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST = 0xA013 - MSG_ID_DD_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE_REQUEST = 0xA014 - MSG_ID_DD_CONCENTRATE_PUMP_PARKED_OVERRIDE_REQUEST = 0xA015 - MSG_ID_DD_CONCENTRATE_PUMP_PARK_FAULT_OVERRIDE_REQUEST = 0xA016 - MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST = 0xA017 - MSG_ID_DD_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA018 - MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST = 0xA019 - MSG_ID_DD_TEMPERATURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST = 0xA01A - MSG_ID_DD_TEMPERATURE_SENSOR_FILTERED_TEMP_OVERRIDE_REQUEST = 0xA01B - MSG_ID_DD_AVAILABLE_3 = 0xA01C - MSG_ID_DD_DIALYSATE_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA01D - MSG_ID_DD_DIALYSATE_PUMPS_TARGET_SPEED_OVERRIDE_REQUEST = 0xA01E - MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_SPEED_OVERRIDE_REQUEST = 0xA01F - MSG_ID_DD_DIALYSATE_PUMPS_TARGET_PRESSURE_OVERRIDE_REQUEST = 0xA020 - MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_CURRENT_OVERRIDE_REQUEST = 0xA021 - MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_DIRECTION_OVERRIDE_REQUEST = 0xA022 - MSG_ID_DD_HEATERS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA023 - MSG_ID_DD_HEATERS_DUTY_CYCLE_OVERRIDE_REQUEST = 0xA024 - MSG_ID_DD_LEVELS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA025 - MSG_ID_DD_LEVELS_STATUS_OVERRIDE_REQUEST = 0xA026 - MSD_ID_DD_TD_COMMUNICATION_STATUS_OVERRIDE_REQUEST = 0xA027 - MSG_ID_DD_OP_MODE_STATUS_OVERRIDE_REQUEST = 0xA028 - MSG_ID_DD_SET_OPERATION_MODE_OVERRIDE_REQUEST = 0xA029 - MSG_ID_DD_UF_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA02A - MSG_ID_DD_DIALYSATE_PUMPS_START_STOP_OVERRIDE_REQUEST = 0xA02B - MSG_ID_DD_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA02C - MSG_ID_DD_CONCENTRATE_PUMPS_START_STOP_OVERRIDE_REQUEST = 0xA02D - MSG_ID_DD_HEATERS_START_STOP_OVERRIDE_REQUEST = 0xA02E - MSG_ID_DD_VALVES_OPEN_CLOSE_STATE_OVERRIDE_REQUEST = 0xA02F - MSD_ID_DD_FP_COMMUNICATION_STATUS_OVERRIDE_REQUEST = 0xA030 - MSG_ID_DD_BAL_CHAMBER_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA031 - MSG_ID_DD_BAL_CHAMBER_SWITCH_FREQ_OVERRIDE_REQUEST = 0xA032 - MSG_ID_DD_DIAL_DELIVERY_IN_PROGRESS_OVERRIDE_REQUEST = 0xA033 - MSG_ID_DD_DIAL_DELIVERY_GOOD_TO_DELIVER_OVERRIDE_REQUEST = 0xA034 - MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST = 0xA035 - MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST = 0xA036 - MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST = 0xA037 - MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST = 0xA038 - MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA039 - MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA03A - MSG_ID_DD_GEND_EXEC_STATE_OVERRIDE_REQUEST = 0xA03B - MSG_ID_DD_HEATERS_PWM_PERIOD_OVERRIDE_REQUEST = 0xA03C - MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA03D - MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA03E - MSG_ID_DD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE = 0xA03F - MSG_ID_DD_SPENT_CHAMB_FILL_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA040 - MSG_ID_DD_AVAILABLE_TO_USE_4 = 0xA041 - MSG_ID_DD_SAFETY_SHUTDOWN_OVERRIDE_REQUEST = 0xA042 - MSG_ID_DD_SET_TEST_CONFIGURATION = 0xA043 - MSG_ID_DD_GET_TEST_CONFIGURATION = 0xA044 - MSG_ID_DD_RESET_ALL_TEST_CONFIGURATIONS = 0xA045 - MSG_ID_DD_BLOOD_LEAK_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA047 - MSG_ID_DD_BLOOD_LEAK_STATUS_OVERRIDE_REQUEST = 0xA048 - MSG_ID_DD_BLOOD_LEAK_SET_TO_EMBEDDED_MODE_REQUEST = 0xA049 - MSG_ID_DD_BLOOD_LEAK_SET_EMBEDDED_MODE_CMD_REQUEST = 0xA04A - MSG_ID_DD_BLOOD_LEAK_EMBEDDED_MODE_INFO_OVERRIDE_REQUEST = 0xA04B - MSG_ID_DD_BLOOD_LEAK_INTENSITY_MOVING_AVERAGE_OVERRIDE_REQUEST = 0xA04C - MSG_ID_DD_BLOOD_LEAK_ZEROING_INTERVAL_IN_MS_OVERRIDE_REQUEST = 0xA04D - MSG_ID_DD_BLOOD_LEAK_ZERO_REQUEST = 0xA04E - MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA04F - MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA050 - MSG_ID_DD_VOLTAGE_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA051 - MSG_ID_DD_MONITORED_VOLTAGE_OVERRIDE_REQUEST = 0xA052 - MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA053 - MSG_ID_DD_RINSE_PUMP_PWM_PERCENT_OVERRIDE_REQUEST = 0xA054 - MSG_ID_DD_RINSE_PUMP_TURN_ON_OFF_REQUEST = 0xA055 - MSG_ID_DD_DRY_BICART_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA056 - MSG_ID_DD_DRY_BICART_FILL_CYCLE_MAX_OVERRIDE_REQUEST = 0xA057 - MSG_ID_DD_DRY_BICART_FILL_REQUEST_OVERRIDE_REQUEST = 0xA058 - MSG_ID_DD_BICARB_CHAMBER_FILL_REQUEST_OVERRIDE_REQUEST = 0xA059 - MSG_ID_DD_BICART_DRAIN_REQUEST_OVERRIDE_REQUEST = 0xA05A - MSG_ID_DD_BICART_CARTRIDGE_SELECT_OVERRIDE_REQUEST = 0xA05B - MSG_ID_DD_SET_CONDUCTIVITY_MODEL_REQUEST = 0xA05C - MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST = 0xA05D - MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_REQUEST = 0xA05E - MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_RESPONSE = 0xA05F - MSG_ID_DD_BICARB_MIX_VOL_CONTROL_KP_GAIN_COEFF_OVERRIDE_REQUEST = 0xA060 - MSG_ID_DD_BICARB_MIX_VOL_CONTROL_KI_GAIN_COEFF_OVERRIDE_REQUEST = 0xA061 - MSG_ID_DD_ACID_MIX_VOL_CONTROL_KP_GAIN_COEFF_OVERRIDE_REQUEST = 0xA062 - MSG_ID_DD_ACID_MIX_VOL_CONTROL_KI_GAIN_COEFF_OVERRIDE_REQUEST = 0xA063 - MSG_ID_DD_ACID_MIX_VOL_OVERRIDE_REQUEST = 0xA064 - MSG_ID_DD_BICARB_MIX_VOL_OVERRIDE_REQUEST = 0xA065 - MSG_ID_DD_BICARB_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA066 - MSG_ID_DD_BICARB_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA067 - MSG_ID_DD_DIALYSATE_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA068 - MSG_ID_DD_DIALYSATE_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA069 - MSG_ID_DD_BICART_UPPER_PRESSURE_OVERRIDE_REQUEST = 0xA06A - MSG_ID_DD_BICART_LOWER_PRESSURE_OVERRIDE_REQUEST = 0xA06B - MSG_ID_DD_FLOATER_LEVEL_OVERRIDE_REQUEST = 0xA06C - MSG_ID_DD_SUBSTITUTION_PUMP_START_STOP_OVERRIDE_REQUEST = 0xA06D - MSG_ID_DD_SUBSTITUTION_PUMP_BROADCAST_OVERRIDE_REQUEST = 0xA06E - MSG_ID_DD_SUBSTITUTION_PUMP_TARGET_SPEED_OVERRIDE_REQUEST = 0xA06F - MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_REQUEST = 0xA070 - MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_RESPONSE = 0xA071 - MSG_ID_DD_MIXING_CONTROL_DATA = 0xA072 - MSG_ID_DD_MIXING_CONTROL_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA073 - MSG_ID_DD_BICART_DEPRESSURISE_REQUEST_OVERRIDE_REQUEST = 0xA074 + MSG_ID_DD_TESTER_LOGIN_REQUEST = 0xA000 # DD tester log-in + MSG_ID_DD_SOFTWARE_RESET_REQUEST = 0xA001 # DD reset request + MSG_ID_DD_SEND_TEST_CONFIGURATION = 0xA002 # DD send test configuration to Dialin + MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA003 # DD valve publish interval override request + MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST = 0xA004 # DD valve state override request + MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST = 0xA005 # DD valve sensed state override request + MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA006 # DD pressure sensor override request + MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA007 # DD pressure sensor temperature override request + MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST = 0xA008 # DD pressure sensor read counter override request + MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST = 0xA009 # DD pressure sensor error counter override request + MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA00A # DD pressure sensor publish interval override request + MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST = 0xA00B # DD pressure sensor filter readings override request + MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST = 0xA00C # DD pressure sensor filter temperature override request + MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA00D # DD conductivity sensor reading override request + MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA00E # DD conductivity sensor temperature override request + MSG_ID_DD_CONDUCTIVITY_SENSOR_CONDUCTIVITY_READ_COUNTER_OVERRIDE_REQUEST = 0xA00F # DD conductivity sensor read counter request + MSG_ID_DD_CONDUCTIVITY_SENSOR_CONDUCTIVITY_ERROR_COUNTER_OVERRIDE_REQUEST = 0xA010 # DD conductivity sensor error counter request + MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA011 # DD conductivity sensor publish interval override request + MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA012 # DD concentrate pump publish interval override request + MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST = 0xA013 # DD concentrate pump target speed override request + MSG_ID_DD_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE_REQUEST = 0xA014 # DD concentrate pump measured speed override request + MSG_ID_DD_CONCENTRATE_PUMP_PARKED_OVERRIDE_REQUEST = 0xA015 # DD concentrate pump parked override request + MSG_ID_DD_CONCENTRATE_PUMP_PARK_FAULT_OVERRIDE_REQUEST = 0xA016 # DD concentrate pump park fault override request + MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST = 0xA017 # DD concentrate pump park request override request + MSG_ID_DD_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA018 # DD temperature sensor publish interval override request + MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST = 0xA019 # DD temperature sensor measured temperature override request + MSG_ID_DD_TEMPERATURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST = 0xA01A # DD temperature sensor read counter override request + MSG_ID_DD_TEMPERATURE_SENSOR_FILTERED_TEMP_OVERRIDE_REQUEST = 0xA01B # DD temperature sensor filtered temperature override request. + MSG_ID_DD_SET_OPERATION_SUB_MODE_OVERRIDE_REQUEST = 0xA01C # DD set new operation sub mode override request + MSG_ID_DD_DIALYSATE_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA01D # DD dialysate pumps data publish interval override request + MSG_ID_DD_DIALYSATE_PUMPS_TARGET_SPEED_OVERRIDE_REQUEST = 0xA01E # DD dialysate pumps target speed override request + MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_SPEED_OVERRIDE_REQUEST = 0xA01F # DD dialysate pumps measured speed override request + MSG_ID_DD_DIALYSATE_PUMPS_TARGET_PRESSURE_OVERRIDE_REQUEST = 0xA020 # DD dialysate pumps target pressure override request + MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_CURRENT_OVERRIDE_REQUEST = 0xA021 # DD dialysate pumps measured current override request + MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_DIRECTION_OVERRIDE_REQUEST = 0xA022 # DD dialysate pumps measured direction override request + MSG_ID_DD_HEATERS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA023 # DD heaters data publish interval override request + MSG_ID_DD_HEATERS_DUTY_CYCLE_OVERRIDE_REQUEST = 0xA024 # DD heaters dutycycle override request + MSG_ID_DD_LEVELS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA025 # DD levels data publish interval override request + MSG_ID_DD_LEVELS_STATUS_OVERRIDE_REQUEST = 0xA026 # DD levels status override request + MSD_ID_DD_TD_COMMUNICATION_STATUS_OVERRIDE_REQUEST = 0xA027 # DD TD CAN Communication status override request + MSG_ID_DD_OP_MODE_STATUS_OVERRIDE_REQUEST = 0xA028 # DD operation mode status override request + MSG_ID_DD_SET_OPERATION_MODE_OVERRIDE_REQUEST = 0xA029 # DD set new operation mode override request + MSG_ID_DD_UF_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA02A # DD ultrafiltration data publish interval override request + MSG_ID_DD_DIALYSATE_PUMPS_START_STOP_OVERRIDE_REQUEST = 0xA02B # DD dialysate pumps start/stop override request + MSG_ID_DD_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA02C # DD generate dialysate mode data publish interval override request + MSG_ID_DD_CONCENTRATE_PUMPS_START_STOP_OVERRIDE_REQUEST = 0xA02D # DD Concentrate pumps start/stop override request + MSG_ID_DD_HEATERS_START_STOP_OVERRIDE_REQUEST = 0xA02E # DD Heaters start override request + MSG_ID_DD_VALVES_OPEN_CLOSE_STATE_OVERRIDE_REQUEST = 0xA02F # DD Valves open/close state override request + MSD_ID_DD_FP_COMMUNICATION_STATUS_OVERRIDE_REQUEST = 0xA030 # DD FP CAN Communication status override request + MSG_ID_DD_BAL_CHAMBER_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA031 # DD balance chamber data publish interval override request + MSG_ID_DD_BAL_CHAMBER_SWITCH_FREQ_OVERRIDE_REQUEST = 0xA032 # DD balance chamber switching frequency override request + MSG_ID_DD_DIAL_DELIVERY_IN_PROGRESS_OVERRIDE_REQUEST = 0xA033 # DD dialysate delivery in progress override request + MSG_ID_DD_DIAL_DELIVERY_GOOD_TO_DELIVER_OVERRIDE_REQUEST = 0xA034 # DD dialysate delivery good to deliver override request + MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST = 0xA035 # DD heaters target temperature override request + MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST = 0xA036 # DD balancing chamber valve states override request + MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST = 0xA037 # DD balancing chamber switch only start/stop override request + MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST = 0xA038 # DD Hydraulic chamber target temperature override request + MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA039 # DD acid dosing volume override request + MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST = 0xA03A # DD bicarb dosing volume override request + MSG_ID_DD_GEND_EXEC_STATE_OVERRIDE_REQUEST = 0xA03B # DD GenD execution state override request + MSG_ID_DD_HEATERS_PWM_PERIOD_OVERIDE_REQUEST = 0xA03C # DD heaters PWM period override request + MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA03D # DD Pre generate dialysate mode data publish interval override request + MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA03E # DD Post generate dialysate mode data publish interval override request + MSG_ID_DD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE = 0xA03F # DD send blood embedded mode response + MSG_ID_DD_SPENT_CHAMB_FILL_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA040 # DD stop pre-gen dialysate mode override request + MSG_ID_DD_AVAILABLE_TO_USE_4 = 0xA041 # DD stop gen dialysate mode override request + MSG_ID_DD_SAFETY_SHUTDOWN_OVERRIDE_REQUEST = 0xA042 # DD set/reset safety shutdown override request + MSG_ID_DD_SET_TEST_CONFIGURATION = 0xA043 # DD set test configuration + MSG_ID_DD_GET_TEST_CONFIGURATION = 0xA044 # DD get test configuration + MSG_ID_DD_RESET_ALL_TEST_CONFIGURATIONS = 0xA045 # DD reset all the configurations + MSG_ID_AVAILABLE_1 = 0xA046 # Msg ID not used - available for use. + MSG_ID_DD_BLOOD_LEAK_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA047 # DD blood leak data publish interval override request + MSG_ID_DD_BLOOD_LEAK_STATUS_OVERRIDE_REQUEST = 0xA048 # DD blood leak status override request + MSG_ID_DD_BLOOD_LEAK_SET_TO_EMBEDDED_MODE_REQUEST = 0xA049 # DD blood leak set to embedded mode request + MSG_ID_DD_BLOOD_LEAK_SET_EMBEDDED_MODE_CMD_REQUEST = 0xA04A # DD blood leak set embedded more command request + MSG_ID_DD_BLOOD_LEAK_EMBEDDED_MODE_INFO_OVERRIDE_REQUEST = 0xA04B # DD blood leak embedded mode information override request + MSG_ID_DD_BLOOD_LEAK_INTENSITY_MOVING_AVERAGE_OVERRIDE_REQUEST = 0xA04C # DD blood leak intensity moving average override request + MSG_ID_DD_BLOOD_LEAK_ZEROING_INTERVAL_IN_MS_OVERRIDE_REQUEST = 0xA04D # DD blood leak zeroing interval in milliseconds override request + MSG_ID_DD_BLOOD_LEAK_ZERO_REQUEST = 0xA04E # DD blood leak zero request + MSG_ID_DD_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA04F # DD filtered conductivity sensor reading override request + MSG_ID_DD_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA050 # DD filtered conductivity sensor temperature override request + MSG_ID_DD_VOLTAGE_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA051 # DD monitored voltage data publish interval override request + MSG_ID_DD_MONITORED_VOLTAGE_OVERRIDE_REQUEST = 0xA052 # DD monitored voltage override request + MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA053 # DD rinse pump broadcast data override request + MSG_ID_DD_RINSE_PUMP_PWM_PERCENT_OVERRIDE_REQUEST = 0xA054 # DD rinse pump PWM percent override request + MSG_ID_DD_RINSE_PUMP_TURN_ON_OFF_REQUEST = 0xA055 # DD rinse pump turn on/off request + MSG_ID_DD_DRY_BICART_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA056 # DD dry bicart broadcast data overrride request + MSG_ID_DD_DRY_BICART_FILL_CYCLE_MAX_OVERRIDE_REQUEST = 0xA057 # DD dry bicart fill cycle max count overrride request + MSG_ID_DD_DRY_BICART_FILL_REQUEST_OVERRIDE_REQUEST = 0xA058 # DD dry bicart fill request overrride request + MSG_ID_DD_BICARB_CHAMBER_FILL_REQUEST_OVERRIDE_REQUEST = 0xA059 # DD bicarb chamber fill request overrride request + MSG_ID_DD_BICART_DRAIN_REQUEST_OVERRIDE_REQUEST = 0xA05A # DD bicarb drain request overrride request + MSG_ID_DD_BICART_CARTRIDGE_SELECT_OVERRIDE_REQUEST = 0xA05B # DD bicarb cartridge select(small-0, large-1) overrride request + MSG_ID_DD_SET_CONDUCTIVITY_MODEL_REQUEST = 0xA05C # DD set conductivity model to conductivity sensors ( also applies to FP conductivity sensors ) + MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST = 0xA05D # DD conductivity sensor resistance override request + MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_REQUEST = 0xA05E # DD conductivity sensor version request + MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_RESPONSE = 0xA05F # DD conductivity sensor version response + MSG_ID_DD_BICARB_MIX_VOL_KP_GAIN_COEFF_OVERRIDE_REQUEST = 0xA060 # DD bicarb mix volume control kp gain + MSG_ID_DD_BICARB_MIX_VOL_KI_GAIN_COEFF_OVERRIDE_REQUEST = 0xA061 # DD bicarb mix volume control ki gain + MSG_ID_DD_ACID_MIX_VOL_KP_GAIN_COEFF_OVERRIDE_REQUEST = 0xA062 # DD acid mix volume control kp gain + MSG_ID_DD_ACID_MIX_VOL_KI_GAIN_COEFF_OVERRIDE_REQUEST = 0xA063 # DD acid mix volume control kp gain + MSG_ID_DD_ACID_MIX_VOL_OVERRIDE_REQUEST = 0xA064 # DD acid mix volume override + MSG_ID_DD_BICARB_MIX_VOL_OVERRIDE_REQUEST = 0xA065 # DD bicarb mix volume override + MSG_ID_DD_BICARB_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA066 # DD bicarb target conductivity override + MSG_ID_DD_BICARB_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA067 # DD bicarb delta target conductivity override + MSG_ID_DD_DIALYSATE_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA068 # DD Dialysate target conductivity override + MSG_ID_DD_DIALYSATE_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST = 0xA069 # DD Dialysate delta target conductivity override + MSG_ID_DD_BICART_UPPER_PRESSURE_OVERRIDE_REQUEST = 0xA06A # DD bicarb cartridge upper threshold pressure override + MSG_ID_DD_BICART_LOWER_PRESSURE_OVERRIDE_REQUEST = 0xA06B # DD bicarb cartridge lower threshold pressure override + MSG_ID_DD_FLOATER_LEVEL_OVERRIDE_REQUEST = 0xA06C # DD override request for D6 floater level override + MSG_ID_DD_SUBSTITUTION_PUMP_START_STOP_OVERRIDE_REQUEST = 0xA06D # DD substitution pump start stop override request + MSG_ID_DD_SUBSTITUTION_PUMP_BROADCAST_INTERVAL_OVERRIDE_REQUEST = 0xA06E # DD substitution pump broadcast override request + MSG_ID_DD_SUBSTITUTION_PUMP_TARGET_RATE_OVERRIDE_REQUEST = 0xA06F # DD substitution pump target speed override request. + MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_REQUEST = 0xA070 # DD conductivity sensor cal request + MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_RESPONSE = 0xA071 # DD conductivity sensor cal response + MSG_ID_DD_MIXING_CONTROL_DATA = 0xA072 # DD mixing control publish data + MSG_ID_DD_MIXING_CONTROL_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA073 # DD DD mixing control broadcast data overrride request + MSG_ID_DD_BICART_DEPRESSURISE_REQUEST_OVERRIDE_REQUEST = 0xA074 # DD dry bicart depressurise overrride request + MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST = 0xA075 # DD Treatment parameters override request - # Placeholder messages - MSG_ID_DD_ALARM_STATE_OVERRIDE_REQUEST = 0xAF03 - MSG_ID_DD_STOP_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST = 0xAF04 + MSG_ID_FP_TESTER_LOGIN_REQUEST = 0xB000 # FP tester log-in + MSG_ID_FP_SOFTWARE_RESET_REQUEST = 0xB001 # FP reset request + MSG_ID_FP_SEND_TEST_CONFIGURATION = 0xB002 # FP send test configuration to Dialin + MSG_ID_FP_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB003 # FP valve data publish interval override request + MSG_ID_FP_VALVE_CMD_STATE_OVERRIDE_REQUEST = 0xB004 # FP valve commanded state override request + MSG_ID_FP_VALVE_SENSED_STATE_OVERRIDE_REQUEST = 0xB005 # FP valve sensed state override request + MSG_ID_FP_FLUID_PUMP_SET_PWM_REQUEST = 0xB006 # FP set boost pump PWM request + MSG_ID_FP_FLUID_PUMP_READ_PWM_OVERRIDE_REQUEST = 0xB007 # FP override request for boost pump read PWM + MSG_ID_FP_FLUID_PUMP_SPEED_OVERRIDE_REQUEST = 0xB008 # FP override request for boost pump speed (RPM) + MSG_ID_FP_RO_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB009 # FP boost pumps data publish interval override request + MSG_ID_FP_PRESSURE_OVERRIDE_REQUEST = 0xB00A # FP override request for pressure (mmHg) + MSG_ID_FP_PRESSURE_TEMP_OVERRIDE_REQUEST = 0xB00B # FP override request for pressure sensor temperature (deg C) + MSG_ID_FP_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST = 0xB00C # FP pressure sensor filter readings override request + MSG_ID_FP_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST = 0xB00D # FP pressure sensor filter temperature override request + MSG_ID_FP_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB00E # FP pressures data publish interval override request + MSG_ID_FP_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB00F # FP level data publish interval override request + MSG_ID_FP_FLOATER_LEVEL_OVERRIDE_REQUEST = 0xB010 # FP override request for P25 floater level sensor. + MSG_ID_FP_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB011 # FP flows data publish interval override request + MSG_ID_FP_FLOW_RATE_OVERRIDE_REQUEST = 0xB012 # FP override request for flow rate (mL/min) + MSG_ID_FP_FLOW_TEMP_OVERRIDE_REQUEST = 0xB013 # FP override request for flow temperature (deg C) + MSG_ID_FP_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB014 # FP conductivity data publish interval override request + MSG_ID_FP_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST = 0xB015 # FP conductivity override request + MSG_ID_FP_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xB016 # FP conductivity sensor temperature override request + MSG_ID_FP_CONDUCTIVITY_SENSOR_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST = 0xB017 # FP conductivity sensor read count override request + MSG_ID_FP_CONDUCTIVITY_SENSOR_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST = 0xB018 # FP conductivity sensor error count override request + MSG_ID_FP_TEMPERATURE_OVERRIDE_REQUEST = 0xB019 # FP temperature override request + MSG_ID_FP_FILTERED_FLOW_RATE_OVERRIDE_REQUEST = 0xB01A # FP override request for filtered flow rate (mL/min) + MSG_ID_FP_FILTERED_FLOW_TEMP_OVERRIDE_REQUEST = 0xB01B # FP override request for filtered flow temperature (deg C) + MSG_ID_FP_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB01C # FP pre generation data publish interval override request + MSG_ID_FP_SET_OPERATION_MODE_REQUEST = 0xB01D # FP set operation mode request + MSG_ID_FP_OPERATION_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB01E # FP operation mode publish interval override + MSG_ID_FP_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB01F # FP temperature sensor publish interval override + MSG_ID_FP_RO_PUMP_TARGET_PRESSURE_OVERRIDE_REQUEST = 0xB020 # FP RO Pump Target Pressure override request + MSG_ID_FP_RO_PUMP_TARGET_FLOW_OVERRIDE_REQUEST = 0xB021 # FP RO Pump Target Flow override request + MSG_ID_FP_RO_PUMP_TARGET_PWM_OVERRIDE_REQUEST = 0xB022 # FP RO Pump Target PWM override request + MSG_ID_FP_BOOST_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB023 # FP Boost Pump Target data publish interval override request + MSG_ID_FP_BOOST_PUMP_TARGET_PRESSURE_OVERRIDE_REQUEST = 0xB024 # FP Boost Pump Target Pressure override request + MSG_ID_FP_BOOST_PUMP_TARGET_FLOW_OVERRIDE_REQUEST = 0xB025 # FP Boost Pump Target Flow override request + MSG_ID_FP_BOOST_PUMP_TARGET_PWM_OVERRIDE_REQUEST = 0xB026 # FP RO Pump Target PWM override request + MSG_ID_FP_BOOST_PUMP_STOP_REQUEST = 0xB027 # FP Boost Pump Stop request + MSG_ID_FP_RO_PUMP_STOP_REQUEST = 0xB028 # FP RO Pump Stop request + MSG_ID_FP_SAFETY_SHUTDOWN_OVERRIDE_REQUEST = 0xB029 # FP Safety Shutdown override request + MSG_ID_FP_PERMEATE_TANK_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB02A # FP Permeate Tank data publish interval override request + MSG_ID_FP_ALARM_STATE_OVERRIDE_REQUEST = 0xB02B # FP Alarm State override request + MSG_ID_FP_ALARM_CLEAR_ALL_ALARMS_REQUEST = 0xB02C # FP alarm clear request + MSG_ID_FP_SET_TEST_CONFIGURATION = 0xB02D # FP set test configuration + MSG_ID_FP_GET_TEST_CONFIGURATION = 0xB02E # FP get test configuration + MSG_ID_FP_RESET_ALL_TEST_CONFIGURATIONS = 0xB02F # FP reset all the configurations + MSG_ID_FP_INLET_PRES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB030 # FP inlet pressure check data publish interval override request + MSG_ID_FP_INLET_PRES_CHECK_TIME_OVERRIDE_REQUEST = 0xB031 # FP inlet pressure check time override request + MSG_ID_FP_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xB032 # FP filtered conductivity sensor reading override request + MSG_ID_FP_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xB033 # FP filtered conductivity sensor temperature override request + MSG_ID_FP_SET_START_STOP_OVERRIDE_REQUEST = 0xB034 # FP set start stop signal for generate permeate + MSG_ID_FP_RO_REJECTION_RATIO_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB035 # FP RO rejection ratio data publish interval override request + MSG_ID_FP_RO_FILTERED_REJECTION_RATIO_OVERRIDE_REQUEST = 0xB036 # FP override request for filtered all time RO rejection value + MSG_ID_FP_RO_GET_CALCULATED_DUTY_CYCLE_REQUEST = 0xB037 # FP Request for calculated RO duty cycle + MSG_ID_FP_RO_CALCULATED_DUTY_CYCLE_RESPONSE = 0xB038 # DD send calculated duty cycle to Dialin + MSG_ID_FP_FLUSH_FILTER_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB039 # FP filter flush data publish interval override request + MSG_ID_FP_FLUSH_FILTER_TIMER_OVERRIDE_REQUEST = 0xB03A # FP filter flush time override request + MSG_ID_FP_FLUSH_PERMEATE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB03B # FP permeate flush data publish interval override request + MSG_ID_FP_FLUSH_PERMEATE_TIMER_OVERRIDE_REQUEST = 0xB03C # FP permeate flush timer override request + MSG_ID_FP_FLUSH_PERMEATE_ALARM_TIMER_OVERRIDE_REQUEST = 0xB03D # FP permeate alarm timer override request + MSG_ID_FP_FLUSH_CONCENTRATE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB03E # FP flush concentrate data publish interval override request + MSG_ID_FP_FLUSH_CONCENTRATE_TIMER_OVERRIDE_REQUEST = 0xB03F # FP flush concentrate timer override request + MSG_ID_FP_DEF_FLUSH_FILTER_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB040 # FP defeatured filter flush data publish interval override request + MSG_ID_FP_DEF_FLUSH_FILTER_TIMER_OVERRIDE_REQUEST = 0xB041 # FP defeatured filter flush time override request + MSG_ID_FP_DEF_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB042 # FP defeatured pre generation data publish interval override request + MSG_ID_FP_DEF_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB043 # FP defeatured generation data publish interval override request + MSG_ID_FP_DEF_STATUS_REQUEST = 0xB044 # FP request for defatured status from Dialin + MSG_ID_FP_DEF_STATUS_RESPONSE = 0xB045 # FP response for defatured status to Dialin + MSG_ID_FP_SET_OPERATION_SUB_MODE_REQUEST = 0xB046 # FP set operation sub mode request + MSG_ID_FP_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST = 0xB047 # FP conductivity sensor resistance override request + MSG_ID_FP_SET_RECOVERY_VALVES_REQUEST = 0xB048 # FP request to set recovery valve setting + MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_REQUEST = 0xB049 # FP request for boost pump installation status from Dialin + MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_RESPONSE = 0xB04A # FP response for boost pump installation status to Dialin + MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_REQUEST = 0xB04B # FP conductivity sensor version request + MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_RESPONSE = 0xB04C # FP conductivity sensor version response + MSG_ID_FP_CONDUCTIVITY_SENSOR_CAL_REQUEST = 0xB04D # FP conductivity sensor cal request + MSG_ID_FP_CONDUCTIVITY_SENSOR_CAL_RESPONSE = 0xB04E # FP conductivity sensor cal response - MSG_ID_FP_TESTER_LOGIN_REQUEST = 0xB000 - MSG_ID_FP_SOFTWARE_RESET_REQUEST = 0xB001 - MSG_ID_FP_SEND_TEST_CONFIGURATION = 0xB002 - MSG_ID_FP_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB003 - MSG_ID_FP_VALVE_CMD_STATE_OVERRIDE_REQUEST = 0xB004 - MSG_ID_FP_VALVE_SENSED_STATE_OVERRIDE_REQUEST = 0xB005 - MSG_ID_FP_FLUID_PUMP_SET_PWM_REQUEST = 0xB006 - MSG_ID_FP_FLUID_PUMP_READ_PWM_OVERRIDE_REQUEST = 0xB007 - MSG_ID_FP_FLUID_PUMP_SPEED_OVERRIDE_REQUEST = 0xB008 - MSG_ID_FP_RO_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB009 - MSG_ID_FP_PRESSURE_OVERRIDE_REQUEST = 0xB00A - MSG_ID_FP_PRESSURE_TEMP_OVERRIDE_REQUEST = 0xB00B - MSG_ID_FP_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST = 0xB00C - MSG_ID_FP_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST = 0xB00D - MSG_ID_FP_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB00E - MSG_ID_FP_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB00F - MSG_ID_FP_LEVEL_OVERRIDE_REQUEST = 0xB010 - MSG_ID_FP_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB011 - MSG_ID_FP_FLOW_RATE_OVERRIDE_REQUEST = 0xB012 - MSG_ID_FP_FLOW_TEMP_OVERRIDE_REQUEST = 0xB013 - MSG_ID_FP_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB014 - MSG_ID_FP_CONDUCTIVITY_OVERRIDE_REQUEST = 0xB015 - MSG_ID_FP_CONDUCTIVITY_TEMP_OVERRIDE_REQUEST = 0xB016 - MSG_ID_FP_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST = 0xB017 - MSG_ID_FP_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST = 0xB018 - MSG_ID_FP_TEMPERATURE_OVERRIDE_REQUEST = 0xB019 - MSG_ID_FP_FILTERED_FLOW_RATE_OVERRIDE_REQUEST = 0xB01A - MSG_ID_FP_FILTERED_FLOW_TEMP_OVERRIDE_REQUEST = 0xB01B - MSG_ID_FP_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB01C - MSG_ID_FP_SET_OP_MODE_REQUEST = 0xB01D - MSG_ID_FP_OPERATION_MODE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB01E - MSG_ID_FP_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB01F - MSG_ID_FP_RO_PUMP_TARGET_PRESSURE_OVERRIDE_REQUEST = 0xB020 - MSG_ID_FP_RO_PUMP_TARGET_FLOW_OVERRIDE_REQUEST = 0xB021 - MSG_ID_FP_RO_PUMP_TARGET_PWM_OVERRIDE_REQUEST = 0xB022 - MSG_ID_FP_BOOST_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB023 - MSG_ID_FP_BOOST_PUMP_TARGET_PRESSURE_OVERRIDE_REQUEST = 0xB024 - MSG_ID_FP_BOOST_PUMP_TARGET_FLOW_OVERRIDE_REQUEST = 0xB025 - MSG_ID_FP_BOOST_PUMP_TARGET_PWM_OVERRIDE_REQUEST = 0xB026 - MSG_ID_FP_BOOST_PUMP_STOP_REQUEST = 0xB027 - MSG_ID_FP_RO_PUMP_STOP_REQUEST = 0xB028 - MSG_ID_FP_SAFETY_SHUTDOWN_OVERRIDE_REQUEST = 0xB029 - MSG_ID_FP_PERMEATE_TANK_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB02A - MSG_ID_FP_ALARM_STATE_OVERRIDE_REQUEST = 0xB02B - MSG_ID_FP_ALARM_CLEAR_ALL_ALARMS_REQUEST = 0xB02C - MSG_ID_FP_SET_TEST_CONFIGURATION = 0xB02D - MSG_ID_FP_GET_TEST_CONFIGURATION = 0xB02E - MSG_ID_FP_RESET_ALL_TEST_CONFIGURATIONS = 0xB02F - MSG_ID_FP_INLET_PRES_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB030 - MSG_ID_FP_INLET_PRES_CHECK_TIME_OVERRIDE_REQUEST = 0xB031 - MSG_ID_FP_FILTERED_COND_SENSOR_READINGS_OVERRIDE_REQUEST = 0xB032 - MSG_ID_FP_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xB033 - MSG_ID_FP_SET_START_STOP_OVERRIDE_REQUEST = 0xB034 - MSG_ID_FP_RO_REJECTION_RATIO_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB035 - MSG_ID_FP_RO_FILTERED_REJECTION_RATIO_OVERRIDE_REQUEST = 0xB036 - MSG_ID_FP_RO_GET_CALCULATED_DUTY_CYCLE_REQUEST = 0xB037 - MSG_ID_FP_RO_CALCULATED_DUTY_CYCLE_RESPONSE = 0xB038 - MSG_ID_FP_FLUSH_FILTER_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB039 - MSG_ID_FP_FLUSH_FILTER_TIMER_OVERRIDE_REQUEST = 0xB03A - MSG_ID_FP_FLUSH_PERMEATE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB03B - MSG_ID_FP_FLUSH_PERMEATE_TIMER_OVERRIDE_REQUEST = 0xB03C - MSG_ID_FP_FLUSH_PERMEATE_ALARM_TIMER_OVERRIDE_REQUEST = 0xB03D - MSG_ID_FP_FLUSH_CONCENTRATE_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB03E - MSG_ID_FP_FLUSH_CONCENTRATE_TIMER_OVERRIDE_REQUEST = 0xB03F - MSG_ID_FP_DEF_FLUSH_FILTER_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB040 - MSG_ID_FP_DEF_FLUSH_FILTER_TIMER_OVERRIDE_REQUEST = 0xB041 - MSG_ID_FP_DEF_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB042 - MSG_ID_FP_DEF_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xB043 - MSG_ID_FP_DEF_STATUS_REQUEST = 0xB044 - MSG_ID_FP_DEF_STATUS_RESPONSE = 0xB045 - MSG_ID_FP_SET_OPERATION_SUB_MODE_REQUEST = 0xB046 - MSG_ID_FP_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST = 0xB047 - MSG_ID_FP_SET_RECOVERY_VALVES_REQUEST = 0xB048 - MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_REQUEST = 0xB049 - MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_RESPONSE = 0xB04A - MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_REQUEST = 0xB04B - MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_RESPONSE = 0xB04C - MSG_ID_FP_CONDUCTIVITY_SENSOR_CAL_REQUEST = 0xB04D - MSG_ID_FP_CONDUCTIVITY_SENSOR_CAL_RESPONSE = 0xB04E + MSG_ID_TD_DEBUG_EVENT = 0xFFF1 # TD debug event text to be logged in event log + MSG_ID_DD_DEBUG_EVENT = 0xFFF2 # DD debug event text to be logged in event log + MSG_ID_FP_DEBUG_EVENT = 0xFFF3 # FP debug event text to be logged in event log - MSG_ID_TD_DEBUG_EVENT = 0xFFF1 - MSG_ID_DD_DEBUG_EVENT = 0xFFF2 - MSG_ID_FP_DEBUG_EVENT = 0xFFF3 + MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK = 0xFFFF # Acknowledgment of message that requires acknowledgment + END_OF_MSG_IDS = 0x10000 # End of system message IDs - - MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK = 0xFFFF -MsgIds._str_list = {} +MsgIds._str_list = { } Index: leahi_dialin/dd/dialysate_delivery.py =================================================================== diff -u -reca9e15bc984af2b7f59eb38f3836ca354ee1251 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/dd/dialysate_delivery.py (.../dialysate_delivery.py) (revision eca9e15bc984af2b7f59eb38f3836ca354ee1251) +++ leahi_dialin/dd/dialysate_delivery.py (.../dialysate_delivery.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -43,15 +43,15 @@ from .proxies.ro_proxy import ROProxy from .proxies.td_proxy import TDProxy -from ..common.constants import NO_RESET, MSG_HEADER_SIZE -from ..common import dd_enum_repository -from ..common.generic_defs import DataTypes -from ..common.msg_ids import MsgIds -from ..common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override -from ..protocols.CAN import CanMessage, CanMessenger, CanChannels +from leahi_dialin.common.constants import NO_RESET, MSG_HEADER_SIZE +from leahi_dialin.common import dd_enum_repository +from leahi_dialin.common.generic_defs import DataTypes +from leahi_dialin.common.msg_ids import MsgIds +from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override +from leahi_dialin.protocols.CAN import CanMessage, CanMessenger, CanChannels from leahi_dialin.utils.abstract_classes import AbstractSubSystem, LocalVars from leahi_dialin.utils.base import publish, LogManager -from ..utils.conversions import integer_to_bytearray, bytearray_to_byte +from leahi_dialin.utils.conversions import integer_to_bytearray, bytearray_to_byte class DD(AbstractSubSystem): Index: leahi_dialin/dd/modules/dd_test_configs.py =================================================================== diff -u -rba415df9f8e76d6b0f21e8f69ba99346e42f7b09 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/dd/modules/dd_test_configs.py (.../dd_test_configs.py) (revision ba415df9f8e76d6b0f21e8f69ba99346e42f7b09) +++ leahi_dialin/dd/modules/dd_test_configs.py (.../dd_test_configs.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -18,7 +18,7 @@ from logging import Logger # Project imports -from leahi_dialin.common.constants import NO_RESET, MSG_HEADER_SIZE +from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.generic_defs import DataTypes from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_override Index: leahi_dialin/dd/modules/ultrafiltration.py =================================================================== diff -u -rba415df9f8e76d6b0f21e8f69ba99346e42f7b09 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/dd/modules/ultrafiltration.py (.../ultrafiltration.py) (revision ba415df9f8e76d6b0f21e8f69ba99346e42f7b09) +++ leahi_dialin/dd/modules/ultrafiltration.py (.../ultrafiltration.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -21,7 +21,6 @@ # Project imports from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.generic_defs import DataTypes -from leahi_dialin.common import dd_enum_repository from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override from leahi_dialin.protocols.CAN import CanMessenger, CanChannels Index: leahi_dialin/fp/filtration_purification.py =================================================================== diff -u -reca9e15bc984af2b7f59eb38f3836ca354ee1251 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/fp/filtration_purification.py (.../filtration_purification.py) (revision eca9e15bc984af2b7f59eb38f3836ca354ee1251) +++ leahi_dialin/fp/filtration_purification.py (.../filtration_purification.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -31,15 +31,15 @@ from .proxies.dd_proxy import DDProxy -from ..common.constants import NO_RESET, MSG_HEADER_SIZE -from ..common import fp_enum_repository -from ..common.generic_defs import DataTypes -from ..common.msg_ids import MsgIds -from ..common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override -from ..protocols.CAN import CanMessage, CanMessenger, CanChannels +from leahi_dialin.common.constants import NO_RESET, MSG_HEADER_SIZE +from leahi_dialin.common import fp_enum_repository +from leahi_dialin.common.generic_defs import DataTypes +from leahi_dialin.common.msg_ids import MsgIds +from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override +from leahi_dialin.protocols.CAN import CanMessage, CanMessenger, CanChannels from leahi_dialin.utils.abstract_classes import AbstractSubSystem, LocalVars from leahi_dialin.utils.base import publish, LogManager -from ..utils.conversions import integer_to_bytearray, bytearray_to_byte +from leahi_dialin.utils.conversions import integer_to_bytearray, bytearray_to_byte class FP(AbstractSubSystem): Index: leahi_dialin/td/modules/syringe_pump.py =================================================================== diff -u -r43f69b19f03145572d88f5f3c0cc739503c6d647 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/td/modules/syringe_pump.py (.../syringe_pump.py) (revision 43f69b19f03145572d88f5f3c0cc739503c6d647) +++ leahi_dialin/td/modules/syringe_pump.py (.../syringe_pump.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -285,7 +285,7 @@ # ============================================================ Overrides and Requests ============================================================ - def cmd_syringe_pump_operation(self, operation: int = TDSyringePumpStates.SYRINGE_PUMP_OP_STOP.value, + def cmd_syringe_pump_operation(self, operation: int = TDSyringePumpStates.STOP.value, rate: float = 0.0, volume: float = 0.0) -> int: """ Index: leahi_dialin/td/treatment_delivery.py =================================================================== diff -u -r43f69b19f03145572d88f5f3c0cc739503c6d647 -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- leahi_dialin/td/treatment_delivery.py (.../treatment_delivery.py) (revision 43f69b19f03145572d88f5f3c0cc739503c6d647) +++ leahi_dialin/td/treatment_delivery.py (.../treatment_delivery.py) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -42,15 +42,15 @@ from .proxies.dd_proxy import DDProxy from .proxies.ui_proxy import UIProxy -from ..common.constants import NO_RESET, MSG_HEADER_SIZE -from ..common.msg_ids import MsgIds -from ..common import td_enum_repository -from ..common.generic_defs import DataTypes -from ..common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override -from ..protocols.CAN import CanMessage, CanMessenger, CanChannels -from ..utils.abstract_classes import AbstractSubSystem, LocalVars -from ..utils.base import publish, LogManager -from ..utils.conversions import integer_to_bytearray, bytearray_to_byte +from leahi_dialin.common.constants import NO_RESET, MSG_HEADER_SIZE +from leahi_dialin.common.msg_ids import MsgIds +from leahi_dialin.common import td_enum_repository +from leahi_dialin.common.generic_defs import DataTypes +from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override +from leahi_dialin.protocols.CAN import CanMessage, CanMessenger, CanChannels +from leahi_dialin.utils.abstract_classes import AbstractSubSystem, LocalVars +from leahi_dialin.utils.base import publish, LogManager +from leahi_dialin.utils.conversions import integer_to_bytearray, bytearray_to_byte class TD(AbstractSubSystem): Index: leahi_dialin/utils/enum_updater.py =================================================================== diff -u --- leahi_dialin/utils/enum_updater.py (revision 0) +++ leahi_dialin/utils/enum_updater.py (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -0,0 +1,151 @@ +from clang.cindex import Index, CursorKind, Config +from datetime import datetime +from os import path +from typing import List + +Config.set_library_file("/usr/lib/llvm-18/lib/libclang.so") + + +class EnumUpdater: + + @staticmethod + def execute() -> None: + """ + Read the enums from the C++ file and then update the Python Enum definitions + """ + + files_to_check = [] + files_to_check.append(path.abspath(f'{path.dirname(__file__)}/../../leahi-common/AlarmDefs.h')) + files_to_check.append(path.abspath(f'{path.dirname(__file__)}/../../leahi-common/MsgDefs.h')) + + common_location = path.abspath(f'{path.dirname(__file__)}/../common') + file_to_update = {'AlarmList': (f'{common_location}/alarm_defs.py', 'AlarmEnum', False), + 'RequestRejectReasons': (f'{common_location}/msg_defs.py', 'DialinEnum', False), + 'MsgIds': (f'{common_location}/msg_ids.py', 'DialinEnum', True), + # 'TestConfig': (f'{common_location}/test_config_defs.py', 'DialinEnum', False) + } + for file in files_to_check: + if path.exists(file): + extracted_enums = _extract_enums(file) + for enum_name in extracted_enums: + if enum_name in file_to_update: + _generate_enum_file(file_location = file_to_update[enum_name][0], + enum_name = enum_name, + enum_member_list = extracted_enums[enum_name], + enum_type = file_to_update[enum_name][1], + is_hex = file_to_update[enum_name][2]) + print(f'Updated enum: {enum_name}') + + + +# ============================================================ Private Methods ============================================================ +def _extract_enums(cpp_file): + """ + Extract the enums from the provided C++ file + :param cpp_file: (String) The C++ file with full location + :return: (Dictionary) The collected enums + """ + index = Index.create() + tu = index.parse(cpp_file) + enums = {} + for cursor in tu.cursor.walk_preorder(): + if cursor.kind == CursorKind.ENUM_DECL: + # Update name to be CamelCase + enum_name = "".join(part.capitalize() for part in cursor.spelling.split("_") if part) + enums[enum_name] = [] + for item in cursor.get_children(): + if item.kind == CursorKind.ENUM_CONSTANT_DECL: + if item.spelling in ['MSG_ID_FIRST_TD_TESTER_MESSAGE', 'MSG_ID_FIRST_DD_TESTER_MESSAGE', 'MSG_ID_FIRST_FP_TESTER_MESSAGE']: + continue + enums[enum_name].append({ + "member": item.spelling, + "value": item.enum_value, + "comment": item.brief_comment, + }) + return enums + + +def _generate_enum_file(file_location: str, + enum_name: str, + enum_member_list: List[dict], + enum_type: str='Enum', + is_hex: bool=False) -> None: + """ + Generate the enum file content + :param file_location: (String) The enum file with full location + :param enum_name: (String) The enum's name + :param enum_member_list: (List of Dictionaries) The information of the enum members + :param enum_type: (String) The enum type to be the parent + :param is_hex: (Boolean) The member's values are hex or not + :return: None + """ + now = datetime.now().strftime("%d-%b-%Y") + file_name = file_location.split('/')[-1] + + lines = [] + lines.append('###########################################################################') + lines.append('#') + lines.append('# Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved.') + lines.append('#') + lines.append('# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM IN PART OR IN') + lines.append('# WHOLE WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.') + lines.append('#') + lines.append(f'# @file {file_name}') + lines.append('#') + lines.append('# @author (last) Enum Updater Script') + lines.append(f'# @date (last) {now}') + lines.append('# @author (original) Zoltan Miskolci') + lines.append('# @date (original) 31-Jul-2026') + lines.append('#') + lines.append('############################################################################') + lines.append('from enum import unique') + lines.append(f'from leahi_dialin.utils.enums import {enum_type}') + lines.append('') + lines.append('') + lines.append('@unique') + lines.append(f'class {enum_name}({enum_type}):') + + # Add the members + for i in range(len(enum_member_list)): + member = enum_member_list[i] + if i != 0 and member['value'] != enum_member_list[i-1]['value'] + 1: + lines.append('') + value = member['value'] + if is_hex: + value = hex(member['value']).upper().replace('X','x') + lines.append(f' {member["member"]:<75} = {value:<10} # {member["comment"]}') + lines.append('') + + # Add cutom code for specific enum or enum types + lines.extend(_custom_code_generator(enum_name, enum_type)) + + # Write into the file + with open(file_location, "w") as f: + f.write("\n".join(lines)) + + +def _custom_code_generator(enum_name:str, enum_type:str) -> List[str]: + """ + Add cutom code for specific enum or enum types + + :param enum_name: (String) The enum's name + :param enum_type: (String) The enum type to be the parent + :return: (List[str]) The custom code lines + """ + lines = [] + # Add the _str_list for python 3.6 compatibility + if enum_type == 'DialinEnum': + lines.append(f'{enum_name}._str_list = ' + '{ }') + lines.append('') + + if enum_name == 'RequestRejectReasons': + lines.append(f'ACK_NOT_REQUIRED = [ ]') + lines.append('') + + return lines + + + +# ============================================================ Main ============================================================ +if __name__ == '__main__': + EnumUpdater.execute() Index: requirements.txt =================================================================== diff -u -re0aa5ffe3d2aa8153e01e07b41f80d12e07fed2d -r81e359d6c7ced081bd4580ec3e6cc38939781c6a --- requirements.txt (.../requirements.txt) (revision e0aa5ffe3d2aa8153e01e07b41f80d12e07fed2d) +++ requirements.txt (.../requirements.txt) (revision 81e359d6c7ced081bd4580ec3e6cc38939781c6a) @@ -15,6 +15,7 @@ importlib-metadata==2.0.0; python_version < "3.8" Jinja2==2.11.2 kiwisolver==1.1.0 +libclang==18.1.1 m2r==0.2.1 MarkupSafe==1.1.1 mccabe==0.6.1