Index: AlarmDefs.h =================================================================== diff -u -rffe968d36207b80678a9fd77a834f48f7d3b5aed -rd76bbd9407890ea3b2b209f7f13adbbd75958263 --- AlarmDefs.h (.../AlarmDefs.h) (revision ffe968d36207b80678a9fd77a834f48f7d3b5aed) +++ AlarmDefs.h (.../AlarmDefs.h) (revision d76bbd9407890ea3b2b209f7f13adbbd75958263) @@ -225,6 +225,7 @@ 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 NUM_OF_ALARM_IDS ///< Number of alarms }; typedef enum Alarm_List ALARM_ID_T; ///< Type for alarm list enumeration @@ -568,6 +569,7 @@ { 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 }, }; // Priority Rank Source Fault DDFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr AutoRes ClrOnly TxLog ID /// Table of alarms and their rank. @@ -720,6 +722,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 }, @@ -994,6 +997,7 @@ { 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. | "}, }; #endif // manual alarms Index: MsgDefs.h =================================================================== diff -u -r24897e13845bac3ab610f2750aaea87ab48f9eae -rd76bbd9407890ea3b2b209f7f13adbbd75958263 --- MsgDefs.h (.../MsgDefs.h) (revision 24897e13845bac3ab610f2750aaea87ab48f9eae) +++ MsgDefs.h (.../MsgDefs.h) (revision d76bbd9407890ea3b2b209f7f13adbbd75958263) @@ -8,8 +8,8 @@ * * @file MsgDefs.h * -* @author (last) Varshini Nagabooshanam -* @date (last) 06-May-2026 +* @author (last) Vijay Pamula +* @date (last) 28-May-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -94,8 +94,8 @@ 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 @@ -131,8 +131,8 @@ 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 @@ -206,6 +206,10 @@ 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. // service/test CAN messages MSG_ID_FIRST_TD_TESTER_MESSAGE = 0x8000, ///< First TD test message ID @@ -281,6 +285,19 @@ MSG_ID_TD_BLOOD_PRIME_VOLUME_OVERRIDE = 0x8045, ///< TD blood prime override. MSG_ID_TD_BLOOD_PRIME_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8046, ///< TD blood prime publish interval broadcast override. MSG_ID_TD_ENABLE_VENOUS_BUBBLE_ALARM = 0x8047, ///< TD enable venous bubble alarm. + MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST = 0x8048, ///< TD syringe pump operation request + MSG_ID_HD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0x8049, ///< TD syringe pump data publish interval override request + MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST = 0x8050, ///< TD syringe pump measured rate override request + MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST = 0x8051, ///< TD syringe pump measured force override request + MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST = 0x8052, ///< TD syringe pump measured home override request + MSG_ID_TD_SYRINGE_PUMP_POSITION_OVERRIDE_REQUEST = 0x8053, ///< TD syringe pump measured position override request + MSG_ID_TD_SYRINGE_PUMP_VOLUME_OVERRIDE_REQUEST = 0x8054, ///< TD syringe pump measured volume override request + MSG_ID_TD_SYRINGE_PUMP_STATUS_OVERRIDE_REQUEST = 0x8055, ///< TD syringe pump status override request + MSG_ID_TD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE_REQUEST = 0x8056, ///< TD syringe pump Encoder status override request + MSG_ID_TD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE_REQUEST = 0x8057, ///< TD syringe pump ADC and DAC status override request + MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST = 0x8058, ///< TD syringe pump ADC read counter override request + MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST = 0x8059, ///< TD heparin bolus target rate override request + MSG_ID_TD_SYRINGE_PUMP_FORCE_SENSOR_CALIBRATION_REQUEST = 0x8060, ///< TD set syringe pump force sensor DAC calibration request MSG_ID_FIRST_DD_TESTER_MESSAGE = 0xA000, ///< First DD test message ID MSG_ID_DD_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_DD_TESTER_MESSAGE, ///< DD tester log-in @@ -544,7 +561,9 @@ 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_INVALID_TREATMENT_SUB_STATE = 58, ///< Request is not allowed in current treatment sub-state + 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 -r24897e13845bac3ab610f2750aaea87ab48f9eae -rd76bbd9407890ea3b2b209f7f13adbbd75958263 --- TDDefs.h (.../TDDefs.h) (revision 24897e13845bac3ab610f2750aaea87ab48f9eae) +++ TDDefs.h (.../TDDefs.h) (revision d76bbd9407890ea3b2b209f7f13adbbd75958263) @@ -7,8 +7,8 @@ * * @file TDDefs.h * -* @author (last) Varshini Nagabooshanam -* @date (last) 07-May-2026 +* @author (last) Vijay Pamula +* @date (last) 28-May-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 }; @@ -66,6 +67,7 @@ POST_STATE_STUCK_BUTTON, ///< Run stuck button test state POST_STATE_UI_POST, ///< Check whether UI passed its POST tests POST_STATE_FW_COMPATIBILITY, ///< Run firmware compatibility test state + POST_STATE_EJECTOR_HOMING, ///< Run ejector homing POST state POST_STATE_FPGA, ///< Run FPGA test state POST_STATE_COMPLETED, ///< POST self-tests completed state POST_STATE_FAILED, ///< POST self-tests failed state @@ -112,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 * @{ */ @@ -122,7 +140,7 @@ TD_PRE_TREATMENT_WATER_SAMPLE_STATE = 0, ///< Water sample state TD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE, ///< Consumable self-tests state TD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE, ///< No cartridge self-tests state - TD_PRE_TREATMENT_CART_INSTALL_STATE, ///< Consumable and cartridge installation state + TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE, ///< Tube set install state TD_PRE_TREATMENT_SELF_TEST_DRY_STATE, ///< Self-tests when the cartridge is dry state TD_PRE_TREATMENT_PRIME_STATE, ///< Prime blood and dialysate circuits and run wet self-tests state TD_PRE_TREATMENT_RECIRCULATE_STATE, ///< Re-circulate blood and dialysate circuits state @@ -207,7 +225,7 @@ enum TD_Pre_Treatment_Dry_Self_Tests_States { DRY_SELF_TESTS_START_STATE = 0, ///< Dry self-tests start state - DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 0, ///< Wait for door close state + DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE, ///< Wait for door close state DRY_SELF_TESTS_USED_TUBE_SET_CHECK_STATE, ///< Used tube set check state DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE, ///< Tube set loaded check state DRY_SELF_TESTS_TUBE_SET_AUTHENTICATION_STATE, ///< Tube set authentication state @@ -349,8 +367,8 @@ /// Enumeration of post-treatment mode states. enum TD_Post_Treatment_Mode_States { - TD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE = 0, ///< Drain reservoirs state - TD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE, ///< Patient disconnection state + TD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE = 0, ///< Patient disconnection state + TD_POST_TREATMENT_AUTO_EJECT_STATE, ///< Auto eject state TD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE, ///< Disposable removal state TD_POST_TREATMENT_VERIFY_STATE, ///< Verify cartridge removed, syringe removed, and reservoirs drained state NUM_OF_TD_POST_TREATMENT_STATES ///< Number of post-treatment mode states @@ -645,6 +663,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 { @@ -793,6 +828,7 @@ TD_EVENT_INSTIT_RECORD_UPDATE, ///< TD new institutional record has been updated. TD_EVENT_VALVE_POS_CHANGE, ///< TD pinch valve position change TD_EVENT_VALVE_HOMED_POS_SETTING, ///< TD pinch valve homed encoder positions for A/B/C. + TD_EVENT_SYRINGE_PUMP_STATE, ///< TD syringe pump state change event NUM_OF_TD_EVENT_IDS ///< Total number of TD events }; typedef enum TD_Event_List TD_EVENT_ID_T; ///< Type for TD event list enumeration