Index: AlarmDefs.h =================================================================== diff -u -r43b6726f33d20bebb204f56d5b37d26d2d1bd3d7 -r74900728e3729be88f2581bb2ff03a978b6a46cb --- AlarmDefs.h (.../AlarmDefs.h) (revision 43b6726f33d20bebb204f56d5b37d26d2d1bd3d7) +++ AlarmDefs.h (.../AlarmDefs.h) (revision 74900728e3729be88f2581bb2ff03a978b6a46cb) @@ -7,8 +7,8 @@ * * @file AlarmDefs.h * -* @author (last) Varshini Nagabooshanam -* @date (last) 22-May-2026 +* @author (last) Michael Garthwaite +* @date (last) 09-Jun-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -221,19 +221,25 @@ 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_INVALID_TUBING_SET = 192, ///< TD invalid tubing set - ALARM_ID_TD_INSTALL_NEW_BLOOD_TUBING_SET = 193, ///< TD install new blood tubing set - ALARM_ID_TD_TUBING_SET_NOT_DETECTED = 194, ///< TD no tubing set detected - ALARM_ID_TD_TUBING_SET_AUTHENTICATION_TIMEOUT = 195, ///< TD tubing set authentication timeout - ALARM_ID_TD_PRESSURE_TOO_HIGH_TO_ZERO = 196, ///< TD pressure too high to zero - ALARM_ID_TD_VENOUS_PRESSURIZATION_TIMEOUT = 197, ///< TD venous pressurization timeout - ALARM_ID_TD_VENOUS_PRESSURE_DECAY = 198, ///< TD venous pressure decay failure - ALARM_ID_TD_VENOUS_PRESSURE_LEAK = 199, ///< TD venous pressure leak - ALARM_ID_TD_VENOUS_PRESSURE_RELIEF = 200, ///< TD venous pressure relief failure - ALARM_ID_TD_ARTERIAL_PRESSURIZATION_TIMEOUT = 201, ///< TD arterial pressurization timeout - ALARM_ID_TD_ARTERIAL_PRESSURE_DECAY = 202, ///< TD arterial pressure decay failure - ALARM_ID_TD_ARTERIAL_PRESSURE_LEAK = 203, ///< TD arterial pressure leak - ALARM_ID_TD_ARTERIAL_PRESSURE_RELIEF = 204, ///< TD arterial pressure relief failure + 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_INVALID_TUBING_SET = 198, ///< TD invalid tubing set + ALARM_ID_TD_INSTALL_NEW_BLOOD_TUBING_SET = 199, ///< TD install new blood tubing set + ALARM_ID_TD_TUBING_SET_NOT_DETECTED = 200, ///< TD no tubing set detected + ALARM_ID_TD_TUBING_SET_AUTHENTICATION_TIMEOUT = 201, ///< TD tubing set authentication timeout + ALARM_ID_TD_PRESSURE_TOO_HIGH_TO_ZERO = 202, ///< TD pressure too high to zero + ALARM_ID_TD_VENOUS_PRESSURIZATION_TIMEOUT = 203, ///< TD venous pressurization timeout + ALARM_ID_TD_VENOUS_PRESSURE_DECAY = 204, ///< TD venous pressure decay failure + ALARM_ID_TD_VENOUS_PRESSURE_LEAK = 205, ///< TD venous pressure leak + ALARM_ID_TD_VENOUS_PRESSURE_RELIEF = 206, ///< TD venous pressure relief failure + ALARM_ID_TD_ARTERIAL_PRESSURIZATION_TIMEOUT = 207, ///< TD arterial pressurization timeout + ALARM_ID_TD_ARTERIAL_PRESSURE_DECAY = 208, ///< TD arterial pressure decay failure + ALARM_ID_TD_ARTERIAL_PRESSURE_LEAK = 209, ///< TD arterial pressure leak + ALARM_ID_TD_ARTERIAL_PRESSURE_RELIEF = 210, ///< TD arterial pressure relief failure NUM_OF_ALARM_IDS ///< Number of alarms }; typedef enum Alarm_List ALARM_ID_T; ///< Type for alarm list enumeration @@ -572,6 +578,12 @@ { ALARM_PRIORITY_HIGH, 1, ALM_SRC_TD, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, ALARM_ID_TD_EJECTOR_POST_TEST_FAILED }, { ALARM_PRIORITY_HIGH, 110, ALM_SRC_TD, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_TD_AUTO_LOAD_EJECT_HIGH_BP_TORQUE }, { ALARM_PRIORITY_HIGH, 206, ALM_SRC_TD, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , ALARM_ID_TD_AIR_PUMP_STALL }, + { ALARM_PRIORITY_HIGH, 10, ALM_SRC_TD, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, ALARM_ID_TD_CPU_RAM_ERROR }, + { ALARM_PRIORITY_HIGH, 10, ALM_SRC_DD, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, ALARM_ID_DD_CPU_RAM_ERROR }, + { ALARM_PRIORITY_HIGH, 1, ALM_SRC_TD, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, ALARM_ID_TD_INTEGRITY_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 1, ALM_SRC_DD, FALSE, FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, ALARM_ID_DD_INTEGRITY_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 202, ALM_SRC_TD, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, ALARM_ID_TD_EMPTY_SALINE_BAG }, + { ALARM_PRIORITY_HIGH, 110, ALM_SRC_DD, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE }, { ALARM_PRIORITY_LOW, 717, ALM_SRC_TD, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_TD_INVALID_TUBING_SET }, { ALARM_PRIORITY_LOW, 718, ALM_SRC_TD, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_TD_INSTALL_NEW_BLOOD_TUBING_SET }, { ALARM_PRIORITY_LOW, 719, ALM_SRC_TD, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_TD_TUBING_SET_NOT_DETECTED }, @@ -615,6 +627,8 @@ { 1, ALARM_ID_DD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE }, { 1, ALARM_ID_DD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE }, { 1, ALARM_ID_TD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD }, + { 1, ALARM_ID_TD_INTEGRITY_POST_TEST_FAILED }, + { 1, ALARM_ID_DD_INTEGRITY_POST_TEST_FAILED }, { 1, ALARM_ID_TD_EJECTOR_POST_TEST_FAILED }, { 10, ALARM_ID_TD_SOFTWARE_FAULT }, { 10, ALARM_ID_TD_UI_COMM_TIMEOUT }, @@ -653,6 +667,8 @@ { 10, ALARM_ID_TD_SYRINGE_PUMP_SELF_TEST_FAILURE }, { 10, ALARM_ID_TD_AUTO_LOAD_EJECT_BP_TIMEOUT }, { 10, ALARM_ID_TD_AUTO_EJECT_EJECTOR_TIMEOUT }, + { 10, ALARM_ID_TD_CPU_RAM_ERROR }, + { 10, ALARM_ID_DD_CPU_RAM_ERROR }, { 11, ALARM_ID_TD_BLOOD_SITTING_TOO_LONG }, { 12, ALARM_ID_TD_VENOUS_BUBBLE_DETECTED }, { 13, ALARM_ID_TD_AIR_TRAP_FILL_TIMEOUT }, @@ -692,6 +708,7 @@ { 110, ALARM_ID_DD_D48_PUMP_CURRENT_OUT_OF_RANGE }, { 110, ALARM_ID_DD_D48_PUMP_DIRECTION_INVALID }, { 110, ALARM_ID_DD_D48_PUMP_DIRECTION_FPGA_FAULT }, + { 110, ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE }, { 110, ALARM_ID_DD_FLUID_TOO_LOW_WHILE_D5_HEAT_IS_ON }, { 110, ALARM_ID_DD_FLUID_TOO_LOW_WHILE_D45_HEAT_IS_ON }, { 110, ALARM_ID_FP_COMM_TOO_MANY_BAD_CRCS }, @@ -733,6 +750,7 @@ { 150, ALARM_ID_DD_BLOOD_LEAK_DETECTED }, { 200, ALARM_ID_TD_VENOUS_PRESSURE_LOW }, { 201, ALARM_ID_TD_VENOUS_PRESSURE_HIGH }, + { 202, ALARM_ID_TD_EMPTY_SALINE_BAG }, { 202, ALARM_ID_TD_ARTERIAL_PRESSURE_LOW }, { 203, ALARM_ID_TD_ARTERIAL_PRESSURE_HIGH }, { 204, ALARM_ID_TD_TMP_PRESSURE_LOW }, @@ -1016,6 +1034,7 @@ { 189 , ALARM_ID_TD_EJECTOR_POST_TEST_FAILED , "TD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call Service to report the issue and schedule a repair. | TD POST: Ejector Homing | TD ejector did not reach the fully retracted position within the allowed time during power-on self-test | If the ejector does not reach the fully retracted position within allowed time during the power-on self-test. | "}, { 190 , ALARM_ID_TD_AUTO_LOAD_EJECT_HIGH_BP_TORQUE , "TD | Blood Pump Stopped: Tubing Set Jam | A problem was detected during tube set load/eject.\n- The blood pump is reversing to the home position.\n- Once the pump has returned to home, re-seat the blood tubing set and press Resume to retry loading, or wait for the pump to return to home and retry ejecting.\n- If the problem persists, press End Treatment. | Blood Stop: High BP Torque | Blood pump torque exceeded limit during Auto-Load/Eject one-revolution and tubing set jam suspected | If the measured blood pump torque exceeds TBD mNm during the Auto-Load or Auto-Eject one-revolution forward rotation. | "}, { 191 , ALARM_ID_TD_AIR_PUMP_STALL , "TD | Air Pump Stall Detected | The air pump is commanded to run but no rotation is detected.\n- Check tubing for blockage or occlusion.\n- Verify pump operation and connections.\n- If issue persists, terminate treatment and inspect system. | Blood Pump: Air Pump Stall | Air pump stall detected during treatment | If the air pump is commanded on and the measured RPM is zero for multiple controller cycles. | "}, +<<<<<<< HEAD { 192 , ALARM_ID_TD_INVALID_TUBING_SET , "TD | Invalid Blood Tubing Set | A problem has been detected during self-test.\n- The installed blood tubing set is not valid.\n- Install a valid blood tubing set intended for the selected treatment modality. | Process: Pre-Tx Dry Self-Test | TD detected invalid tubing set during authentication | If authentication response indicates the tubing set is invalid. | "}, { 193 , ALARM_ID_TD_INSTALL_NEW_BLOOD_TUBING_SET , "TD | Install New Blood Tubing Set | A problem has been detected during self-test.\n- Fluid detected in the tubing set or no valid tubing set installed.\n- Install a new, unused blood tubing set and ensure proper installation. | Process: Pre-Tx Dry Self-Test | TD detected used, wet, or missing blood tubing set | If bubble is detected, air trap levels indicate fluid, or barcode scan fails. | "}, { 194 , ALARM_ID_TD_TUBING_SET_NOT_DETECTED , "TD | No Blood Tubing Set Detected | A problem has been detected during self-test.\n- No blood tubing set detected in the system.\n- Install a blood tubing set and ensure proper placement. | Process: Pre-Tx Dry Self-Test | TD did not detect tubing set during verification | If no tubing set is detected during tube set loaded check. | "}, @@ -1029,6 +1048,14 @@ { 202 , ALARM_ID_TD_ARTERIAL_PRESSURE_DECAY , "TD | Arterial Pressure Decay | A problem has been detected during self-test.\n- Arterial pressure dropped more than expected.\n- Check for leaks or loose connections. | Process: Pre-Tx Dry Self-Test | TD detected excessive arterial pressure decay | If arterial pressure reduction exceeds allowed tolerance during stabilization. | "}, { 203 , ALARM_ID_TD_ARTERIAL_PRESSURE_LEAK , "TD | Arterial Pressure Leak | A problem has been detected during self-test.\n- Possible leak in arterial line.\n- Inspect tubing and connections. | Process: Pre-Tx Dry Self-Test | TD detected arterial pressure leak | If arterial pressure difference exceeds tolerance during leak check. | "}, { 204 , ALARM_ID_TD_ARTERIAL_PRESSURE_RELIEF , "TD | Arterial Pressure Relief Failure | A problem has been detected during self-test.\n- Pressure did not return to baseline.\n- Ensure valves and tubing are functioning properly. | Process: Pre-Tx Dry Self-Test | TD failed arterial pressure relief check | If arterial pressure does not return within ±5 mmHg after relief. | "}, +======= + { 192 , ALARM_ID_TD_CPU_RAM_ERROR , "TD | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | TD CPU RAM error | TD CPU RAM check failure | If the RAM status indicates any of the following: Double bit error, Address decode failure, Address decode logic element failure, Read address parity failure, Write address parity failure. | "}, + { 193 , ALARM_ID_DD_CPU_RAM_ERROR , "DD | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DD CPU RAM error | DD CPU RAM check failure | If the RAM status indicates any of the following: Double bit error, Address decode failure, Address decode logic element failure, Read address parity failure, Write address parity failure. | "}, + { 194 , ALARM_ID_TD_INTEGRITY_POST_TEST_FAILED , "TD | Service Required: Hemodialysis Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | TD Firmware Image Integrity Failure | TD firmware image integrity POST test failed | If the calculated CRC of the TD image does not match the expected CRC. | "}, + { 195 , ALARM_ID_DD_INTEGRITY_POST_TEST_FAILED , "DD | Service Required: Hemodialysis Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DD Firmware Image Integrity Failure | DD firmware image integrity POST test failed | If the calculated CRC of the DD image does not match the expected CRC. | "}, + { 196 , ALARM_ID_TD_EMPTY_SALINE_BAG , "TD | Blood Pump Stopped: Saline Bag Empty | The saline bag appears empty.\n- Check the saline bag and replace if empty. | Blood Stop: Saline Bag Empty | TD Saline bag is empty | If the measured arterial pressure < -300.0 mmHg for more than 250 msec. | "}, + { 196 , ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE , "DD | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DD Fault: Subtitution Pump Fault | DD substitution pump RPM out of range | If the substitution pump RPM > 20.0 of the target RPM. | "}, +>>>>>>> 41447b9a2a6b3099662e25bc6a264595c75ed8fa }; #endif // manual alarms Index: MsgDefs.h =================================================================== diff -u -r26fe07688d657baea9b1781c20561cc9c63aee0d -r74900728e3729be88f2581bb2ff03a978b6a46cb --- MsgDefs.h (.../MsgDefs.h) (revision 26fe07688d657baea9b1781c20561cc9c63aee0d) +++ MsgDefs.h (.../MsgDefs.h) (revision 74900728e3729be88f2581bb2ff03a978b6a46cb) @@ -8,8 +8,8 @@ * * @file MsgDefs.h * -* @author (last) Praneeth Bunne -* @date (last) 21-May-2026 +* @author (last) Michael Garthwaite +* @date (last) 11-Jun-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -90,12 +90,12 @@ 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_SALINE_BOLUS_DATA = 0x3D, ///< TD saline bolus status 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_AVAILABLE_2 = 0x41, ///< Available message ID 2 - MSG_ID_AVAILABLE_4 = 0x42, ///< Available message ID 3 + 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 @@ -124,15 +124,15 @@ 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_SOLUTION_INFUSION_REQUEST = 0x5F, ///< UI solution infusion request - MSG_ID_TD_SOLUTION_INFUSION_RESPONSE = 0x60, ///< TD solution infusion response + 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_VALIDATE_REQUEST = 0x66, ///< UI request to validate ultrafiltration volume change - MSG_ID_TD_ULTRAFILTRATION_CHANGE_VALIDATE_RESPONSE = 0x67, ///< TD response to request to validate ultrafiltration volume change + 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 @@ -157,8 +157,8 @@ 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_TEMPERATURE_CHANGE_REQUEST = 0x80, ///< UI treatment set point dialysate temperature change request - MSG_ID_TD_TREATMENT_SET_POINT_DIALYSATE_TEMPERATURE_CHANGE_RESPONSE = 0x81, ///< TD treatment set point dialysate temperature 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 @@ -207,6 +207,14 @@ MSG_ID_UI_TUBE_SET_AUTHENTICATION_ACK_RESPONSE = 0xAF, ///< TD tube set authentication acknowledge response MSG_ID_TD_SYRINGE_PUMP_DATA = 0xB0, ///< TD broadcast of syringe pump data MSG_ID_TD_HEPARIN_PAUSE_RESUME_RESPONSE= 0xB1, ///< TD response to pause/resume Heparin delivery request + MSG_ID_TD_TUBING_SET_BARCODE_SCAN_REQUEST = 0xAE, ///< TD tube set authentication request + 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_DD_SUBSTITUTION_PUMP_DATA = 0xB5, ///< DD substitution pump broadcast data. // service/test CAN messages MSG_ID_FIRST_TD_TESTER_MESSAGE = 0x8000, ///< First TD test message ID @@ -406,6 +414,9 @@ 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_FIRST_FP_TESTER_MESSAGE = 0xB000, ///< First FP test message ID MSG_ID_FP_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_FP_TESTER_MESSAGE, ///< FP tester log-in @@ -516,11 +527,11 @@ 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_SALINE_BOLUS_IN_PROGRESS = 16, ///< A saline bolus is in progress + 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_SALINE_BOLUS_NOT_IN_PROGRESS = 20, ///< A saline bolus is not in progress + 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 @@ -543,7 +554,7 @@ 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, ///< Saline bolus is not allowed during dialyzer reprime + 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 @@ -557,6 +568,10 @@ 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 NUM_OF_REQUEST_REJECT_REASONS ///< Number of settings change reject codes }; typedef enum Request_Reject_Reasons REQUEST_REJECT_REASON_CODE_T; ///< Type for settings change rejection reason codes enumeration Index: TDDefs.h =================================================================== diff -u -rb5fc952634ed740f8b4722945c6ad682fb53a3fb -r74900728e3729be88f2581bb2ff03a978b6a46cb --- TDDefs.h (.../TDDefs.h) (revision b5fc952634ed740f8b4722945c6ad682fb53a3fb) +++ TDDefs.h (.../TDDefs.h) (revision 74900728e3729be88f2581bb2ff03a978b6a46cb) @@ -8,7 +8,7 @@ * @file TDDefs.h * * @author (last) Praneeth Bunne -* @date (last) 21-May-2026 +* @date (last) 04-Jun-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -35,6 +35,7 @@ MODE_PRET, ///< Pre-Treatment mode MODE_TREA, ///< Treatment mode MODE_POST, ///< Post-Treatment mode + MODE_UPDT, ///< Update mode MODE_NLEG, ///< Not legal - an illegal mode transition occurred NUM_OF_MODES ///< Number of TD operation modes }; @@ -113,6 +114,22 @@ /**@}*/ /** + * @addtogroup TDUpdateMode + * @{ + */ + +/// Sub-mode states while in update mode +enum TD_Update_States +{ + TD_UPDATE_INIT_STATE = 0, ///< Start update state. + TD_UPDATE_RESET_MCU_STATE, ///< Reset MCU state. + NUM_OF_TD_UPDATE_STATES ///< Number of update states (sub-modes). +}; +typedef enum TD_Update_States TD_UPDATE_STATE_T; ///< Type for TD update states enumeration + +/**@}*/ + +/** * @addtogroup TDPreTreatmentMode * @{ */ @@ -381,28 +398,30 @@ { DIALYSIS_UF_STATE = 0, ///< Ultrafiltration state of the dialysis sub-mode state machine DIALYSIS_UF_PAUSED_STATE, ///< Ultrafiltration Paused state of the dialysis sub-mode state machine + DIALYSIS_UF_FLUID_BOLUS_STATE, ///< Fluid Bolus state of the dialysis sub-mode state machine NUM_OF_DIALYSIS_STATES ///< Number of dialysis sub-mode states }; typedef enum Dialysis_States DIALYSIS_STATE_T; ///< Type for dialysis states enumeration -/// Enumeration of saline bolus states. -enum Saline_Bolus_States +/// Enumeration of fluid bolus states. +enum Fluid_Bolus_States { - SALINE_BOLUS_STATE_IDLE = 0, ///< No saline bolus delivery is in progress - SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP, ///< Wait for pumps to stop before starting bolus - SALINE_BOLUS_STATE_IN_PROGRESS, ///< A saline bolus delivery is in progress - NUM_OF_SALINE_BOLUS_STATES ///< Number of saline bolus states + FLUID_BOLUS_IDLE_STATE = 0, ///< No fluid bolus delivery is in progress + FLUID_BOLUS_WAIT_FOR_PUMPS_STOP_STATE, ///< Wait for pumps to stop before starting bolus + FLUID_BOLUS_SALINE_IN_PROGRESS_STATE, ///< A saline bolus delivery is in progress + FLUID_BOLUS_SUBSITUTE_IN_PROGRESS_STATE, ///< A substitute bolus delivery is in progress + NUM_OF_FLUID_BOLUS_STATES ///< Number of fluid bolus states }; -typedef enum Saline_Bolus_States SALINE_BOLUS_STATE_T; ///< Type for saline bolus state enumeration +typedef enum Fluid_Bolus_States FLUID_BOLUS_STATE_T; ///< Type for fluid bolus state enumeration -/// Enumeration of saline bolus command parameters. -enum Saline_Commands +/// Enumeration of fluid bolus command parameters. +enum Fluid_Bolus_Commands { - SALINE_CMD_STOP = 0, ///< Stop saline bolus command - SALINE_CMD_START, ///< Start saline bolus command - NUM_OF_SALINE_CMDS ///< Number of saline bolus command parameters + FLUID_BOLUS_CMD_STOP = 0, ///< Stop fluid bolus command + FLUID_BOLUS_CMD_START, ///< Start fluid bolus command + NUM_OF_FLUID_BOLUS_CMDS ///< Number of fluid bolus command parameters }; -typedef enum Saline_Commands SALINE_CMD_T; ///< Type for saline command enum. +typedef enum Fluid_Bolus_Commands FLUID_BOLUS_CMD_T; ///< Type for fluid bolus command enum. /// Enumeration of ultrafiltration command IDs. enum UF_Commands @@ -467,6 +486,7 @@ TREATMENT_PAUSED_RECIRC_BLOOD_ONLY_STATE, ///< Re-circulate Blood only state of the treatment paused sub-mode state machine TREATMENT_PAUSED_NO_RECIRC_STATE, ///< No re-circulation state of the treatment paused sub-mode state machine TREATMENT_PAUSED_RECOVER_BLOOD_DETECT_STATE, ///< Treatment paused recover blood detect state + TREATMENT_PAUSED_FLUID_BOLUS_STATE, ///< Fluid Bolus state of the treatment paused sub-mode state machine NUM_OF_TREATMENT_PAUSED_STATES ///< Number of treatment paused sub-mode states }; /// Type for treatment paused states enumeration. @@ -485,6 +505,7 @@ BLOOD_PRIME_RAMP_STATE = 0, ///< Ramp state of the blood prime sub-mode state machine BLOOD_PRIME_RUN_STATE, ///< Run state of the blood prime sub-mode state machine BLOOD_PRIME_PAUSED_STATE, ///< Paused state of the blood prime sub-mode state machine + BLOOD_PRIME_FLUID_BOLUS_STATE, ///< Fluid Bolus state of the blood prime sub-mode state machine NUM_OF_BLOOD_PRIME_STATES ///< Number of blood prime sub-mode states }; /// Type for treatment end states enumeration. @@ -582,6 +603,7 @@ { TREATMENT_END_WAIT_FOR_RINSEBACK_STATE = 0, ///< Wait for rinseback state of the treatment end sub-mode state machine TREATMENT_END_PAUSED_STATE, ///< Paused state of the treatment end sub-mode state machine + TREATMENT_END_FLUID_BOLUS_STATE, ///< Fluid Bolus state of the treatment end sub-mode state machine NUM_OF_TREATMENT_END_STATES ///< Number of treatment end sub-mode states }; /// Type for treatment end states enumeration. @@ -637,6 +659,23 @@ }; typedef enum Treatment_Params TREATMENT_PARAM_T; ///< Type for treatment parameters enumeration +/// Enumeration of treatment set point parameter indices. +enum Treatment_Setpoint_Params +{ + TREATMENT_SETPOINT_BLOOD_FLOW = 0, ///< Blood flow rate (in mL/min) + TREATMENT_SETPOINT_DIALYSATE_FLOW, ///< Dialysate flow rate (in mL/min) + TREATMENT_SETPOINT_DIALYSATE_TEMPERATURE, ///< Dialysate temperature (in degC) + TREATMENT_SETPOINT_ACID_CONCENTRATE, ///< Acid concentrate type (enum) + TREATMENT_SETPOINT_ACID_CONVERSION_FACTOR, ///< Acid concentrate conversion factor + TREATMENT_SETPOINT_BICARB_CONCENTRATE, ///< Bicarbonate concentrate type (enum) + TREATMENT_SETPOINT_TREATMENT_MODALITY, ///< Treatment modality type (enum) + TREATMENT_SETPOINT_HEPATITIS_STATUS, ///< Hepatitis B status (enum) + TREATMENT_SETPOINT_SODIUM, ///< Sodium concentration (mEq/L) + TREATMENT_SETPOINT_BICARBONATE, ///< Bicarbonate concentration (mEq/L) + NUM_OF_TREATMENT_SETPOINT_PARAMS ///< Total number of treatment set point parameters +}; +typedef enum Treatment_Setpoint_Params TREATMENT_SETPOINT_PARAM_T; ///< Type for treatment set point parameter indices enumeration + /// Enumeration of system configured treatment parameters. enum System_Config_Treatment_Params { @@ -745,7 +784,7 @@ HEPARIN_BOLUS_END_EVENT, ///< Heparin bolus end event HEPARIN_START_RESUME_EVENT, ///< Heparin start or resume event HEPARIN_STOP_PAUSE_EVENT, ///< Heparin stop or pause event - SALINE_BOLUSES_CHANGE_EVENT, ///< Saline boluses change event + FLUID_BOLUSES_CHANGE_EVENT, ///< Fluid boluses change event NUM_OF_TX_EVENT_IDS ///< Total number of treatment events }; typedef enum Tx_Event_List TX_EVENT_ID_T; ///< Type for treatment event list enumeration