Index: dialin/common/alarm_defs.py =================================================================== diff -u -rd3a22e97fad0b715b1e9fba138236334ae7dbb6d -rbea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5 --- dialin/common/alarm_defs.py (.../alarm_defs.py) (revision d3a22e97fad0b715b1e9fba138236334ae7dbb6d) +++ dialin/common/alarm_defs.py (.../alarm_defs.py) (revision bea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5) @@ -7,8 +7,8 @@ # # @file alarm_defs.py # -# @author (last) Dara Navaei -# @date (last) 22-Dec-2022 +# @author (last) Micahel Garthwaite +# @date (last) 18-Aug-2023 # @author (original) Peter Lucia # @date (original) 07-Aug-2020 # @@ -21,12 +21,12 @@ @unique class AlarmList(AlarmEnum): ALARM_ID_NO_ALARM = 0 - ALARM_ID_STUCK_BUTTON_TEST_FAILED = 1 + ALARM_ID_HD_STUCK_BUTTON_TEST_FAILED = 1 ALARM_ID_HD_FPGA_POST_TEST_FAILED = 2 ALARM_ID_DG_FPGA_POST_TEST_FAILED = 3 ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED = 4 ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED = 5 - ALARM_ID_UI_COMM_POST_FAILED = 6 + ALARM_ID_HD_UI_COMM_POST_FAILED = 6 ALARM_ID_HD_RTC_BATTERY_LOW = 7 ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE = 8 ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE = 9 @@ -35,11 +35,11 @@ ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED = 12 ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED = 13 ALARM_ID_DG_INVALID_USAGE_RECORD_CRC = 14 - ALARM_ID_HD_INVALID_USAGE_RECORD = 15 + ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP = 15 ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE = 16 - ALARM_ID_HD_UI_POST_FAILED = 17 - ALARM_ID_DG_PRESSURE_SENSORS_INVALID_CAL_RECORD = 18 - ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP = 19 + ALARM_ID_HD_UI_POST_TIMEOUT = 17 + ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_DG = 18 + ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP = 19 ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD = 20 ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD = 21 ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD = 22 @@ -51,29 +51,29 @@ ALARM_ID_DG_TWO_WIRE_SENSORS_FPGA_FAULT = 28 ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD = 29 ALARM_ID_HD_SOFTWARE_FAULT = 30 - ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK = 31 - ALARM_ID_BLOOD_PUMP_OFF_CHECK = 32 - ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK = 33 - ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK = 34 - ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK = 35 - ALARM_ID_DIAL_IN_PUMP_OFF_CHECK = 36 - ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK = 37 - ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK = 38 - ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK = 39 - ALARM_ID_DIAL_OUT_PUMP_OFF_CHECK = 40 - ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK = 41 - ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK = 42 + ALARM_ID_HD_BLOOD_PUMP_MC_CURRENT_CHECK = 31 + ALARM_ID_HD_BLOOD_PUMP_OFF_CHECK = 32 + ALARM_ID_HD_BLOOD_PUMP_MC_DIRECTION_CHECK = 33 + ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_CHECK = 34 + ALARM_ID_HD_DIAL_IN_PUMP_MC_CURRENT_CHECK = 35 + ALARM_ID_HD_DIAL_IN_PUMP_OFF_CHECK = 36 + ALARM_ID_HD_DIAL_IN_PUMP_MC_DIRECTION_CHECK = 37 + ALARM_ID_HD_DIAL_IN_PUMP_ROTOR_SPEED_CHECK = 38 + ALARM_ID_HD_DIAL_OUT_PUMP_MC_CURRENT_CHECK = 39 + ALARM_ID_HD_DIAL_OUT_PUMP_OFF_CHECK = 40 + ALARM_ID_HD_DIAL_OUT_PUMP_MC_DIRECTION_CHECK = 41 + ALARM_ID_HD_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK = 42 ALARM_ID_DG_MAIN_PRIMARY_HEATER_FPGA_FAULT = 43 - ALARM_ID_UI_COMM_TIMEOUT = 44 + ALARM_ID_HD_UI_COMM_TIMEOUT = 44 ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS = 45 - ALARM_ID_CAN_MESSAGE_NOT_ACKED = 46 - ALARM_ID_UF_RATE_TOO_HIGH_ERROR = 47 - ALARM_ID_UF_VOLUME_ACCURACY_ERROR = 48 + ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_UI = 46 + ALARM_ID_AVAILABLE_16 = 47 + ALARM_ID_HD_UF_VOLUME_ACCURACY_ERROR = 48 ALARM_ID_HD_FPGA_COMM_TIMEOUT = 49 - ALARM_ID_VALVE_CONTROL_FAILURE = 50 - ALARM_ID_BLOOD_PUMP_MOTOR_SPEED_CHECK = 51 - ALARM_ID_DIAL_IN_PUMP_MOTOR_SPEED_CHECK = 52 - ALARM_ID_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK = 53 + ALARM_ID_DG_VALVE_CONTROL_FAILURE = 50 + ALARM_ID_HD_BLOOD_PUMP_MOTOR_SPEED_CHECK = 51 + ALARM_ID_HD_DIAL_IN_PUMP_MOTOR_SPEED_CHECK = 52 + ALARM_ID_HD_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK = 53 ALARM_ID_HD_CRITICAL_DATA_ERROR = 54 ALARM_ID_DG_CRITICAL_DATA_ERROR = 55 ALARM_ID_HD_ACCELEROMETER_FAILURE = 56 @@ -83,17 +83,17 @@ ALARM_ID_HD_VALVE_NOT_FUNCTIONAL = 60 ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE = 61 ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE = 62 - ALARM_ID_HD_BLOOD_LEAK_FPGA_FAULT = 63 + ALARM_ID_AVAILABLE_20 = 63 ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE = 64 - ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT = 65 + ALARM_ID_HD_DG_COMMAND_INVALID_PARAMETER_FAULT = 65 ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE = 66 ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE = 67 ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE = 68 ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD = 69 ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE = 70 ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE = 71 ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE = 72 - ALARM_ID_HD_NEW_DIALYSATE_TEMPERATURE_DATA_MESSAGE_NOT_RECEIVE = 73 + ALARM_ID_HD_NEW_DIALYSATE_TEMP_DATA_MESSAGE_NOT_RECEIVE = 73 ALARM_ID_DG_INLET_UV_REACTOR_ON_WITH_NO_FLOW = 74 ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE = 75 ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE = 76 @@ -105,29 +105,29 @@ ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR = 82 ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR = 83 ALARM_ID_DG_SET_RTC_YEAR_INVALID = 84 - ALARM_ID_PUMP_TRACK_LATCH_OPENED = 85 + ALARM_ID_HD_PUMP_TRACK_LATCH_OPENED = 85 ALARM_ID_HD_SET_RTC_YEAR_INVALID = 86 ALARM_ID_DG_HEATING_INVALID_CAL_RECORD = 87 ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE = 88 ALARM_ID_DG_OUTLET_UV_REACTOR_ON_WITH_NO_FLOW = 89 ALARM_ID_DG_LOAD_CELL_A1_B1_FPGA_FAULT = 90 ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE = 91 - ALARM_ID_DG_CONDUCTIVITY_SENSOR_BAD_STATUS = 92 + ALARM_ID_AVAILABLE_1 = 92 ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE = 93 ALARM_ID_DG_PRESSURE_OUT_OF_RANGE = 94 ALARM_ID_DG_WATCHDOG_EXPIRED = 95 - ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE = 96 - ALARM_ID_FILL_CONDUCTIVITY_OUT_OF_RANGE = 97 + ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE = 96 + ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE = 97 ALARM_ID_HD_BATTERY_COMM_FAULT = 98 ALARM_ID_HD_SYRINGE_PUMP_STALL = 99 - ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT = 100 - ALARM_ID_HD_DRY_SELF_TEST_TIMEOUT = 101 - ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANGE = 102 + ALARM_ID_AVAILABLE_12 = 100 + ALARM_ID_UI_POST_HD_COMM = 101 + ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANGE = 102 ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID = 103 - ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS = 104 + ALARM_ID_HD_AIR_TRAP_ILLEGAL_LEVELS = 104 ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID = 105 ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD = 106 - ALARM_ID_DG_RESTARTED_FAULT = 107 + ALARM_ID_HD_DG_RESTARTED_FAULT = 107 ALARM_ID_HD_SYRINGE_PUMP_FPGA_ADC_FAULT = 108 ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR = 109 ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR = 110 @@ -136,165 +136,165 @@ ALARM_ID_DG_DRAIN_PUMP_CURRENT_OUT_OF_RANGE = 113 ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE = 114 ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE = 115 - ALARM_ID_DG_TEMPERATURE_SENSORS_ADC_FAULT = 116 + ALARM_ID_HD_UI_SDCARD_FAILURE = 116 ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED = 117 ALARM_ID_DG_RTC_CONFIG_ERROR = 118 ALARM_ID_DG_RTC_BATTERY_LOW = 119 - ALARM_ID_PRE_TREATMENT_WET_PRIME_TEST_FAILURE = 120 + ALARM_ID_HD_PRE_TREATMENT_WET_PRIME_TEST_FAILURE = 120 ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE = 121 ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE = 122 ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE = 123 - ALARM_ID_END_OF_TREATMENT_HIGH = 124 - ALARM_ID_TREATMENT_STOPPED_NO_RINSEBACK = 125 + ALARM_ID_HD_END_OF_TREATMENT_HIGH = 124 + ALARM_ID_HD_TREATMENT_STOPPED_NO_RINSEBACK = 125 ALARM_ID_HD_BLOOD_LEAK_DETECTED = 126 - ALARM_ID_VENOUS_PRESSURE_LOW = 127 + ALARM_ID_HD_VENOUS_PRESSURE_LOW = 127 ALARM_ID_HD_VENOUS_BUBBLE_DETECTED = 128 - ALARM_ID_HD_VENOUS_BUBBLE_DETECTED_RINSEBACK = 129 - ALARM_ID_VENOUS_PRESSURE_HIGH = 130 - ALARM_ID_ARTERIAL_PRESSURE_LOW = 131 - ALARM_ID_ARTERIAL_PRESSURE_HIGH = 132 + ALARM_ID_HD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT = 129 + ALARM_ID_HD_VENOUS_PRESSURE_HIGH = 130 + ALARM_ID_HD_ARTERIAL_PRESSURE_LOW = 131 + ALARM_ID_HD_ARTERIAL_PRESSURE_HIGH = 132 ALARM_ID_DG_FLUID_LEAK_DETECTED = 133 ALARM_ID_HD_FLUID_LEAK_DETECTED = 134 ALARM_ID_HD_SHOCK = 135 ALARM_ID_DG_SHOCK = 136 ALARM_ID_HD_EXCESSIVE_TILT = 137 ALARM_ID_DG_EXCESSIVE_TILT = 138 ALARM_ID_HD_AC_POWER_LOST = 139 - ALARM_ID_DG_COMM_TIMEOUT = 140 - ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT = 141 - ALARM_ID_OCCLUSION_BLOOD_PUMP = 142 + ALARM_ID_HD_DG_COMM_TIMEOUT = 140 + ALARM_ID_HD_AIR_TRAP_FILL_DURING_TREATMENT = 141 + ALARM_ID_HD_OCCLUSION_BLOOD_PUMP = 142 ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE = 143 ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH = 144 - ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE = 145 + ALARM_ID_DG_ACID_CONDUCTIVITY_OUT_OF_RANGE = 145 ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE = 146 - ALARM_ID_CREATING_DIALYSATE_PLEASE_WAIT = 147 + ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT = 147 ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH = 148 ALARM_ID_HD_WATCHDOG_EXPIRED = 149 - ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE = 150 - ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE = 151 - ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE = 152 - ALARM_ID_PRIME_COMPLETED_HIGH = 153 + ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE = 150 + ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE = 151 + ALARM_ID_DG_INLET_WATER_PRESSURE_IN_LOW_RANGE = 152 + ALARM_ID_HD_PRIME_COMPLETED_HIGH = 153 ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW = 154 ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE = 155 - ALARM_ID_HD_NEW_DG_OPERATION_MODE_MESSAGE_NOT_RECEIVE = 156 + ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE = 156 ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT = 157 - ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE = 158 - ALARM_ID_DIAL_IN_PUMP_FLOW_VS_MOTOR_SPEED_CHECK = 159 - ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH = 160 + ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_LOW_RANGE = 158 + ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID = 159 + ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH = 160 ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS = 161 ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE = 162 ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM = 163 ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM = 164 - ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM = 165 - ALARM_ID_TREATMENT_RECIRC_TIMEOUT_ALARM = 166 - ALARM_ID_CARTRIDGE_DOOR_OPENED = 167 - ALARM_ID_HD_ACTIVE_RESERVOIR_DEPLETION_TIME_OUT = 168 + ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_ALARM = 165 + ALARM_ID_TEST_ALARM_NO_BLOOD_RECIRC_CLR_TOP_ONLY = 166 + ALARM_ID_HD_CARTRIDGE_DOOR_OPENED = 167 + ALARM_ID_TEST_ALARM_NO_DIAL_RECIRC_CLR_TOP_ONLY = 168 ALARM_ID_DG_DIALYSATE_FLOW_RATE_OUT_OF_MAX_RANGE = 169 ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY = 170 ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION = 171 ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM = 172 ALARM_ID_HD_RTC_CONFIG_ERROR = 173 ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE = 174 ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR = 175 - ALARM_ID_HD_DIALYSATE_TEMP_OUT_OF_HIGH_SAFETY_RANGE = 176 + ALARM_ID_TEST_ALARM_NO_RECIRC_CLR_TOP_ONLY = 176 ALARM_ID_DG_SOFTWARE_FAULT = 177 ALARM_ID_HD_COMM_TIMEOUT = 178 ALARM_ID_DG_FPGA_COMM_TIMEOUT = 179 ALARM_ID_DG_RO_FLOW_RATE_OUT_OF_MAX_RANGE = 180 ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE = 181 ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD = 182 ALARM_ID_DG_INVALID_LOAD_CELL_VALUE = 183 - ALARM_ID_UV_REACTOR_NOT_HEALTHY = 184 + ALARM_ID_DG_INLET_UV_REACTOR_NOT_HEALTHY = 184 ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE = 185 ALARM_ID_DG_CONCENTRATE_PUMP_FAULT = 186 - ALARM_ID_CP1_SPEED_CONTROL_ERROR = 187 - ALARM_ID_CP2_SPEED_CONTROL_ERROR = 188 - ALARM_ID_DRAIN_PUMP_RPM_OUT_OF_RANGE = 189 - ALARM_ID_DRAIN_PUMP_OFF_FAULT = 190 - ALARM_ID_FLOW_RATE_OUT_OF_UPPER_RANGE = 191 - ALARM_ID_FLOW_RATE_OUT_OF_LOWER_RANGE = 192 - ALARM_ID_HD_DIALYSATE_TEMP_OUT_OF_LOW_SAFETY_RANGE = 193 - ALARM_ID_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE = 194 - ALARM_ID_RO_PUMP_PRESSURE_OUT_OF_RANGE = 195 + ALARM_ID_DG_CP1_SPEED_CONTROL_ERROR = 187 + ALARM_ID_DG_CP2_SPEED_CONTROL_ERROR = 188 + ALARM_ID_DG_DRAIN_PUMP_RPM_OUT_OF_RANGE = 189 + ALARM_ID_DG_DRAIN_PUMP_OFF_FAULT = 190 + ALARM_ID_DG_FLOW_RATE_OUT_OF_UPPER_RANGE = 191 + ALARM_ID_DG_FLOW_RATE_OUT_OF_LOWER_RANGE = 192 + ALARM_ID_AVAILABLE_5 = 193 + ALARM_ID_DG_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE = 194 + ALARM_ID_DG_RO_PUMP_PRESSURE_OUT_OF_RANGE = 195 ALARM_ID_DG_CPI_CPO_SENSORS_FPGA_FAULT = 196 ALARM_ID_DG_CD1_CD2_SENSORS_FPGA_FAULT = 197 - ALARM_ID_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON = 198 - ALARM_ID_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON = 199 + ALARM_ID_DG_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON = 198 + ALARM_ID_DG_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON = 199 ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE = 200 - ALARM_ID_PRE_TREATMENT_WET_FLOW_TEST_FAILURE = 201 - ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE = 202 - ALARM_ID_PRESSURE_SENSOR_FAULT = 203 - ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE = 204 - ALARM_ID_CONDUCTIVITY_SENSOR_FAULT = 205 + ALARM_ID_HD_PRE_TREATMENT_WET_FLOW_TEST_FAILURE = 201 + ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE = 202 + ALARM_ID_AVAILABLE_6 = 203 + ALARM_ID_DG_RO_REJECTION_RATIO_OUT_OF_RANGE = 204 + ALARM_ID_DG_CONDUCTIVITY_SENSOR_FAULT = 205 ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME = 206 ALARM_ID_DG_FLOW_METER_CHECK_FAILURE = 207 ALARM_ID_HD_VENOUS_LINE_OCCLUSION = 208 ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT = 209 ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED = 210 - ALARM_ID_BLOOD_SITTING_WARNING = 211 - ALARM_ID_END_OF_TREATMENT_ALARM = 212 - ALARM_ID_PRIME_COMPLETED_MEDIUM = 213 - ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE = 214 - ALARM_ID_RINSEBACK_VOLUME_CHECK_FAILURE = 215 - ALARM_ID_END_TREATMENT_TIMEOUT_ALARM = 216 - ALARM_ID_BLOOD_PRIME_VOLUME_CHECK_FAILURE = 217 + ALARM_ID_HD_BLOOD_SITTING_WARNING = 211 + ALARM_ID_HD_END_OF_TREATMENT_ALARM = 212 + ALARM_ID_HD_PRIME_COMPLETED_MEDIUM = 213 + ALARM_ID_AVAILABLE_30 = 214 + ALARM_ID_AVAILABLE_31 = 215 + ALARM_ID_HD_END_TREATMENT_TIMEOUT_ALARM = 216 + ALARM_ID_AVAILABLE_32 = 217 ALARM_ID_HD_SYRINGE_DETECTED = 218 ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED = 219 ALARM_ID_DG_THD_SENSORS_FPGA_FAULT = 220 - ALARM_ID_EMPTY_SALINE_BAG = 221 + ALARM_ID_HD_EMPTY_SALINE_BAG = 221 ALARM_ID_HD_OCCLUSION_SENSOR_FPGA_FAULT = 222 ALARM_ID_HD_ARTERIAL_SENSOR_FPGA_FAULT = 223 - ALARM_ID_TREATMENT_STOPPED_BY_USER = 224 - ALARM_ID_END_OF_TREATMENT_WARNING = 225 - ALARM_ID_PRIME_COMPLETED_LOW_PRIORITY = 226 - ALARM_ID_PRIME_OUT_OF_TIME = 227 + ALARM_ID_HD_TREATMENT_STOPPED_BY_USER = 224 + ALARM_ID_HD_END_OF_TREATMENT_WARNING = 225 + ALARM_ID_HD_PRIME_COMPLETED_LOW_PRIORITY = 226 + ALARM_ID_AVAILABLE_15 = 227 ALARM_ID_HD_PRIME_SALINE_PURGE_AIR_TIME_OUT = 228 - ALARM_ID_PRIME_DIALYSATE_DIALYZER_TIME_OUT = 229 - ALARM_ID_PRIME_DIALYSATE_BYPASS_TIME_OUT = 230 - ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE = 231 - ALARM_ID_PRE_TREATMENT_WET_LC_TEST_FAILURE = 232 + ALARM_ID_HD_PRIME_DIALYSATE_DIALYZER_TIME_OUT = 229 + ALARM_ID_HD_PRIME_DIALYSATE_BYPASS_TIME_OUT = 230 + ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE = 231 + ALARM_ID_HD_PRE_TREATMENT_WET_LC_TEST_FAILURE = 232 ALARM_ID_DG_BAROMETRIC_SENSOR_COEFFS_BAD_CRC = 233 - ALARM_ID_RTC_RAM_OPS_ERROR = 234 - ALARM_ID_TREATMENT_STOPPED_AFTER_RINSEBACK = 235 - ALARM_ID_INSTALL_NEW_CARTRIDGE = 236 - ALARM_ID_PRIME_SALINE_DIALYZER_TIME_OUT = 237 - ALARM_ID_NO_CARTRIDGE_LOADED = 238 - ALARM_ID_CARTRIDGE_REMOVAL_FAILURE = 239 - ALARM_ID_BICARB_CONDUCTIVITY_OUT_OF_RANGE = 240 + ALARM_ID_DG_INLET_WATER_PRESSURE_IN_HIGH_RANGE = 234 + ALARM_ID_HD_TREATMENT_STOPPED_AFTER_RINSEBACK = 235 + ALARM_ID_HD_INSTALL_NEW_CARTRIDGE = 236 + ALARM_ID_AVAILABLE_13 = 237 + ALARM_ID_HD_NO_CARTRIDGE_LOADED = 238 + ALARM_ID_HD_CARTRIDGE_REMOVAL_FAILURE = 239 + ALARM_ID_DG_BICARB_CONDUCTIVITY_OUT_OF_RANGE = 240 ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT = 241 ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT = 242 ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT = 243 - ALARM_ID_DG_TEMP_SENSORS_DIFF_OUT_OF_RANGE = 244 + ALARM_ID_DG_CLEANING_MODE_TEMP_SENSORS_DIFF_OUT_OF_RANGE = 244 ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT = 245 - ALARM_ID_DG_HEAT_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT = 246 - ALARM_ID_DG_HEAT_DISINFECT_ACTIVE_COOL_TIME_OUT = 247 - ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_TIMEOUT = 248 - ALARM_ID_DG_CHEM_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT = 249 - ALARM_ID_DG_CHEM_DISINFECT_INLET_COND_AND_TEMP_OUT = 250 + ALARM_ID_DG_CLEANING_MODE_COND_SENSORS_OUT_OF_RANGE = 246 + ALARM_ID_AVAILABLE_7 = 247 + ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE = 248 + ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE = 249 + ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID = 250 ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC = 251 ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC = 252 ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC = 253 ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC = 254 ALARM_ID_HD_UI_COMPATIBILITY_ERROR = 255 - ALARM_ID_HD_DG_COMPATIBILITY_ERROR = 256 - ALARM_ID_DG_FPGA_POWER_OUT_TIMEOUT = 257 - ALARM_ID_HD_FPGA_POWER_OUT_TIMEOUT = 258 + ALARM_ID_HD_DISINFECT_CHEM_FLUSH = 256 + ALARM_ID_AVAILABLE_8 = 257 + ALARM_ID_AVAILABLE_9 = 258 ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE = 259 - ALARM_ID_UI_POST_FAILURE_SHASUM = 260 - ALARM_ID_UI_POST_FAILURE_CANBUS = 261 - ALARM_ID_UI_POST_FAILURE_DISPLAY = 262 - ALARM_ID_UI_POST_FAILURE_TOUCH = 263 - ALARM_ID_UI_POST_FAILURE_SDCARD = 264 - ALARM_ID_UI_POST_FAILURE_RTC = 265 - ALARM_ID_UI_POST_FAILURE_WIFI = 266 - ALARM_ID_UI_POST_FAILURE_BLUETOOTH = 267 - ALARM_ID_UI_POST_FAILURE_ETHERNET = 268 - ALARM_ID_UI_POST_FAILURE_SOUND = 269 + ALARM_ID_HD_UI_POST_FAILURE_SHASUM = 260 + ALARM_ID_HD_UI_POST_FAILURE_CANBUS = 261 + ALARM_ID_HD_UI_POST_FAILURE_DISPLAY = 262 + ALARM_ID_HD_UI_POST_FAILURE_TOUCH = 263 + ALARM_ID_HD_UI_POST_FAILURE_SDCARD = 264 + ALARM_ID_HD_UI_POST_FAILURE_RTC = 265 + ALARM_ID_HD_UI_POST_FAILURE_WIFI = 266 + ALARM_ID_HD_UI_POST_FAILURE_BLUETOOTH = 267 + ALARM_ID_HD_UI_POST_FAILURE_ETHERNET = 268 + ALARM_ID_HD_UI_POST_FAILURE_SOUND = 269 ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED = 270 ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED = 271 ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE = 272 - ALARM_ID_HD_BLOOD_FLOW_OUT_OF_RANGE = 273 - ALARM_ID_HD_DIAL_IN_FLOW_OUT_OF_RANGE = 274 + ALARM_ID_AVAILABLE_10 = 273 + ALARM_ID_AVAILABLE_11 = 274 ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE = 275 ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE = 276 ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE = 277 @@ -305,28 +305,28 @@ ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME = 282 ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE = 283 ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE = 284 - ALARM_ID_HD_TREATMENT_RECIRC_TIMEOUT_WARNING = 285 - ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING = 286 + ALARM_ID_HD_RO_PERMEATE_SAMPLE = 285 + ALARM_ID_DG_CONCENTRATE_CAP_NOT_IN_PROPER_POSITION = 286 ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE = 287 ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE = 288 - ALARM_ID_DG_DIALYSATE_OR_CONC_CAP_NOT_IN_PROPER_POSITION = 289 + ALARM_ID_DG_DIALYSATE_CAP_NOT_IN_PROPER_POSITION = 289 ALARM_ID_HD_VENOUS_SENSOR_FPGA_FAULT = 290 ALARM_ID_HD_DISINFECT_FLUSH = 291 ALARM_ID_HD_DISINFECT_HEAT = 292 ALARM_ID_HD_DISINFECT_CHEM = 293 - ALARM_ID_HD_DISINFECT_CHEM_INSTRUCTION1 = 294 - ALARM_ID_UI_POST_FAILURE_CLOUDSYNC = 295 + ALARM_ID_HD_DISINFECT_HEAT_COOL = 294 + ALARM_ID_HD_UI_POST_FAILURE_CLOUDSYNC = 295 ALARM_ID_DG_TDI_SENSORS_FPGA_FAULT = 296 ALARM_ID_DG_TRO_SENSORS_FPGA_FAULT = 297 ALARM_ID_DG_BARO_SENSOR_FPGA_FAULT = 298 ALARM_ID_DG_INVALID_SERIAL_NUMBER = 299 ALARM_ID_HD_INVALID_SERIAL_NUMBER = 300 - ALARM_ID_DG_PRIMARY_HEATER_POWER_VOLTAGE_OUT_OF_RANGE = 301 + ALARM_ID_DG_RO_PERMEATE_SAMPLE_REMOVE_DIA_CAP = 301 ALARM_ID_DG_CPU_RAM_ERROR = 302 ALARM_ID_DG_DRAIN_PUMP_DIRECTION_FPGA_FAULT = 303 ALARM_ID_HD_INVALID_USAGE_RECORD_CRC = 304 ALARM_ID_HD_CPU_RAM_ERROR = 305 - ALARM_ID_HD_AIR_TRAP_OVERFILL = 306 + ALARM_ID_DG_CD1_CD2_CHECK_FAULT = 306 ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT = 307 ALARM_ID_DG_CPI_COND_SENSOR_INVALID_CHAR = 308 ALARM_ID_DG_CPO_COND_SENSOR_INVALID_CHAR = 309 @@ -338,4 +338,9 @@ ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_LOW = 315 ALARM_ID_DG_ACID_CONCENTRATE_PUMP_PARK_FAULT = 316 ALARM_ID_DG_BICARB_CONCENTRATE_PUMP_PARK_FAULT = 317 - + ALARM_ID_HD_AIR_PUMP_TIMEOUT = 318 + ALARM_ID_DG_CHEM_DISINFECT_FLUSH_FLUSH_SAMPLE = 319 + ALARM_ID_DG_CHEM_DISINFECT_FLUSH_SAMPLE_TIMEOUT = 320 + ALARM_ID_DG_OUTLET_UV_REACTOR_NOT_HEALTHY = 321 + ALARM_ID_HD_UI_POST_FAILURE_INVALID_YEAR = 322 + ALARM_ID_HD_UI_POST_FAILURE_SETTINGS_BAD = 323 Index: dialin/common/dg_defs.py =================================================================== diff -u -rd3a22e97fad0b715b1e9fba138236334ae7dbb6d -rbea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5 --- dialin/common/dg_defs.py (.../dg_defs.py) (revision d3a22e97fad0b715b1e9fba138236334ae7dbb6d) +++ dialin/common/dg_defs.py (.../dg_defs.py) (revision bea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5) @@ -7,8 +7,8 @@ # # @file dg_defs.py # -# @author (last) Dara Navaei -# @date (last) 14-Jan-2023 +# @author (last) Micahel Garthwaite +# @date (last) 18-Aug-2023 # @author (original) Peter Lucia # @date (original) 22-Jun-2021 # @@ -32,8 +32,9 @@ DG_MODE_CHEM = 10 # Chemical Disinfect mode DG_MODE_CHFL = 11 # Chemical Disinfect Flush mode DG_MODE_HCOL = 12 # Heat Disinfect Active Cool mode - DG_MODE_NLEG = 13 # Not legal - an illegal mode transition occurred - NUM_OF_DG_MODES = 14 # Number of DG operation modes + DG_MODE_ROPS = 13 # RO Permeate Sample mode + DG_MODE_NLEG = 14 # Not legal - an illegal mode transition occurred + NUM_OF_DG_MODES = 15 # Number of DG operation modes @unique @@ -84,7 +85,8 @@ DG_STANDBY_MODE_STATE_FLUSH_FILTER = 1 # Sample water flush filter state DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE = 2 # Sample water flush filter idle state DG_STANDBY_MODE_STATE_SAMPLE_WATER = 3 # Sample water state - NUM_OF_DG_STANDBY_MODE_STATES = 4 # Number of standby mode states + DG_STANDBY_MODE_STATE_PAUSE = 4 # Pause state + NUM_OF_DG_STANDBY_MODE_STATES = 5 # Number of standby mode states @unique @@ -107,16 +109,15 @@ @unique class DGFillModeStates(DialinEnum): - DG_FILL_MODE_STATE_START = 0 # Start fill mode state - DG_FILL_MODE_STATE_TEST_INLET_WATER = 1 # Test inlet water quality state - DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES = 2 # Prime the acid and bicarb concentrate lines - DG_FILL_MODE_STATE_FLUSH_BUBBLES = 3 # Flush the bubbles in the lines state - DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY = 4 # Test the conductivity range of the bicarb concentrate state - DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY = 5 # Test the conductivity range of the acid concentrate state - DG_FILL_MODE_STATE_PRODUCE_DIALYSATE = 6 # Dialysate production state - DG_FILL_MODE_STATE_DELIVER_DIALYSATE = 7 # Dialysate deliver state - DG_FILL_MODE_STATE_PAUSED = 8 # Dialysate generation pause state - NUM_OF_DG_FILL_MODE_STATES = 9 # Number of fill mode states + DG_FILL_MODE_STATE_TEST_INLET_WATER = 0 # Test inlet water quality state + DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES = 1 # Prime the acid and bicarb concentrate lines + DG_FILL_MODE_STATE_FLUSH_BUBBLES = 2 # Flush the bubbles in the lines state + DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY = 3 # Test the conductivity range of the bicarb concentrate state + DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY = 4 # Test the conductivity range of the acid concentrate state + DG_FILL_MODE_STATE_PRODUCE_DIALYSATE = 5 # Dialysate production state + DG_FILL_MODE_STATE_DELIVER_DIALYSATE = 6 # Dialysate deliver state + DG_FILL_MODE_STATE_PAUSED = 7 # Dialysate generation pause state + NUM_OF_DG_FILL_MODE_STATES = 8 # Number of fill mode states @unique @@ -180,7 +181,8 @@ DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH = 16 # Heat disinfect, cancel mode basic path state DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH = 17 # Heat disinfect, cancel mode water path state DG_HEAT_DISINFECT_STATE_COMPLETE = 18 # Heat disinfect, complete state - NUM_OF_DG_HEAT_DISINFECT_STATES = 19 # Number of heat disinfect mode states + DG_NELSON_HEAT_DISINFECT_STATE_FILL_R1_WITH_WATER = 19 + NUM_OF_DG_HEAT_DISINFECT_STATES = 20 # Number of heat disinfect mode states @unique @@ -197,13 +199,21 @@ HEAT_DISINFECT_UI_STATE_COMPLETE = 9 NUM_OF_HEAT_DISINFECT_UI_STATES = 10 + @unique class DGHeatDisinfectActiveCoolStates(DialinEnum): DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_START = 0 - DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_COOL_DOWN_RO_FILTER = 1 - DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_CANCEL_BASIC_PATH = 2 - DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_COMPLETE = 3 - NUM_OF_DG_HEAT_DISINFECT_ACTIVE_COOL_STATES = 4 + DG_HEAT_DISINFECT_ACTIVE_COOL_MIX_DRAIN_R1_STATE = 1 + DG_HEAT_DISINFECT_ACTIVE_COOL_MIX_DRAIN_R2_STATE = 2 + DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R1_STATE = 3 + DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R2_STATE = 4 + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_FILL_R1_TO_R2_STATE = 5 + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_FILL_R2_TO_R1_STATE = 6 + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_STATE = 7 + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_STATE = 8 + DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE = 9 + DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_BASIC_PATH_STATE = 10 + DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_COMPLETE = 11 @unique @@ -212,18 +222,19 @@ DG_CHEM_DISINFECT_STATE_DRAIN_R1 = 1 DG_CHEM_DISINFECT_STATE_DRAIN_R2 = 2 DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN = 3 - DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION = 4 - DG_CHEM_DISINFECT_STATE_PRIME_DISINFECTANT = 5 - DG_CHEM_DISINFECT_STATE_DISINFECTANT_FLUSH = 6 - DG_CHEM_DISINFECT_STATE_FILL_WITH_DISINFECTANT = 7 - DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 8 - DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R1_FILL_R2_TO_R1 = 9 - DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 10 - DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R2_FILL_R1_TO_R2 = 11 - DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 12 - DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 13 - DG_CHEM_DISINFECT_STATE_COMPLETE = 14 - NUM_OF_DG_CHEM_DISINFECT_STATES = 15 + DG_CHEM_DISINFECT_STATE_DEPRIME_ACID_LINE = 4 + DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION = 5 + DG_CHEM_DISINFECT_STATE_PRIME_DISINFECTANT = 6 + DG_CHEM_DISINFECT_STATE_DISINFECTANT_FLUSH = 7 + DG_CHEM_DISINFECT_STATE_FILL_WITH_DISINFECTANT = 8 + DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 9 + DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R1_FILL_R2_TO_R1 = 10 + DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 11 + DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R2_FILL_R1_TO_R2 = 12 + DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 13 + DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 14 + DG_CHEM_DISINFECT_STATE_COMPLETE = 15 + NUM_OF_DG_CHEM_DISINFECT_STATES = 16 @unique @@ -266,6 +277,22 @@ @unique +class DGROPermeateSampleStates(DialinEnum): + DG_RO_PERM_SAMPLE_STATE_START = 0 + DG_RO_PERM_SAMPLE_STATE_DRAIN_R1 = 1 + DG_RO_PERM_SAMPLE_STATE_DRAIN_R2 = 2 + DG_RO_PERM_SAMPLE_STATE_FLUSH_DRAIN = 3 + DG_RO_PERM_SAMPLE_STATE_FLUSH_DIALYSATE = 4 + DG_RO_PERM_SAMPLE_STATE_FLUSH_CONCENTRATE_STRAWS = 5 + DG_RO_PERM_SAMPLE_STATE_FLUSH_R2_TO_R1_AND_DRAIN_R1 = 6 + DG_RO_PERM_SAMPLE_STATE_COLLECT_SAMPLE = 7 + DG_RO_PERM_SAMPLE_STATE_CANCEL_BASIC_PATH = 8 + DG_RO_PERM_SAMPLE_STATE_CANCEL_WATER_PATH = 9 + DG_RO_PERM_SAMPLE_STATE_COMPLETE = 10 + NUM_OF_DG_RO_PERM_STATES = 11 + + +@unique class DGEventList(DialinEnum): DG_EVENT_STARTUP = 0 # DG startup event DG_EVENT_OP_MODE_CHANGE = 1 # DG Op mode change event @@ -280,7 +307,10 @@ DG_EVENT_SW_CONFIG_UPDATE = 10 # DG new software configuration has been updated DG_EVENT_SCHEDULED_RUNS_UPDATE = 11 # DG new scheduled runs information has been updated DG_EVENT_HEATERS_INFO_UPDATE = 12 # DG new heaters information has been updated - NUM_OF_DG_EVENT_IDS = 13 # Total number of DG events + DG_EVENT_AVG_DIALYSATE_FILL_COND_VALUES = 13 # DG average dialysate fill conductivity values + DG_EVENT_RESERVOIR_FILL_VALUES = 14 # DG reservoir fill base reservoir weight and filled volume values + DG_EVENT_OPERATION_STATUS = 15 # DG operation status event + NUM_OF_DG_EVENT_IDS = 16 # Total number of DG events @unique @@ -296,4 +326,4 @@ @unique class DGServiceModesStates(DialinEnum): DG_SERVICE_STATE_START = 0 # Start service mode state - NUM_OF_DG_SERVICE_STATES = 1 # Number of service mode states \ No newline at end of file + NUM_OF_DG_SERVICE_STATES = 1 # Number of service mode states Index: dialin/common/hd_defs.py =================================================================== diff -u -r151e5a7372d787218e39163e564c8e5dbe8a35e0 -rbea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5 --- dialin/common/hd_defs.py (.../hd_defs.py) (revision 151e5a7372d787218e39163e564c8e5dbe8a35e0) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision bea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5) @@ -8,7 +8,7 @@ # @file hd_defs.py # # @author (last) Micahel Garthwaite -# @date (last) 19-Jan-2023 +# @date (last) 09-Aug-2023 # @author (original) Peter Lucia # @date (original) 04-Dec-2020 # @@ -33,19 +33,13 @@ @unique class HDStandbyStates(DialinEnum): - STANDBY_START_STATE = 0 # Start standby. - STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment. - STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for UI to send disinfect option. - STANDBY_WAIT_FOR_DG_FLUSH_CMD_RESPONSE_STATE = 3 # Wait for DG flush command response. - STANDBY_WAIT_FOR_DG_FLUSH_TO_START_STATE = 4 # Wait for DG flush to start. - STANDBY_DG_FLUSH_IN_PROGRESS_STATE = 5 # DG flush operation is in progress - STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_CMD_RESPONSE_STATE = 6 # Wait for DG heat disinfect command response. - STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_TO_START_STATE = 7 # Wait for DG heat disinfect to start. - STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE = 8 # DG heat disinfect operation is in progress. - STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_CMD_RESPONSE_STATE = 9 # Wait for DG chemical disinfect command response. - STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_TO_START_STATE = 10 # Wait for DG chemical disinfect to start. - STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE = 11 # DG chemical disinfect operation is in progress - NUM_OF_STANDBY_STATES = 12 # Number of standby states (sub-modes) + STANDBY_START_STATE = 0 # Start standby (home actuators). + STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment. + STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for UI to send disinfect option. + STANDBY_WAIT_FOR_DG_CLEANING_MODE_CMD_RESPONSE_STATE = 3 # Wait for DG cleaning mode command response state. + STANDBY_WAIT_FOR_DG_CLEANING_MODE_TO_START_STATE = 4 # Wait for DG cleaning mode to start state. + STANDBY_CLEANING_MODE_IN_PROGRESS_STATE = 5 # Cleaning mode in progress state. + NUM_OF_STANDBY_STATES = 6 # Number of standby states (sub-modes). @unique class HDInitStates(DialinEnum): @@ -85,19 +79,19 @@ HD_PRE_TREATMENT_PRIME_STATE = 5 # Prime blood and dialysate circuits and run wet self-tests state HD_PRE_TREATMENT_RECIRCULATE_STATE = 6 # Re-circulate blood and dialysate circuits state HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 7 # Patient connection state - NUM_OF_HD_PRE_TREATMENT_STATES = 10 # Number of pre-treatment mode states + NUM_OF_HD_PRE_TREATMENT_STATES = 8 # Number of pre-treatment mode states @unique -class PreTreatmentSampleWaterStates(DialinEnum): # HD_PRE_TREATMENT_WATER_SAMPLE_STATE: +class PreTreatmentSampleWaterStates(DialinEnum): SAMPLE_WATER_SETUP_STATE = 0 # Sample water setup (flush filter) state SAMPLE_WATER_STATE = 1 # Sample water state, receiving sample water commands from the user SAMPLE_WATER_COMPLETE_STATE = 2 # Sample water complete state NUM_OF_SAMPLE_WATER_STATES = 3 # Number of sample water sub-mode states @unique -class PreTreatmentConsumableSelfTestStates(DialinEnum): # HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE: +class PreTreatmentConsumableSelfTestStates(DialinEnum): CONSUMABLE_SELF_TESTS_INSTALL_STATE = 0 # Consumable self-tests install state CONSUMABLE_SELF_TESTS_PRIME_STATE = 1 # Consumable self-tests prime concentrate lines state CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE = 2 # Consumable self-tests bicarbonate concentrate pump check state @@ -107,8 +101,8 @@ @unique -class PreTreatmentNoCartSelfTestStates(DialinEnum): # HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE: - NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 0 # Wait for door to be closed before running saelf-tests +class PreTreatmentNoCartSelfTestStates(DialinEnum): + NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 0 # Wait for door to be closed before running self-tests NO_CART_SELF_TESTS_PRESSURE_CHECKS_STATE = 1 # No cartridge pressure sensors self-test state NO_CART_SELF_TESTS_HOME_VALVES_STATE = 2 # No cartridge home valves state NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE = 3 # No cartridge home syringe pump state @@ -120,28 +114,23 @@ @unique -class PreTreatmentWetSelfTestStates(DialinEnum): # also HD_PRE_TREATMENT_PRIME_STATE: +class PreTreatmentWetSelfTestStates(DialinEnum): WET_SELF_TESTS_START_STATE = 0 - WET_SELF_TESTS_SETUP_STATE = 1 - WET_SELF_TESTS_BUBBLES_STATE = 2 + WET_SELF_TESTS_BUBBLE_CHECK_SETUP_STATE = 1 + WET_SELF_TESTS_BUBBLE_CHECK_STATE = 2 WET_SELF_TESTS_PRIME_CHECK_STATE = 3 - WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE = 4 - WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE = 5 - WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE = 6 - WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE = 7 - WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE = 8 - WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE = 9 - WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE = 10 - WET_SELF_TESTS_STOPPED_STATE = 11 - WET_SELF_TESTS_COMPLETE_STATE = 12 + WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_DEBUBBLE_STATE = 4 + WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE = 5 + WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE = 6 + WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE = 7 + WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE = 8 + WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE = 9 + WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE = 10 + WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE = 11 + WET_SELF_TESTS_STOPPED_STATE = 12 + WET_SELF_TESTS_COMPLETE_STATE = 13 -@unique -class PreTreatmentRecircStates(DialinEnum): # HD_PRE_TREATMENT_RECIRCULATE_STATE: - PRE_TREATMENT_RECIRC_STATE = 0 # Pre-treatment recirculate state - PRE_TREATMENT_RECIRC_STOPPED_STATE = 1 # Pre-treatment recirculate stopped state - NUM_OF_PRE_TREATMENT_RECIRC_STATES = 2 # Number of pre-treatment recirculate states - # Heparin states @unique class HeparinStates(DialinEnum): @@ -161,11 +150,12 @@ SYRINGE_PUMP_INIT_STATE = 0 # Syringe pump initialize state SYRINGE_PUMP_OFF_STATE = 1 # Syringe pump off state SYRINGE_PUMP_RETRACT_STATE = 2 # Syringe pump retract state - SYRINGE_PUMP_SEEK_STATE = 3 # Syringe pump seek state - SYRINGE_PUMP_PRIME_STATE = 4 # Syringe pump prime state - SYRINGE_PUMP_HEP_BOLUS_STATE = 5 # Syringe pump bolus state - SYRINGE_PUMP_HEP_CONTINUOUS_STATE = 6 # Syringe pump continuous state - SYRINGE_PUMP_CONFIG_FORCE_SENSOR_STATE = 7 # Syringe pump configure force sensor state + SYRINGE_PUMP_PRELOAD_STATE = 3 # Syringe pump preload state + SYRINGE_PUMP_SEEK_STATE = 4 # Syringe pump seek state + SYRINGE_PUMP_PRIME_STATE = 5 # Syringe pump prime state + SYRINGE_PUMP_HEP_BOLUS_STATE = 6 # Syringe pump bolus state + SYRINGE_PUMP_HEP_CONTINUOUS_STATE = 7 # Syringe pump continuous state + SYRINGE_PUMP_CONFIG_FORCE_SENSOR_STATE = 8 # Syringe pump configure force sensor state # Syringe pump operations @@ -189,60 +179,80 @@ @unique -class PreTreatmentCartridgeInstallStates(DialinEnum): # HD_PRE_TREATMENT_CART_INSTALL_STATE: - CARTRIDGE_INSTALL_STATE = 0 # Pre-treatment Cartridge Install state. - NUM_OF_CARTRIDGE_INSTALL_STATES = 1 # Number of pre-treatment Cartridge Install states. +class PreTreatmentCartridgeInstallStates(DialinEnum): + CARTRIDGE_INSTALL_STATE = 0 # Pre-treatment Cartridge Install state. + NUM_OF_CARTRIDGE_INSTALL_STATES = 1 # Number of pre-treatment Cartridge Install states. @unique -class PreTreatmentDrySelfTestsStates(DialinEnum): # HD_PRE_TREATMENT_SELF_TEST_DRY_STATE: +class PreTreatmentDrySelfTestsStates(DialinEnum): """ The HD Pre-Treatment dry self test states """ DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE = 2 # Used cartridge check dry self-test state - DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE = 3 # Occlusion sensors dry self-test state - DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE = 4 # Pressure sensor setup state. - DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE = 5 # Venous pressure sensor dry self-test setup valves and pump state - DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS = 6 # Venous pressure sensor dry self-test - DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL_SETUP_STATE = 7 # Arterial pressure sensor dry self-test setup valves and pump state - DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL = 8 # Arterial pressure sensor dry self-test - DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE = 9 # Pressure sensors verify pressure loss state - DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE = 10 # Pressure sensors verify pressure stability state - DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 11 # Pressure sensors verify normal pressure readings state - DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 12 # Prime syringe pump state - DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE = 13 # Occlusion detection state - DRY_SELF_TESTS_STOPPED_STATE = 14 # Dry self-test stopped state - DRY_SELF_TESTS_COMPLETE_STATE = 15 # Dry self-test complete state - NUM_OF_DRY_SELF_TESTS_STATES = 16 # Number of dry self-tests states + DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE = 3 # Cartridge loaded check dry self-test state + DRY_SELF_TESTS_SYRINGE_PUMP_SEEK_STATE = 4 # Seek syringe pumps state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE = 5 # Pressure sensor setup state. + DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE = 6 # Venous pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS = 7 # Venous pressure sensor dry self-test + DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL_SETUP_STATE = 8 # Arterial pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL = 9 # Arterial pressure sensor dry self-test + DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE = 10 # Pressure sensors verify pressure loss state + DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE = 11 # Pressure sensors verify pressure stability state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 12 # Pressure sensors verify normal pressure readings state + DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 13 # Prime syringe pump state + DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE = 14 # Occlusion detection state + DRY_SELF_TESTS_STOPPED_STATE = 15 # Dry self-test stopped state + DRY_SELF_TESTS_COMPLETE_STATE = 16 # Dry self-test complete state + NUM_OF_DRY_SELF_TESTS_STATES = 17 # Number of dry self-tests states @unique -class PreTreatmentPrimeStates(DialinEnum): # HD_PRE_TREATMENT_PRIME_STATE: - HD_PRIME_WAIT_FOR_USER_START_STATE = 0 # Wait for user to start prime state - HD_PRIME_SALINE_SETUP_STATE = 1 # Saline setup state - HD_PRIME_SALINE_PURGE_AIR_STATE = 2 # Saline purge air state - HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 3 # Circulate blood circuit state - HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 4 # Wait for reservoir 1 fill complete - HD_PRIME_DIALYSATE_DIALYZER_STATE = 5 # Dialysate dialyzer fluid path state - HD_PRIME_SALINE_DIALYZER_SETUP_STATE = 6 # Saline dialyzer setup state - HD_PRIME_SALINE_DIALYZER_STATE = 7 # Saline dialyzer fluid path state - HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 8 # Wait for reservoir 2 fill complete - HD_PRIME_DIALYSATE_BYPASS_STATE = 9 # Dialysate bypass fluid path state - HD_PRIME_WET_SELF_TESTS_STATE = 10 # Perform wet self-tests after priming complete - HD_PRIME_PAUSE = 11 # Prime pause state, waits to be resumed - HD_PRIME_COMPLETE = 12 # Prime complete state - NUM_OF_HD_PRIME_STATES = 13 # Number of prime sub-mode states +class PreTreatmentPrimeStates(DialinEnum): + HD_PRIME_WAIT_FOR_USER_START_STATE = 0 # Wait for user to start prime state + HD_PRIME_SALINE_SETUP_STATE = 1 # Saline setup state + HD_PRIME_SALINE_PURGE_AIR_STATE = 2 # Saline purge air state + HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 3 # Circulate blood circuit state + HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 4 # Wait for reservoir 1 fill complete + HD_PRIME_DIALYSATE_DIALYZER_STATE = 5 # Dialysate dialyzer fluid path state + HD_PRIME_SALINE_DIALYZER_SETUP_STATE = 6 # Saline dialyzer setup state + HD_PRIME_SALINE_DIALYZER_STATE = 7 # Saline dialyzer fluid path state + HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 8 # Wait for reservoir 2 fill complete + HD_PRIME_DIALYSATE_BYPASS_STATE = 9 # Dialysate bypass fluid path state + HD_PRIME_WET_SELF_TESTS_STATE = 10 # Perform wet self-tests after priming complete + HD_PRIME_PAUSE = 11 # Prime pause state, waits to be resumed + HD_PRIME_COMPLETE = 12 # Prime complete state + NUM_OF_HD_PRIME_STATES = 13 # Number of prime sub-mode states @unique -class PreTreatmentPatientConnectionStates(DialinEnum): # HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE: - PATIENT_CONNECTION_STATE = 0 # Pre-treatment Patient Connection state. - NUM_OF_PATIENT_CONNECTION_STATES = 1 # Number of pre-treatment Patient Connection states. +class PreTreatmentRecircStates(DialinEnum): + PRE_TREATMENT_RECIRC_STATE = 0 # Pre-treatment recirculate state + PRE_TREATMENT_RECIRC_STOPPED_STATE = 1 # Pre-treatment recirculate stopped state + NUM_OF_PRE_TREATMENT_RECIRC_STATES = 2 # Number of pre-treatment recirculate states @unique +class TreatmentRecircStates(DialinEnum): + TREATMENT_RECIRC_DISCONNECT_PATIENT_STATE = 0 # Disconnect patient state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECIRC_STATE = 1 # Re-circulate Dialysate state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_STOPPED_STATE = 2 # Stopped state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECONNECT_PATIENT_STATE = 3 # Reconnect patient state of the treatment re-circulate sub-mode state machine + NUM_OF_TREATMENT_RECIRC_STATES = 4 # Number of treatment re-circulate sub-mode states + + +@unique +class PreTreatmentPatientConnectionStates(DialinEnum): + PRE_TREATMENT_PAT_CONN_WAIT_FOR_UF_VOL_STATE = 0 # Pre-treatment patient connect wait for UF volume setting state + PRE_TREATMENT_PAT_CONN_WAIT_FOR_DLZR_INVERT_STATE = 1 # Pre-treatment patient connect wait for dialyzer inverted state + PRE_TREATMENT_PAT_CONN_WAIT_FOR_USER_CONFIRM_STATE = 2 # Pre-treatment patient connect wait for user confirm state + PRE_TREATMENT_PAT_CONN_WAIT_FOR_TREATMENT_START_STATE = 3 # Pre-treatment patient connect wait for treatment start state + NUM_OF_PRE_TREATMENT_PAT_CONN_STATES = 4 # Number of pre-treatment patient connect states + + +@unique class TreatmentParametersStates(DialinEnum): HD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_SEND = 0 # Wait for UI to send treatment params mode state HD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_CONFIRM = 1 # Wait for UI to confirm treatment params mode state @@ -260,21 +270,18 @@ TREATMENT_END_STATE = 6 # Dialysis has ended. Blood pump slowed. Dialyzer is bypassed. Dialysate is recirculated. User can rinseback NUM_OF_TREATMENT_STATES = 7 # Number of treatment states (sub-modes) - @unique class TreatmentBloodPrimeStates(DialinEnum): BLOOD_PRIME_RAMP_STATE = 0 # Ramp state of the blood prime sub-mode state machine NUM_OF_BLOOD_PRIME_STATES = 1 # Number of blood prime sub-mode states - @unique class TreatmentDialysisStates(DialinEnum): - DIALYSIS_START_STATE = 0 # Start state of the dialysis sub-mode state machine + DIALYSIS_START_STATE = 0 # Start state of dialysis sub-mode state machine DIALYSIS_UF_STATE = 1 # Ultrafiltration state of the dialysis sub-mode state machine DIALYSIS_SALINE_BOLUS_STATE = 2 # Saline bolus state of the dialysis sub-mode state machine NUM_OF_DIALYSIS_STATES = 3 # Number of dialysis sub-mode states - @unique class TreatmentStopStates(DialinEnum): TREATMENT_STOP_RECIRC_STATE = 0 # Dialysate and Blood re-circulation state of the treatment stop sub-mode state machine @@ -283,37 +290,37 @@ TREATMENT_STOP_NO_RECIRC_STATE = 3 # No re-circulation state of the treatment stop sub-mode state machine NUM_OF_TREATMENT_STOP_STATES = 4 # Number of treatment stop sub-mode states - @unique class TreatmentRinsebackStates(DialinEnum): RINSEBACK_STOP_INIT_STATE = 0 # Start state (stopped) of the rinseback sub-mode state machine RINSEBACK_RUN_STATE = 1 # Rinseback running state of the rinseback sub-mode state machine RINSEBACK_PAUSED_STATE = 2 # Rinseback paused state of the rinseback sub-mode state machine RINSEBACK_STOP_STATE = 3 # Rinseback stopped (done) state of the rinseback sub-mode state machine RINSEBACK_RUN_ADDITIONAL_STATE = 4 # Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine - NUM_OF_RINSEBACK_STATES = 5 # Number of rinseback sub-mode states + RINSEBACK_RECONNECT_PATIENT_STATE = 5 # Rinseback reconnect patient state of the rinseback sub-mode state machine + NUM_OF_RINSEBACK_STATES = 6 # Number of rinseback sub-mode states - @unique class TreatmentRecircStates(DialinEnum): - TREATMENT_RECIRC_RECIRC_STATE = 0 # Re-circulate Dialysate state of the treatment re-circulate sub-mode state machine - TREATMENT_RECIRC_STOPPED_STATE = 1 # Stopped state of the treatment re-circulate sub-mode state machine - NUM_OF_TREATMENT_RECIRC_STATES = 2 # Number of treatment re-circulate sub-mode states + TREATMENT_RECIRC_DISCONNECT_PATIENT_STATE = 0 # Disconnect patient state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECIRC_STATE = 1 # Re-circulate Dialysate state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_STOPPED_STATE = 2 # Stopped state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECONNECT_PATIENT_STATE = 3 # Reconnect patient state of the treatment re-circulate sub-mode state machine + NUM_OF_TREATMENT_RECIRC_STATES = 4 # Number of treatment re-circulate sub-mode states - @unique class TreatmentEndStates(DialinEnum): TREATMENT_END_WAIT_FOR_RINSEBACK_STATE = 0 # Wait for rinseback state of the treatment end sub-mode state machine TREATMENT_END_PAUSED_STATE = 1 # Paused state of the treatment end sub-mode state machine NUM_OF_TREATMENT_END_STATES = 2 # Number of treatment end sub-mode states - @unique class HDFaultStates(DialinEnum): HD_FAULT_STATE_START = 0 # Start fault state - NUM_OF_HD_FAULT_STATES = 1 # Number of fault mode states + HD_FAULT_STATE_RUN_NV_POSTS = 1 # HD fault run NV posts state + HD_FAULT_STATE_COMPLETE = 2 # HD fault run complete state + NUM_OF_HD_FAULT_STATES = 3 # Number of fault mode states - @unique class HDEventList(DialinEnum): HD_EVENT_STARTUP = 0 # HD startup event @@ -335,9 +342,16 @@ HD_EVENT_RSRVR_2_LOAD_CELL_START_VALUES = 16 # HD reservoir 2 load cells start values HD_EVENT_RSRVR_2_LOAD_CELL_END_VALUES = 17 # HD reservoir 2 load cells end values HD_EVENT_SUB_STATE_CHANGE = 18 # HD Op sub-state change event - NUM_OF_EVENT_IDS = 19 # Total number of HD events + HD_EVENT_SYRINGE_PUMP_STATE = 19 # HD syringe pump state change event + HD_EVENT_OCCLUSION_BASELINE = 20 # HD event occlusion baseline event + HD_EVENT_RSRVR_UF_VOLUME_AND_TIME = 21 # HD ultrafiltration volume and time for a reservoir use + HD_EVENT_RSRVR_UF_RATE = 22 # HD ultrafiltration measured and expected rates + HD_EVENT_OPERATION_STATUS = 23 # HD operation status event. + HD_EVENT_AIR_TRAP_FILL = 24 # HD initiated an air trap fill (opened VBT briefly). + HD_EVENT_AIR_PUMP_ON_OFF = 25 # HD turned air pump on or off. + HD_EVENT_BLOOD_LEAK_SELF_TEST_RESULT = 26 # HD Blood leak self test result. + NUM_OF_EVENT_IDS = 27 # Total number of HD events - @unique class HDEventDataType(DialinEnum): EVENT_DATA_TYPE_NONE = 0 @@ -349,10 +363,9 @@ @unique class UFStates(DialinEnum): - UF_START_STATE = 0 # Start state of the ultrafiltration state machine - UF_PAUSED_STATE = 1 # Paused state of the ultrafiltration state machine - UF_RUNNING_STATE = 2 # Running state of the ultrafiltration state machine - NUM_OF_UF_STATES = 3 # Number of ultrafiltration states + UF_PAUSED_STATE = 0 # Paused state of the ultrafiltration state machine + UF_RUNNING_STATE = 1 # Running state of the ultrafiltration state machine + NUM_OF_UF_STATES = 2 # Number of ultrafiltration states @unique class SalineBolusStates(DialinEnum): @@ -375,16 +388,25 @@ TREATMENT_PARAM_HEPARIN_TYPE = 8 TREATMENT_PARAM_BLOOD_PRESSURE_MEAS_INTERVAL_MIN = 9 TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN = 10 - TREATMENT_PARAM_ARTERIAL_PRESSURE_LOW_LIMIT_MMHG = 11 - TREATMENT_PARAM_ARTERIAL_PRESSURE_HIGH_LIMIT_MMHG = 12 - TREATMENT_PARAM_VENOUS_PRESSURE_LOW_LIMIT_MMHG = 13 - TREATMENT_PARAM_VENOUS_PRESSURE_HIGH_LIMIT_MMHG = 14 - TREATMENT_PARAM_HEPARIN_DISPENSE_RATE_ML_HR = 15 - TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME_ML = 16 - TREATMENT_PARAM_DIALYSATE_TEMPERATURE_C = 17 -# TBD!!! TREATMENT_PARAM_UF_VOLUME_L = 18 + TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW = 11 + TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW = 12 + TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC = 13 + TREATMENT_PARAM_HEPARIN_DISPENSE_RATE_ML_HR = 14 + TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME_ML = 15 + TREATMENT_PARAM_DIALYSATE_TEMPERATURE_C = 16 + TREATMENT_PARAM_UF_VOLUME_L = 17 NUM_OF_TREATMENT_PARAMS = 18 +class Acid_Concentrates(DialinEnum): + ACID_CONC_TYPE_FRESENIUS_08_1251_1 = 0 + ACID_CONC_TYPE_FRESENIUS_08_2251_0 = 1 + ACID_CONC_TYPE_FRESENIUS_08_3251_9 = 2 + NUM_OF_ACID_CONC_TYPES = 3 + +class Bicarb_Concentrates(DialinEnum): + BICARB_CONC_TYPE_FRESENIUS_CENTRISOL = 0 + NUM_OF_BICARB_CONC_TYPES = 1 + @unique class PowerOffCommands(DialinEnum): """ Index: dialin/common/msg_defs.py =================================================================== diff -u -rd3a22e97fad0b715b1e9fba138236334ae7dbb6d -rbea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5 --- dialin/common/msg_defs.py (.../msg_defs.py) (revision d3a22e97fad0b715b1e9fba138236334ae7dbb6d) +++ dialin/common/msg_defs.py (.../msg_defs.py) (revision bea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5) @@ -7,8 +7,8 @@ # # @file msg_defs.py # -# @author (last) Dara Navaei -# @date (last) 22-Dec-2022 +# @author (last) Micahel Garthwaite +# @date (last) 17-Aug-2023 # @author (original) Peter Lucia # @date (original) 07-Aug-2020 # @@ -36,25 +36,25 @@ ACK_NOT_REQUIRED = [ - MsgIds.MSG_ID_ALARM_STATUS.value, + MsgIds.MSG_ID_ALARM_STATUS_DATA.value, MsgIds.MSG_ID_ALARM_TRIGGERED.value, MsgIds.MSG_ID_ALARM_CLEARED.value, MsgIds.MSG_ID_BLOOD_FLOW_DATA.value, MsgIds.MSG_ID_DIALYSATE_FLOW_DATA.value, MsgIds.MSG_ID_PRESSURE_OCCLUSION_DATA.value, - MsgIds.MSG_ID_RTC_EPOCH.value, + MsgIds.MSG_ID_RTC_EPOCH_DATA.value, MsgIds.MSG_ID_DIALYSATE_OUT_FLOW_DATA.value, - MsgIds.MSG_ID_LOAD_CELL_READINGS.value, - MsgIds.MSG_ID_TREATMENT_TIME.value, - MsgIds.MSG_ID_POWER_OFF_IMMINENT.value, - MsgIds.MSG_ID_TREATMENT_STATE.value, + MsgIds.MSG_ID_LOAD_CELL_READINGS_DATA.value, + MsgIds.MSG_ID_TREATMENT_TIME_DATA.value, + MsgIds.MSG_ID_POWER_OFF_WARNING.value, + MsgIds.MSG_ID_TREATMENT_STATE_DATA.value, MsgIds.MSG_ID_RO_PUMP_DATA.value, MsgIds.MSG_ID_DG_PRESSURES_DATA.value, MsgIds.MSG_ID_DRAIN_PUMP_DATA.value, - MsgIds.MSG_ID_HD_OP_MODE.value, - MsgIds.MSG_ID_DG_OP_MODE.value, + MsgIds.MSG_ID_HD_OP_MODE_DATA.value, + MsgIds.MSG_ID_DG_OP_MODE_DATA.value, MsgIds.MSG_ID_DG_RESERVOIRS_DATA.value, - MsgIds.MSG_ID_DG_VALVES_STATES.value, + MsgIds.MSG_ID_DG_VALVES_STATES_DATA.value, MsgIds.MSG_ID_DG_HEATERS_DATA.value, MsgIds.MSG_ID_DG_TEMPERATURE_DATA.value, MsgIds.MSG_ID_SALINE_BOLUS_DATA.value, @@ -71,23 +71,22 @@ MsgIds.MSG_ID_DG_THERMISTORS_DATA.value, MsgIds.MSG_ID_DG_FANS_DATA.value, MsgIds.MSG_ID_HD_TREATMENT_STOP_TIMER_DATA.value, - MsgIds.MSG_ID_HD_HEPARIN_DATA_BROADCAST.value, + MsgIds.MSG_ID_HD_HEPARIN_DATA.value, MsgIds.MSG_ID_HD_RINSEBACK_PROGRESS.value, - MsgIds.MSG_ID_HD_BLOOD_PRIME_PROGRESS.value, - MsgIds.MSG_ID_HD_RECIRC_PROGRESS.value, - MsgIds.MSG_ID_PRE_TREATMENT_STATE.value, - MsgIds.MSG_ID_DG_FILTER_FLUSH_PROGRESS.value, - MsgIds.MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS.value, - MsgIds.MSG_ID_HD_DRY_SELF_TEST_PROGRESS.value, + MsgIds.MSG_ID_HD_BLOOD_PRIME_PROGRESS_DATA.value, + MsgIds.MSG_ID_HD_RECIRC_PROGRESS_DATA.value, + MsgIds.MSG_ID_PRE_TREATMENT_STATE_DATA.value, + MsgIds.MSG_ID_DG_FILTER_FLUSH_PROGRESS_DATA.value, + MsgIds.MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS_DATA.value, + MsgIds.MSG_ID_HD_DRY_SELF_TEST_PROGRESS_DATA.value, MsgIds.MSG_ID_HD_SYRINGE_PUMP_DATA.value, - MsgIds.MSG_ID_HD_FLUID_LEAK_STATE.value, - MsgIds.MSG_ID_DG_FLUID_LEAK_STATE.value, + MsgIds.MSG_ID_HD_FLUID_LEAK_STATE_DATA.value, + MsgIds.MSG_ID_DG_FLUID_LEAK_STATE_DATA.value, MsgIds.MSG_ID_HD_BLOOD_LEAK_DATA.value, - MsgIds.MSG_ID_HD_POST_TREATMENT_STATE.value, + MsgIds.MSG_ID_HD_POST_TREATMENT_STATE_DATA.value, MsgIds.MSG_ID_DG_FLUSH_DATA.value, MsgIds.MSG_ID_HD_VOLTAGES_DATA.value, - MsgIds.MSG_ID_HD_ALARM_INFORMATION.value, - MsgIds.MSG_ID_HD_DISINFECT_STANDBY_DATA.value, + MsgIds.MSG_ID_HD_ALARM_INFORMATION_DATA.value, MsgIds.MSG_ID_DG_HEAT_DISINFECT_TIME_DATA.value, MsgIds.MSG_ID_DG_CHEM_DISINFECT_TIME_DATA.value, MsgIds.MSG_ID_DG_VOLTAGES_DATA.value, @@ -97,9 +96,11 @@ MsgIds.MSG_ID_DG_SWITCHES_DATA.value, MsgIds.MSG_ID_HD_SWITCHES_DATA.value, MsgIds.MSG_ID_HD_FANS_DATA.value, - MsgIds.MSG_ID_DG_ALARM_INFO.value, + MsgIds.MSG_ID_DG_ALARM_INFO_DATA.value, MsgIds.MSG_ID_HD_RESERVOIRS_DATA.value, - MsgIds.MSG_ID_DG_CPLD_STATUS.value + MsgIds.MSG_ID_DG_CPLD_STATUS_DATA.value, + MsgIds.MSG_ID_DG_DIALIN_CHECK_IN.value, + MsgIds.MSG_ID_HD_DIALIN_CHECK_IN.value ] @@ -133,13 +134,37 @@ REQUEST_REJECT_REASON_INVALID_COMMAND = 25 REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED = 26 REQUEST_REJECT_REASON_RINSEBACK_MAX_VOLUME_REACHED = 27 - REQUEST_REJECT_REASON_UF_VOLUME_NOT_SET = 28 + REQUEST_REJECT_REASON_DIALYZER_NOT_INVERTED = 28 REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM = 29 REQUEST_REJECT_REASON_HEPARIN_PAUSE_INVALID_IN_THIS_STATE = 30 REQUEST_REJECT_REASON_HEPARIN_NOT_PAUSED = 31 REQUEST_REJECT_REASON_DG_COMM_LOST = 32 REQUEST_REJECT_REASON_DRAIN_NOT_COMPLETE = 33 - NUM_OF_REQUEST_REJECT_REASONS = 34 + REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE = 34 + REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT = 35 + REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME = 36 + REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS = 37 + REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED = 38 + REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED = 39 + REQUEST_REJECT_REASON_RESERVOIR_ONE_IS_NOT_READY = 40 + REQUEST_REJECT_REASON_PUMP_TRACK_NOT_CLOSED = 41 + REQUEST_REJECT_REASON_DOOR_NOT_CLOSED = 42 + REQUEST_REJECT_REASON_SYRINGE_NOT_PRESENT = 43 + REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN = 44 + REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN = 45 + REQUEST_REJECT_REASON_DG_DISINFECT_HAS_BEEN_EXPIRED = 46 + REQUEST_REJECT_REASON_DG_SERVICE_IS_DUE = 47 + REQUEST_REJECT_REASON_HD_SERVICE_IS_DUE = 48 + REQUEST_REJECT_REASON_DG_CHEM_FLUSH_NOT_COMPLETED = 49 + REQUEST_REJECT_REASON_DG_RO_FILTER_TEMPERATURE_OUT_OF_RANGE = 50 + REQUEST_REJECT_REASON_DG_INCOMPATIBLE = 51 + REQUEST_REJECT_REASON_HEPARIN_PRESTOP_WITH_NO_DISPENSE = 52 + REQUEST_REJECT_REASON_DIALYZER_REPRIME_IN_PROGRESS = 53 + REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_DG_BUSY = 54 + REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_INVALID_PARAMETER = 55 + REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_INVALID_PAYLOAD_LENGTH = 56 + REQUEST_REJECT_REASON_TREATMENT_CANNOT_BE_RESUMED = 57 + NUM_OF_REQUEST_REJECT_REASONS = 58 class MsgFieldPositions: Index: dialin/common/msg_ids.py =================================================================== diff -u -rd3a22e97fad0b715b1e9fba138236334ae7dbb6d -rbea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision d3a22e97fad0b715b1e9fba138236334ae7dbb6d) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision bea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5) @@ -7,8 +7,8 @@ # # @file msg_ids.py # -# @author (last) Dara Navaei -# @date (last) 11-Jan-2023 +# @author (last) Micahel Garthwaite +# @date (last) 29-Aug-2023 # @author (original) Peter Lucia # @date (original) 06-Apr-2021 # @@ -21,70 +21,70 @@ @unique class MsgIds(DialinEnum): MSG_ID_UNUSED = 0x0 - MSG_ID_POWER_OFF = 0x1 - MSG_ID_ALARM_STATUS = 0x2 + MSG_ID_OFF_BUTTON_PRESS_REQUEST = 0x1 + MSG_ID_ALARM_STATUS_DATA = 0x2 MSG_ID_ALARM_TRIGGERED = 0x3 MSG_ID_ALARM_CLEARED = 0x4 MSG_ID_BLOOD_FLOW_DATA = 0x5 - MSG_ID_DG_CHECK_IN = 0x6 + MSG_ID_UI_POST_TX_NEXT_REQUEST = 0x6 MSG_ID_UI_CHECK_IN = 0x7 MSG_ID_DIALYSATE_FLOW_DATA = 0x8 MSG_ID_PRESSURE_OCCLUSION_DATA = 0x9 - MSG_ID_RTC_EPOCH = 0xA + MSG_ID_RTC_EPOCH_DATA = 0xA MSG_ID_DIALYSATE_OUT_FLOW_DATA = 0xB - MSG_ID_LOAD_CELL_READINGS = 0xC - MSG_ID_TREATMENT_TIME = 0xD - MSG_ID_POWER_OFF_IMMINENT = 0xE - MSG_ID_TREATMENT_STATE = 0xF + MSG_ID_LOAD_CELL_READINGS_DATA = 0xC + MSG_ID_TREATMENT_TIME_DATA = 0xD + MSG_ID_POWER_OFF_WARNING = 0xE + MSG_ID_TREATMENT_STATE_DATA = 0xF MSG_ID_USER_UF_PAUSE_RESUME_REQUEST = 0x10 MSG_ID_USER_UF_SETTINGS_CHANGE_REQUEST = 0x11 MSG_ID_USER_SALINE_BOLUS_REQUEST = 0x12 MSG_ID_USER_UF_SETTINGS_CHANGE_RESPONSE = 0x13 MSG_ID_USER_SALINE_BOLUS_RESPONSE = 0x14 - MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE = 0x15 + MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE_REQUEST = 0x15 MSG_ID_USER_TREATMENT_TIME_CHANGE_REQUEST = 0x16 MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_REQUEST = 0x17 MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_RESPONSE = 0x18 MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS = 0x19 - MSG_ID_TREATMENT_PARAM_CHANGE_RANGES = 0x1A + MSG_ID_TREATMENT_PARAM_CHANGE_RANGES_DATA = 0x1A MSG_ID_USER_TREATMENT_TIME_CHANGE_RESPONSE = 0x1B - MSG_ID_REQUEST_FW_VERSIONS = 0x1C - MSG_ID_HD_VERSION = 0x1D - MSG_ID_DG_VERSION = 0x1E + MSG_ID_FW_VERSIONS_REQUEST = 0x1C + MSG_ID_HD_VERSION_REPONSE = 0x1D + MSG_ID_DG_VERSION_REPONSE = 0x1E MSG_ID_RO_PUMP_DATA = 0x1F MSG_ID_DG_PRESSURES_DATA = 0x20 - MSG_ID_DG_SWITCH_RESERVOIR_CMD = 0x21 - MSG_ID_DG_FILL_CMD = 0x22 - MSG_ID_DG_DRAIN_CMD = 0x23 + MSG_ID_DG_SWITCH_RESERVOIR_CMD_REQUEST = 0x21 + MSG_ID_DG_FILL_CMD_REQUEST = 0x22 + MSG_ID_DG_DRAIN_CMD_REQUEST = 0x23 MSG_ID_DRAIN_PUMP_DATA = 0x24 - MSG_ID_HD_OP_MODE = 0x25 - MSG_ID_STARTING_STOPPING_TREATMENT_CMD = 0x26 - MSG_ID_DG_OP_MODE = 0x27 + MSG_ID_HD_OP_MODE_DATA = 0x25 + MSG_ID_STARTING_STOPPING_TREATMENT_CMD_REQUEST = 0x26 + MSG_ID_DG_OP_MODE_DATA = 0x27 MSG_ID_DG_RESERVOIRS_DATA = 0x28 - MSG_ID_DG_SAMPLE_WATER_CMD = 0x29 - MSG_ID_DG_VALVES_STATES = 0x2A - MSG_ID_HD_START_STOP_TRIMMER_HEATER_CMD = 0x2B + MSG_ID_DG_SAMPLE_WATER_CMD_REQUEST = 0x29 + MSG_ID_DG_VALVES_STATES_DATA = 0x2A + MSG_ID_HD_START_STOP_TRIMMER_HEATER_CMD_REQUEST = 0x2B MSG_ID_DG_HEATERS_DATA = 0x2C MSG_ID_DG_TEMPERATURE_DATA = 0x2D MSG_ID_USER_UF_SETTINGS_CHANGE_CONFIRMATION_RESPONSE = 0x2E MSG_ID_SALINE_BOLUS_DATA = 0x2F - MSG_ID_DG_START_STOP_HEAT_DISINFECT = 0x30 + MSG_ID_DG_START_STOP_HEAT_DISINFECT_CMD_REQUEST = 0x30 MSG_ID_DG_CONDUCTIVITY_DATA = 0x31 - MSG_ID_USER_REQUEST_ALARM_SILENCE = 0x32 + MSG_ID_USER_ALARM_SILENCE_REQUEST = 0x32 MSG_ID_HD_ACCELEROMETER_DATA = 0x33 MSG_ID_DG_ACCELEROMETER_DATA = 0x34 - MSG_ID_UI_NEW_TREATMENT_PARAMS = 0x35 + MSG_ID_UI_NEW_TREATMENT_PARAMS_REQUEST = 0x35 MSG_ID_HD_NEW_TREATMENT_PARAMS_RESPONSE = 0x36 MSG_ID_DG_HEAT_DISINFECT_DATA = 0x37 MSG_ID_UI_INITIATE_TREATMENT_REQUEST = 0x38 MSG_ID_HD_INITIATE_TREATMENT_RESPONSE = 0x39 MSG_ID_HD_VALVES_DATA = 0x3A - MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS = 0x3B + MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS_REQUEST = 0x3B MSG_ID_UI_START_PRIME_REQUEST = 0x3C MSG_ID_HD_START_PRIME_RESPONSE = 0x3D MSG_ID_HD_AIR_TRAP_DATA = 0x3E MSG_ID_ALARM_CONDITION_CLEARED = 0x3F - MSG_ID_UI_ALARM_USER_ACTION = 0x40 + MSG_ID_UI_ALARM_USER_ACTION_REQUEST = 0x40 MSG_ID_USER_UF_PAUSE_RESUME_RESPONSE = 0x41 MSG_ID_DG_CONCENTRATE_PUMP_DATA = 0x42 MSG_ID_HD_PRIMING_STATUS_DATA = 0x43 @@ -94,73 +94,73 @@ MSG_ID_HD_PRESSURE_LIMITS_CHANGE_RESPONSE = 0x47 MSG_ID_DG_FANS_DATA = 0x48 MSG_ID_HD_TREATMENT_STOP_TIMER_DATA = 0x49 - MSG_ID_UI_PATIENT_DISCONNECTION_CONFIRM = 0x4A + MSG_ID_UI_PATIENT_DISCONNECTION_CONFIRM_REQUEST = 0x4A MSG_ID_UI_HEPARIN_PAUSE_RESUME_REQUEST = 0x4B MSG_ID_HD_HEPARIN_PAUSE_RESUME_RESPONSE = 0x4C - MSG_ID_HD_HEPARIN_DATA_BROADCAST = 0x4D - MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD = 0x4E - MSG_ID_UI_SET_UF_VOLUME_PARAMETER = 0x4F + MSG_ID_HD_HEPARIN_DATA = 0x4D + MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD_REQUEST = 0x4E + MSG_ID_UI_SET_UF_VOLUME_PARAMETER_REQUEST = 0x4F MSG_ID_HD_SET_UF_VOLUME_PARAMETER_RESPONSE = 0x50 MSG_ID_DG_COMMAND_RESPONSE = 0x51 - MSG_ID_UI_RINSEBACK_CMD = 0x52 + MSG_ID_UI_RINSEBACK_CMD_REQUEST = 0x52 MSG_ID_HD_RINSEBACK_CMD_RESPONSE = 0x53 - MSG_ID_UI_RECIRC_CMD = 0x54 + MSG_ID_UI_RECIRC_CMD_REQUEST = 0x54 MSG_ID_HD_RECIRC_CMD_RESPONSE = 0x55 MSG_ID_HD_RINSEBACK_PROGRESS = 0x56 - MSG_ID_UI_TX_END_CMD = 0x57 + MSG_ID_UI_TX_END_CMD_REQUEST = 0x57 MSG_ID_HD_TX_END_CMD_RESPONSE = 0x58 - MSG_ID_HD_BLOOD_PRIME_PROGRESS = 0x59 - MSG_ID_HD_RECIRC_PROGRESS = 0x5A - MSG_ID_DG_CHANGE_VALVE_SETTING_CMD = 0x5B - MSG_ID_PRE_TREATMENT_STATE = 0x5C - MSG_ID_UI_SAMPLE_WATER_CMD = 0x5D + MSG_ID_HD_BLOOD_PRIME_PROGRESS_DATA = 0x59 + MSG_ID_HD_RECIRC_PROGRESS_DATA = 0x5A + MSG_ID_DG_CHANGE_VALVE_SETTING_CMD_REQUEST = 0x5B + MSG_ID_PRE_TREATMENT_STATE_DATA = 0x5C + MSG_ID_UI_SAMPLE_WATER_CMD_REQUEST = 0x5D MSG_ID_HD_SAMPLE_WATER_CMD_RESPONSE = 0x5E MSG_ID_UI_SAMPLE_WATER_RESULT = 0x5F - MSG_ID_DG_FILTER_FLUSH_PROGRESS = 0x60 - MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS = 0x61 - MSG_ID_UI_INSTALLATION_CONFIRM = 0x62 - MSG_ID_HD_DRY_SELF_TEST_PROGRESS = 0x63 + MSG_ID_DG_FILTER_FLUSH_PROGRESS_DATA = 0x60 + MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS_DATA = 0x61 + MSG_ID_UI_INSTALLATION_CONFIRM_REQUEST = 0x62 + MSG_ID_HD_DRY_SELF_TEST_PROGRESS_DATA = 0x63 MSG_ID_UI_PATIENT_CONNECTION_BEGIN_REQUEST = 0x64 MSG_ID_HD_PATIENT_CONNECTION_BEGIN_RESPONSE = 0x65 - MSG_ID_UI_PATIENT_CONNECTION_CONFIRM = 0x66 + MSG_ID_UI_PATIENT_CONNECTION_CONFIRM_REQUEST = 0x66 MSG_ID_HD_PATIENT_CONNECTION_CONFIRM_RESPONSE = 0x67 - MSG_ID_UI_CONSUMABLE_INSTALL_CONFIRM = 0x68 + MSG_ID_UI_CONSUMABLE_INSTALL_CONFIRM_REQUEST = 0x68 MSG_ID_HD_SYRINGE_PUMP_DATA = 0x69 - MSG_ID_HD_FLUID_LEAK_STATE = 0x6A - MSG_ID_DG_FLUID_LEAK_STATE = 0x6B + MSG_ID_HD_FLUID_LEAK_STATE_DATA = 0x6A + MSG_ID_DG_FLUID_LEAK_STATE_DATA = 0x6B MSG_ID_HD_BLOOD_LEAK_DATA = 0x6C MSG_ID_UI_HD_SET_RTC_REQUEST = 0x6D MSG_ID_HD_UI_SET_RTC_RESPONSE = 0x6E MSG_ID_UI_DG_SET_RTC_REQUEST = 0x6F MSG_ID_DG_UI_SET_RTC_RESPONSE = 0x70 MSG_ID_UI_START_TREATMENT_REQUEST = 0x71 MSG_ID_HD_START_TREATMENT_RESPONSE = 0x72 - MSG_ID_UI_DISPOSABLE_REMOVAL_CONFIRM = 0x73 + MSG_ID_UI_DISPOSABLE_REMOVAL_CONFIRM_REQUEST = 0x73 MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM_RESPONSE = 0x74 MSG_ID_UI_TREATMENT_LOG_DATA_REQUEST = 0x75 MSG_ID_HD_TREATMENT_LOG_DATA_RESPONSE = 0x76 - MSG_ID_HD_POST_TREATMENT_STATE = 0x77 + MSG_ID_HD_POST_TREATMENT_STATE_DATA = 0x77 MSG_ID_DG_START_STOP_CHEM_DISINFECT = 0x78 - MSG_ID_DG_START_STOP_FLUSH = 0x79 + MSG_ID_DG_START_STOP_FLUSH_CMD_REQUEST = 0x79 MSG_ID_DG_FLUSH_DATA = 0x7A MSG_ID_HD_VOLTAGES_DATA = 0x7B MSG_ID_HD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0x7C - MSG_ID_HD_ALARM_INFORMATION = 0x7D - MSG_ID_HD_DISINFECT_STANDBY_DATA = 0x7E + MSG_ID_HD_ALARM_INFORMATION_DATA = 0x7D + MSG_ID_HD_POST_TX_NEXT_CMD_RESPONSE = 0x7E MSG_ID_UI_DISINFECT_REQUEST = 0x7F MSG_ID_HD_DISINFECT_RESPONSE = 0x80 - MSG_ID_UI_CHEM_DISINFECT_CONFIRM = 0x81 - MSG_ID_HD_CHEM_DISINFECT_CONFIRM_RESPONSE = 0x82 - MSG_ID_DG_FLUSH_TIME_DATA = 0x83 + MSG_ID_DG_SEND_SERVICE_SCHEDULE_DATA_TO_HD = 0x81 + MSG_ID_HD_REQUEST_SERVICE_RECORD_FROM_HD = 0x82 + MSG_ID_MSG_AVAILABLE_4 = 0x83 MSG_ID_DG_HEAT_DISINFECT_TIME_DATA = 0x84 MSG_ID_DG_CHEM_DISINFECT_TIME_DATA = 0x85 MSG_ID_DG_VOLTAGES_DATA = 0x86 MSG_ID_DG_CHEM_DISINFECT_DATA = 0x87 - MSG_ID_DG_SERIAL_NUMBER = 0x88 - MSG_ID_UI_REQUEST_SERVICE_INFO = 0x89 + MSG_ID_DG_SERIAL_NUMBER_RESPONSE = 0x88 + MSG_ID_UI_SERVICE_INFO_REQUEST = 0x89 MSG_ID_HD_SERVICE_SCHEDULE_DATA = 0x8A MSG_ID_HD_USAGE_DATA = 0x8B - MSG_ID_DG_SERVICE_SCHEDULE_DATA = 0x8C + MSG_ID_DG_SERVICE_SCHEDULE_DATA_TO_UI = 0x8C MSG_ID_DG_USAGE_DATA = 0x8D MSG_ID_HD_POST_SINGLE_TEST_RESULT = 0x8E MSG_ID_HD_POST_FINAL_TEST_RESULT = 0x8F @@ -173,53 +173,59 @@ MSG_ID_HD_TREATMENT_LOG_EVENT = 0x96 MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST = 0x97 MSG_ID_HD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE = 0x98 - MSG_ID_HD_SERIAL_NUMBER = 0x99 + MSG_ID_HD_SERIAL_NUMBER_RESPONSE = 0x99 MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST = 0x9A MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_RESPONSE = 0x9B MSG_ID_HD_DG_POST_RESULT_REQUEST = 0x9C MSG_ID_HD_TEMPERATURES_DATA = 0x9D MSG_ID_HD_UI_VERSION_INFO_REQUEST = 0x9E - MSG_ID_HD_UI_VERSION_INFO_RESPONSE = 0x9F - MSG_ID_REQUEST_HD_USAGE_INFO = 0xA0 + MSG_ID_UI_VERSION_INFO_RESPONSE = 0x9F + MSG_ID_HD_USAGE_INFO_REQUEST = 0xA0 MSG_ID_DG_SWITCHES_DATA = 0xA1 MSG_ID_HD_SWITCHES_DATA = 0xA2 MSG_ID_HD_FANS_DATA = 0xA3 MSG_ID_HD_EVENT = 0xA4 MSG_ID_DG_EVENT = 0xA5 - MSG_ID_HD_SET_SERVICE_TIME = 0xA6 - MSG_ID_DG_ALARM_INFO = 0xA7 + MSG_ID_HD_SET_SERVICE_TIME_REQUEST = 0xA6 + MSG_ID_DG_ALARM_INFO_DATA = 0xA7 MSG_ID_HD_RESERVOIRS_DATA = 0xA8 - MSG_ID_HD_REQUEST_DG_CONCENTRATE_MIXING_RATIOS = 0xA9 + MSG_ID_HD_DG_CONCENTRATE_MIXING_RATIOS_REQUEST = 0xA9 MSG_ID_DG_CONCENTRATE_MIXING_RATIOS_DATA = 0xAA MSG_ID_DG_SCHEDULED_RUNS_DATA = 0xAB - MSG_ID_DG_SET_SERVICE_TIME = 0xAC + MSG_ID_DG_SET_SERVICE_TIME_REQUEST = 0xAC MSG_ID_UI_INSTALLATION_CONFIRM_RESPONSE = 0xAD MSG_ID_DG_FILL_MODE_DATA = 0xAE MSG_ID_DG_GEN_IDLE_DATA = 0xAF - MSG_ID_UI_REQUEST_SERVICE_MODE = 0xB0 + MSG_ID_UI_SERVICE_MODE_REQUEST = 0xB0 MSG_ID_HD_RESPONSE_SERVICE_MODE_REQUEST = 0xB1 MSG_ID_HD_REQUEST_UI_FINAL_POST_RESULT = 0xB2 MSG_ID_DG_FLOW_SENSORS_DATA = 0xB3 MSG_ID_DG_RESPONSE_SERVICE_MODE_REQUEST = 0xB4 - MSG_ID_HD_REQUEST_DG_ALARMS = 0xB5 - MSG_ID_HD_REQUEST_DG_SERVICE_MODE = 0xB6 - MSG_ID_DG_RTC_EPOCH = 0xB7 - MSG_ID_HD_REQUEST_DG_USAGE_INFO = 0xB8 - MSG_ID_HD_REQUEST_DG_SERVICE_RECORD = 0xB9 - MSG_ID_HD_REQUEST_UI_CONFIRMATION = 0xBA - MSG_ID_UI_CONFIRMATION_RESULT = 0xBB - MSG_ID_REQUEST_CPLD_STATUS = 0xBC - MSG_ID_DG_CPLD_STATUS = 0xBD + MSG_ID_HD_DG_ALARMS_REQUEST = 0xB5 + MSG_ID_HD_DG_SERVICE_MODE_REQUEST = 0xB6 + MSG_ID_DG_RTC_EPOCH_DATA = 0xB7 + MSG_ID_HD_DG_USAGE_INFO_REQUEST = 0xB8 + MSG_ID_MSG_AVAILABLE_9 = 0xB9 + MSG_ID_HD_UI_CONFIRMATION_REQUEST = 0xBA + MSG_ID_UI_CONFIRMATION_RESULT_RESPONSE = 0xBB + MSG_ID_UI_SET_DG_RO_MODE = 0xBC + MSG_ID_DG_CPLD_STATUS_DATA = 0xBD MSG_ID_HD_BATTERY_MANAGEMENT_DATA = 0xBE MSG_ID_HD_BATTERY_STATUS_DATA = 0xBF MSG_ID_DG_CHEM_DISINFECT_FLUSH_DATA = 0xC0 MSG_ID_DG_CHEM_DISINFECT_FLUSH_TIME_DATA = 0xC1 MSG_ID_DG_START_STOP_CHEM_DISINFECT_FLUSH = 0xC2 - MSG_ID_UI_CHEM_DISINFECT_FLUSH_CONFIRM = 0xC3 - MSG_ID_HD_CHEM_DISINFECT_FLUSH_CONFIRM_RESPONSE = 0xC4 + MSG_ID_DG_RO_ONLY_MODE_STATUS_REQUEST = 0xC3 + MSG_ID_DG_RO_ONLY_MODE_STATUS_RESPONSE = 0xC4 MSG_ID_DG_HEAT_DISINFECT_ACTIVE_COOL_DATA = 0xC5 MSG_ID_DG_START_STOP_HEAT_DISINFECT_ACTIVE_COOL = 0xC6 MSG_ID_HD_AIR_PUMP_DATA = 0xC7 + MSG_ID_HD_SEND_CHEM_FLUSH_SAMPLE_PASS_FAIL_TO_DG = 0xC8 + MSG_ID_DG_START_STOP_RO_PERMEATE_SAMPLE_MODE_CMD_REQUEST = 0xC9 + MSG_ID_DG_RO_PERMEATE_SAMPLE_DATA = 0xCA + MSG_ID_HD_SEND_RO_PERMEATE_SAMPLE_DISPENSE_REQUEST_TO_DG = 0xCB + MSG_ID_DG_SEND_RO_PERMEATE_SAMPLE_DISPENSE_READY_TO_HD = 0xCD + MSG_ID_DG_DRAIN_MODE_DATA = 0xCE MSG_ID_CAN_ERROR_COUNT = 0x999 @@ -249,7 +255,7 @@ MSG_ID_PRESSURE_ARTERIAL_OVERRIDE = 0x8017 MSG_ID_PRESSURE_VENOUS_OVERRIDE = 0x8018 MSG_ID_OCCLUSION_BLOOD_PUMP_OVERRIDE = 0x8019 - MSG_ID_BLOOD_PUMP_ROTOR_COUNT_OVERRIDE = 0x801A + MSG_ID_BLOOD_ROTOR_COUNT_OVERRIDE = 0x801A MSG_ID_HD_AIR_PUMP_SET_STATE = 0x801B MSG_ID_PRES_OCCL_SEND_INTERVAL_OVERRIDE = 0x801C MSG_ID_SET_RTC_DATE_TIME = 0x801D @@ -344,7 +350,7 @@ MSG_ID_HD_SYRINGE_PUMP_FORCE_SENSOR_DAC_CALIBRATE = 0x8077 MSG_ID_HD_STOP_RTC_CLOCK = 0x8078 MSG_ID_HD_FANS_DUTY_CYCLE_OVERRIDE = 0x8079 - MSG_ID_HD_HEPRIN_BOLUS_TARGET_RATE_OVERRIDE = 0x807A + MSG_ID_HD_SYRINGE_PUMP_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE = 0x807A MSG_ID_HD_REQ_CURRENT_TREATMENT_PARAMETERS = 0x807B MSG_ID_HD_RES_CURRENT_TREATMENT_PARAMETERS = 0x807C MSG_ID_HD_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0x807D @@ -358,8 +364,26 @@ MSG_ID_HD_BLOOD_PUMP_SET_PWM = 0x8085 MSG_ID_HD_DIAL_IN_SET_PWM = 0x8086 MSG_ID_HD_DIAL_OUT_SET_PWM = 0x8087 - MSG_ID_DIALYSATE_INLET_PUMP_ROTOR_COUNT_OVERRIDE = 0x8088 + MSG_ID_HD_DIALYSATE_INLET_PUMP_ROTOR_COUNT_OVERRIDE = 0x8088 MSG_ID_HD_NV_RECORD_CRC_OVERRIDE = 0x8089 + MSD_ID_HD_RTC_CTL_REG1_STATUS_OVERRIDE = 0x808A + MSD_ID_HD_RTC_CTL_REG3_STATUS_OVERRIDE = 0x808B + MSG_ID_HD_BATTERY_STATUS_OVERRIDE = 0x808C + MSG_ID_HD_BATTERY_CHARGER_STATUS_OVERRIDE = 0x808D + MSG_ID_HD_BATTERY_COMM_STATUS_OVERRIDE = 0x808E + MSG_ID_HD_DIAL_IN_PUMP_HARD_STOP = 0x808F + MSG_ID_HD_DIAL_OUT_PUMP_HARD_STOP = 0x8090 + MSG_ID_HD_BLOOD_PUMP_HARD_STOP = 0x8091 + MSG_ID_HD_DIALIN_CHECK_IN = 0x8092 + MSG_ID_HD_ENABLE_VENOUS_BUBBLE_ALARM_DETECTION = 0x8093 + MSG_ID_HD_GET_TEST_CONFIGURATION = 0x8094 + MSG_ID_HD_SEND_TEST_CONFIGURATION = 0x8095 + MSG_ID_HD_RESET_ALL_TEST_CONFIGURATIONS = 0x8096 + MSG_ID_HD_SET_TEST_CONFIGURATION = 0x8097 + MSG_ID_HD_SIGNAL_RECOVER_FROM_FAULT_MODE = 0x8098 + MSG_ID_HD_RAM_STATUS_OVERRIDE = 0x8099 + MSG_ID_HD_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE = 0x809A + MSG_ID_HD_CAN_RECEIVE_ACK_MESSAGE_OVERRIDE = 0x809B MSG_ID_DG_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001 @@ -375,7 +399,7 @@ MSG_ID_DRAIN_PUMP_SEND_INTERVAL_OVERRIDE = 0xA00C MSG_ID_LOAD_CELL_SEND_INTERVAL_OVERRIDE = 0xA00D MSG_ID_VALVE_STATE_OVERRIDE = 0xA00E - MSG_ID_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE = 0xA00F + MSG_ID_DG_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE = 0xA00F MSG_ID_TEMPERATURE_SENSORS_VALUE_OVERRIDE = 0xA010 MSG_ID_START_STOP_PRIMARY_HEATER = 0xA011 MSG_ID_TEMPERATURE_SENSORS_PUBLISH_INTERVAL_OVERRIDE = 0xA012 @@ -424,7 +448,7 @@ MSG_ID_DG_SEND_SCHEDULED_RUNS_RECORD = 0xA03E MSG_ID_DG_FLUID_LEAK_SEND_INTERVAL_OVERRIDE = 0xA03F MSG_ID_DG_FLUID_LEAK_STATE_DETECTOR_OVERRIDE = 0xA040 - MSG_ID_DG_FLUSH_PUBLISH_INTERVAL_OVERRIDE = 0xA041 + MSG_ID_MSG_AVAILABLE_11 = 0xA041 MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE = 0xA042 MSG_ID_DG_FANS_RPM_OVERRIDE = 0xA043 MSG_ID_FLOW_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA044 @@ -447,7 +471,7 @@ MSG_ID_DG_SEND_USAGE_INFO_RECORD = 0xA055 MSG_ID_DG_SET_OP_MODE_REQUEST = 0xA056 MSG_ID_DG_RESERVOIR_TARE_REQUEST = 0xA057 - MSG_ID_DG_CPLD_PUBLISH_INTERVAL_OVERRIDE = 0xA058 + MSG_ID_MSG_AVAILABLE_10 = 0xA058 MSG_ID_DG_DRAIN_PUMP_CURRENT_OVERRIDE = 0xA059 MSG_ID_DG_DRAIN_PUMP_DIRECTION_OVERRIDE = 0xA05A MSG_ID_DG_RO_FEEDBACK_VOLTAGE_OVERRIDE = 0xA05B @@ -457,6 +481,27 @@ MSG_ID_DG_CONC_PUMP_PARK_FAULT_STATUS_OVERRIDE = 0xA05F MSG_ID_DG_CONC_PUMP_PARK_COMMAND = 0xA060 MSG_ID_DG_HEATERS_DUTY_CYCLE_OVERRIDE = 0xA061 + MSD_ID_DG_RTC_CTL_REG1_STATUS_OVERRIDE = 0xA062 + MSD_ID_DG_RTC_CTL_REG3_STATUS_OVERRIDE = 0xA063 + MSG_ID_DG_NELSON_DISINFECT_SUPPORT = 0xA064 + MSG_ID_DG_SET_DIALYSATE_MIXING_RATIOS = 0xA065 + MSG_ID_DG_SET_TEST_CONFIGURATION = 0xA066 + MSG_ID_DG_GET_TEST_CONFIGURATION = 0xA067 + MSG_ID_DG_SEND_TEST_CONFIGURATION = 0xA068 + MSG_ID_DG_RESET_ALL_TEST_CONFIGURATIONS = 0xA069 + MSG_ID_DG_DIALIN_CHECK_IN = 0xA06A + MSG_ID_DG_GET_LOAD_CELLS_TARE_VALUES = 0xA06B + MSG_ID_DG_SET_LOAD_CELLS_TARE_VALUES = 0xA06C + MSG_ID_DG_SEND_LOAD_CELLS_TARE_VALUES = 0xA06D + MSG_ID_DG_SET_COND_SENSOR_CAL_TABLE = 0xA06E + MSG_ID_DG_SIGNAL_RECOVER_FROM_FAULT_MODE = 0xA06F + MSG_ID_DG_DRAIN_MODE_BROADCAST_INTERVAL_OVERRIDE = 0xA070 + MSG_ID_DG_DIALIN_RO_ONLY_MODE_STATUS_REQUEST = 0xA071 + MSG_ID_DG_RAM_STATUS_OVERRIDE = 0xA072 + MSG_ID_DG_CAN_RECEIVE_ACK_MESSAGE_OVERRIDE = 0xA073 + MSG_ID_DG_RESERVOIR_BROADCAST_INTERVAL_OVERRIDE = 0xA074 + MSG_ID_DG_STATE_TIMER_77C_OVERRIDE = 0xA075 + MSG_ID_DG_STATE_TIMER_82C_OVERRIDE = 0xA076 MSG_ID_HD_DEBUG_EVENT = 0xFFF1 MSG_ID_DG_DEBUG_EVENT = 0xFFF2 Index: dialin/ui/hd_simulator.py =================================================================== diff -u -rac368c6deb78514ddde757cd885eff812b73cd1a -rbea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5 --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision ac368c6deb78514ddde757cd885eff812b73cd1a) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision bea9ebd2e6dd6ba909a7431044059a9aeb4ea0b5) @@ -1732,14 +1732,15 @@ payload += integer_to_bytearray(max_dialysate_flow_rate) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, - message_id=MsgIds.MSG_ID_TREATMENT_PARAM_CHANGE_RANGES.value, + message_id=MsgIds.MSG_ID_TREATMENT_PARAM_CHANGE_RANGES_DATA.value, payload=payload) self.can_interface.send(message, 0) def cmd_set_treatment_blood_flow_rate(self, flow_set_pt: int, measured_flow: float, rot_speed: float, mot_speed: float, mc_speed: float, - mc_current: float, pwm: float, rotor_count: int) -> None: + mc_current: float, pwm: float, rotor_count: int, + presFlow: int, rotorHall: int) -> None: """ The Blood Flow Data message setter/sender method @@ -1755,6 +1756,8 @@ @param mc_current: (float) MC Current @param pwm: (float) PWM @param rotor_count: (int) Rotor Count + @param presFlow: (int) Prescribed Blood Flow + @param rotorHall: (int) RotorHall sensor @return: None """ @@ -1766,6 +1769,8 @@ payload += float_to_bytearray(mc_current) payload += float_to_bytearray(pwm) payload += integer_to_bytearray(rotor_count) + payload += integer_to_bytearray(presFlow) + payload += integer_to_bytearray(rotorHall) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_BLOOD_FLOW_DATA.value, @@ -1775,7 +1780,8 @@ def cmd_set_treatment_dialysate_flow_rate(self, flow_set_pt: int, measured_flow: float, rot_speed: float, mot_speed: float, mc_speed: float, - mc_current: float, pwm: float) -> None: + mc_current: float, pwm: float, rotor_count: int, + presFlow: int, rotorHall: int) -> None: """ The Dialysate Flow Data message setter/sender method @@ -1790,6 +1796,9 @@ @param mc_speed: (float) MC Speed @param mc_current: (float) MC Current @param pwm: (float) PWM + @param rotor_count: (int) Rotor Count + @param presFlow: (int) Prescribed Blood Flow + @param rotorHall: (int) RotorHall sensor @return: None """ @@ -1800,6 +1809,9 @@ payload += float_to_bytearray(mc_speed) payload += float_to_bytearray(mc_current) payload += float_to_bytearray(pwm) + payload += integer_to_bytearray(rotor_count) + payload += integer_to_bytearray(presFlow) + payload += integer_to_bytearray(rotorHall) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_DIALYSATE_FLOW_DATA.value, @@ -2035,14 +2047,16 @@ payload += integer_to_bytearray(sec_remain) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, - message_id=MsgIds.MSG_ID_TREATMENT_TIME.value, + message_id=MsgIds.MSG_ID_TREATMENT_TIME_DATA.value, payload=payload) self.can_interface.send(message, 0) def cmd_set_treatment_ultrafiltration_outlet_flow_data(self, ref_uf_vol: float, measured_uf_vol: float, rot_speed: float, mot_speed: float, mc_speed: float, - mc_current: float, pwm: float) -> None: + mc_current: float, pwm: float, corr_offset: float, + pump_calculated_rate: float, uf_calculated_rate: float, + rotor_hall: int ) -> None: """ the Outlet Flow Data message setter/sender method @@ -2057,6 +2071,10 @@ @param mc_speed: (float) MC Speed @param mc_current: (float) MC Current @param pwm: (float) PWM + @param corr_offset: correction offset for calculated DPo flow rate. + @param pump_calculated_rate: calculated DPo flow rate. + @param uf_calculated_rate: calculated UF rate. + @param rotor_hall: rotor hall sensor state (1=home, 0=not home) @return: none """ @@ -2067,6 +2085,10 @@ payload += float_to_bytearray(mc_speed) payload += float_to_bytearray(mc_current) payload += float_to_bytearray(pwm) + payload += corr_offset + payload += pump_calculated_rate + payload += uf_calculated_rate + payload += rotor_hall message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_DIALYSATE_OUT_FLOW_DATA.value, @@ -2075,8 +2097,9 @@ self.can_interface.send(message, 0) def cmd_set_pressure_occlusion_data(self, arterial_prs: float, venous_prs: float, blood_pump_occlusion: int, - dialysate_inlet_pump_occlusion: int, - dialysate_outlet_pump_occlusion: int) -> None: + pressure_limit_state: int, arterial_min_limt: int, arterial_max_limt: int, + venous_min_limit: int, venous_max_limit: int, arterial_long_filtered_pressure: float, + venous_long_filtered_pressure: float) -> None: """ the Pressure/Occlusion Data messages setter/sender method @@ -2087,16 +2110,26 @@ @param arterial_prs: (float) Arterial Pressure @param venous_prs: (float) Venous Pressure @param blood_pump_occlusion: (uint) Blood Pump Occlusion - @param dialysate_inlet_pump_occlusion: (uint) Dialysate Inlet Pump Occlusion - @param dialysate_outlet_pump_occlusion: (uint) Dialysate Outlet Pump Occlusion + @param : (uint) Current pressure limits state + @param : (int) Current arterial minimum pressure limit + @param : (int) Current arterial maximum pressure limit + @param : (int) Current venous minimum pressure limit + @param : (int) Current venous maximum pressure limit + @param : (float) Latest long filtered arterial pressure + @param : (float) Latest long filtered venous pressure @return: none """ payload = float_to_bytearray(arterial_prs) payload += float_to_bytearray(venous_prs) payload += integer_to_bytearray(blood_pump_occlusion) - payload += integer_to_bytearray(dialysate_inlet_pump_occlusion) - payload += integer_to_bytearray(dialysate_outlet_pump_occlusion) + payload += integer_to_bytearray(pressure_limit_state) + payload += integer_to_bytearray(arterial_min_limt) + payload += integer_to_bytearray(arterial_max_limt) + payload += integer_to_bytearray(venous_min_limit) + payload += integer_to_bytearray(venous_max_limit) + payload += float_to_bytearray(arterial_long_filtered_pressure) + payload += float_to_bytearray(venous_long_filtered_pressure) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_PRESSURE_OCCLUSION_DATA.value, @@ -2153,7 +2186,7 @@ payload += integer_to_bytearray(dialysis_state) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, - message_id=MsgIds.MSG_ID_TREATMENT_STATE.value, + message_id=MsgIds.MSG_ID_TREATMENT_STATE_DATA.value, payload=payload) self.can_interface.send(message, 0) @@ -2189,7 +2222,7 @@ payload += integer_to_bytearray(operation_sub_mode) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, - message_id=MsgIds.MSG_ID_HD_OP_MODE.value, + message_id=MsgIds.MSG_ID_HD_OP_MODE_DATA.value, payload=payload) self.can_interface.send(message, 0) @@ -2286,7 +2319,7 @@ payload += float_to_bytearray(required) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, - message_id=MsgIds.MSG_ID_HD_HEPARIN_DATA_BROADCAST.value, + message_id=MsgIds.MSG_ID_HD_HEPARIN_DATA.value, payload=payload) self.can_interface.send(message, 0) @@ -2312,8 +2345,9 @@ self.can_interface.send(message, 0) def cmd_send_treatment_adjust_pressures_limit_response(self, accepted: int, reason: int, - arterial_low: int, arterial_high: int, - venous_low: int, venous_high: int) -> None: + arterial_pressure_limit_window: int, + venous_pressure_limit_window: int, + venous_pressure_limit_asymmetric: int) -> None: """ the Blood/dialysate rate change Response message setter/sender method | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | #1:(U32) | #2:(U32) | #3:(S32) | #4:(S32) | #3:(S32) | #4:(S32) | @@ -2322,19 +2356,17 @@ @param accepted: (int) boolean accept/reject response @param reason: (int) rejection reason - @param arterial_low: (int) Arterial Pressure Limit Low (mmHg) - @param arterial_high: (int) Arterial Pressure Limit High (mmHg) - @param venous_low: (int) Venous Pressure Limit Low (mmHg) - @param venous_high: (int) Venous Pressure Limit High (mmHg) + @param arterial_pressure_limit_window: (int) Arterial Pressure Limit Low (mmHg) + @param venous_pressure_limit_window: (int) Venous Pressure Limit (mmHg) + @param venous_pressure_limit_asymmetric: (int) Venous Pressure Asymmetric Limit (mmHg) @return: none """ payload = integer_to_bytearray(accepted) payload += integer_to_bytearray(reason) - payload += integer_to_bytearray(arterial_low) - payload += integer_to_bytearray(arterial_high) - payload += integer_to_bytearray(venous_low) - payload += integer_to_bytearray(venous_high) + payload += integer_to_bytearray(arterial_pressure_limit_window) + payload += integer_to_bytearray(venous_pressure_limit_window) + payload += integer_to_bytearray(venous_pressure_limit_asymmetric) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, message_id=MsgIds.MSG_ID_HD_PRESSURE_LIMITS_CHANGE_RESPONSE.value, @@ -2409,7 +2441,7 @@ payload += integer_to_bytearray(timeout_count_down) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, - message_id=MsgIds.MSG_ID_HD_RECIRC_PROGRESS.value, + message_id=MsgIds.MSG_ID_HD_RECIRC_PROGRESS_DATA.value, payload=payload) self.can_interface.send(message, 0) @@ -2428,10 +2460,9 @@ payload = float_to_bytearray(target) payload += float_to_bytearray(current) - payload += float_to_bytearray(0) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, - message_id=MsgIds.MSG_ID_HD_BLOOD_PRIME_PROGRESS.value, + message_id=MsgIds.MSG_ID_HD_BLOOD_PRIME_PROGRESS_DATA.value, payload=payload) self.can_interface.send(message, 0) @@ -2672,7 +2703,7 @@ payload += integer_to_bytearray(pretreatment_rsrvr_state) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, - message_id=MsgIds.MSG_ID_PRE_TREATMENT_STATE.value, + message_id=MsgIds.MSG_ID_PRE_TREATMENT_STATE_DATA.value, payload=payload) self.can_interface.send(message, 0) @@ -2693,30 +2724,30 @@ self.can_interface.send(message, 0) - def cmd_send_pre_treatment_self_test_no_cartridge_progress_data(self, total: int, countdown: int) -> None: + def cmd_send_pre_treatment_self_test_no_cartridge_progress_data(self, timeout: int, countdown: int) -> None: """ send the pretreatment no cartridge self-tests progress data - @param total: (int) Total time in second + @param timeout: (int) timeout in seconds @param countdown: (int) count down time in second @return: None """ - payload = integer_to_bytearray(total) + payload = integer_to_bytearray(timeout) payload += integer_to_bytearray(countdown) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, - message_id=MsgIds.MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS.value, + message_id=MsgIds.MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS_DATA.value, payload=payload) self.can_interface.send(message, 0) - def cmd_send_pre_treatment_self_test_dry_progress_data(self, total: int, countdown: int) -> None: + def cmd_send_pre_treatment_self_test_dry_progress_data(self, timeout: int, countdown: int) -> None: """ send the pretreatment dry self-tests progress data - @param total: (int) Total time in second + @param timeout: (int) timeout time in seconds @param countdown: (int) count down time in second @return: None """ - payload = integer_to_bytearray(total) + payload = integer_to_bytearray(timeout) payload += integer_to_bytearray(countdown) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, @@ -2732,8 +2763,7 @@ @param countdown: (int) the remaining time in seconds @return: None """ - payload = bytearray() - payload += integer_to_bytearray(timeout) + payload = integer_to_bytearray(timeout) payload += integer_to_bytearray(countdown) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id,