Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r63829407ef68efd9e151dc069b622dbd65494e23 -r0da5bca220fe41798cf066597d47a5e279f6e8f0 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 63829407ef68efd9e151dc069b622dbd65494e23) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 0da5bca220fe41798cf066597d47a5e279f6e8f0) @@ -7,8 +7,8 @@ * * @file ModePreTreat.c * -* @author (last) Varshini Nagabooshanam -* @date (last) 26-Jan-2026 +* @author (last) Raghu Kallala +* @date (last) 08-May-2026 * * @author (original) Dara Navaei * @date (original) 25-Sep-2025 @@ -17,6 +17,7 @@ #include "Buttons.h" #include "DrySelfTests.h" +#include "DDInterface.h" #include "ModePreTreat.h" #include "OperationModes.h" #include "TaskGeneral.h" @@ -202,19 +203,64 @@ *************************************************************************/ static TD_PRE_TREATMENT_MODE_STATE_T handleRxState( void ) { - BOOL paramsValid = getValidTreatParamsReceived(); - BOOL paramsConfirmed = getTreatParamsConfirmed(); - TD_PRE_TREATMENT_MODE_STATE_T state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; + BOOL paramsValid = getValidTreatParamsReceived(); + BOOL paramsConfirmed = getTreatParamsConfirmed(); + BOOL isDialysateGoodToDeliver = TRUE; // TODO replace TRUE with getDialysateGoodToDeliverStatus() when we are ready + F32 bicarbConvFactor = BICARBONATE_CONVERSION_FACTOR; + F32 presUFVolumeL = 0.0F; + F32 presUFRateMlMin = 0.0F; + U32 ddSubMode = getDDSubMode(); + TD_PRE_TREATMENT_MODE_STATE_T state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; + DD_OP_MODE_T ddOpMode = getDDOpMode(); // Valid + confirmed – move to next state: Patient Connection if ( ( TRUE == paramsValid ) && ( TRUE == paramsConfirmed ) ) { + // TODO this command of requesting dialysate delivery will move to appropriate state in pre-treatment once implemented + if ( ( ddOpMode == DD_MODE_PREG ) && ( ddSubMode == DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND ) ) + { + presUFVolumeL = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); + presUFRateMlMin = ( presUFVolumeL * (F32)ML_PER_LITER ) / (F32)getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); + // Direct DD to generate dialysate and bypass while priming blood + cmdStartGenerateDialysate( (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), presUFRateMlMin, + getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ), TRUE, + getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ), + bicarbConvFactor, + getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ), + getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ) ); + } // TODO: when additional Pre-Treatment states are implemented, change to TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE. // state = TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE; - requestNewOperationMode( MODE_TREA ); + if ( ( ddOpMode == DD_MODE_GEND ) && ( TRUE == isDialysateGoodToDeliver ) ) + { + requestNewOperationMode( MODE_TREA ); + } } return state; } +/*********************************************************************//** + * @brief + * The signalAlarmActionToPreTreatmentMode function executes the given alarm action + * as appropriate while in Pre-Treatment Mode. + * @details \b Inputs: none + * @details \b Outputs: given alarm action executed + * @param action ID of alarm action to execute + * @return none + *************************************************************************/ +void signalAlarmActionToPreTreatmentMode( ALARM_ACTION_T action ) +{ + switch ( action ) + { + case ALARM_ACTION_STOP: + // TODO add logic once we have pre-treatment mode developed + break; + + default: + // do not handle other actions in pre-treatment mode + break; + } +} + /**@}*/ Index: firmware/App/Modes/ModePreTreat.h =================================================================== diff -u -rcc3b00ea3b364c69d3c53829dde5d0671b76c664 -r0da5bca220fe41798cf066597d47a5e279f6e8f0 --- firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision cc3b00ea3b364c69d3c53829dde5d0671b76c664) +++ firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 0da5bca220fe41798cf066597d47a5e279f6e8f0) @@ -7,8 +7,8 @@ * * @file ModePreTreat.h * -* @author (last) Dara Navaei -* @date (last) 26-Oct-2025 +* @author (last) Raghu Kallala +* @date (last) 08-May-2026 * * @author (original) Dara Navaei * @date (original) 25-Sep-2025 @@ -21,6 +21,7 @@ #include "TDCommon.h" #include "TDDefs.h" +#include "DDDefs.h" /** * @defgroup TDPreTreatmentMode TDPreTreatmentMode @@ -35,6 +36,7 @@ void initPreTreatmentMode( void ); // Initialize this module U32 transitionToPreTreatmentMode( void ); // Prepares for transition to pre-treatment mode U32 execPreTreatmentMode( void ); // Execute the pre-treatment mode state machine (call from OperationModes) +void signalAlarmActionToPreTreatmentMode( ALARM_ACTION_T action ); // Execute alarm action as appropriate for pre-treatment mode TD_PRE_TREATMENT_MODE_STATE_T getPreTreatmentSubState( void ); // Get the current pre-treatment sub mode. Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -rfa58741ab8fbca9ad24e5f3929f41da510ee02ba -r0da5bca220fe41798cf066597d47a5e279f6e8f0 --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision fa58741ab8fbca9ad24e5f3929f41da510ee02ba) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 0da5bca220fe41798cf066597d47a5e279f6e8f0) @@ -8,7 +8,7 @@ * @file AlarmMgmtSWFaults.h * * @author (last) Raghu Kallala -* @date (last) 29-Apr-2026 +* @date (last) 30-Apr-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -186,7 +186,8 @@ SW_FAULT_ID_TD_AIR_PUMP_DUTY_CYCLE_OUT_OF_RANGE = 155, SW_FAULT_ID_PI_CTRL_INVALID_CONTROLLER = 156, SW_FAULT_ID_INVALID_TREATMENT_MODALITY = 157, - SW_FAULT_ID_TD_INVALID_DRY_SELF_TEST_STATE = 158, + SW_FAULT_ID_INVALID_DD_DIALYSATE_DATA = 158, + SW_FAULT_ID_TD_INVALID_DRY_SELF_TEST_STATE = 159, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; Index: firmware/App/Services/DrySelfTests.c =================================================================== diff -u -r63829407ef68efd9e151dc069b622dbd65494e23 -r0da5bca220fe41798cf066597d47a5e279f6e8f0 --- firmware/App/Services/DrySelfTests.c (.../DrySelfTests.c) (revision 63829407ef68efd9e151dc069b622dbd65494e23) +++ firmware/App/Services/DrySelfTests.c (.../DrySelfTests.c) (revision 0da5bca220fe41798cf066597d47a5e279f6e8f0) @@ -51,12 +51,12 @@ #define STABILITY_PRESSURE_CHECK_TIME_MS ( 4 * MS_PER_SECOND ) ///< Time allowed for pressure stabilization. #define VENOUS_PRESSURE_LEAK_CHECK_TIME ( 4 * MS_PER_SECOND ) ///< Time to monitor venous pressure decay (leak check). #define ARTERIAL_PRESSURE_LEAK_CHECK_TIME ( 4 * MS_PER_SECOND ) ///< Time to monitor arterial pressure decay (leak check). -#define TUBESET_INSERT_PRESSURE_SETTLE_TIME_MS ( 10 * MS_PER_SECOND ) ///< Time required for pressure settling after tube set insertion. +#define TUBING_SET_INSERT_PRESSURE_SETTLE_TIME_MS ( 10 * MS_PER_SECOND ) ///< Time required for pressure settling after tubing set insertion. #define VENOUS_PRESSURE_TIMEOUT_MS ( 60 * MS_PER_SECOND ) ///< Max time allowed to reach venous pressure target. #define ARTERIAL_PRESSURE_TIMEOUT_MS ( 30 * MS_PER_SECOND ) ///< Max time allowed to reach arterial pressure target. #define MAX_DRY_SELF_TEST_TIME ( 12 * SEC_PER_MIN ) ///< Maximum total dry self-test duration. #define SELF_TEST_TIME_DATA_PUB_INTERVAL ( 1 * MS_PER_SECOND ) ///< Interval for publishing self-test progress data. -#define TUBE_SET_AUTH_TIMEOUT_MS ( 5 * MS_PER_SECOND ) ///< Tube set authentication timeout +#define TUBING_SET_AUTH_TIMEOUT_MS ( 5 * MS_PER_SECOND ) ///< Tubing set authentication timeout //Pressure self-test pump flow #define BLOOD_PUMP_PRESSURE_SELF_TEST_FLOW 100 ///< Blood pump flow rate during arterial pressure self-test (mL/min). @@ -75,32 +75,30 @@ /// Payload record structure for dry self-test authentication response typedef struct { - U32 validTubeSet; + U32 validTubingSet; U32 modalityMatch; -} UI_TUBE_SET_AUTH_RESPONSE_PAYLOAD_T; +} UI_TUBING_SET_AUTH_RESPONSE_PAYLOAD_T; /// Payload record structure for dry self-test authentication response typedef struct { U32 accepted; U32 modality; -} TD_TUBE_SET_AUTH_RESPONSE_PAYLOAD_T; +} TD_TUBING_SET_AUTH_RESPONSE_PAYLOAD_T; // ********** private data ********** static DRY_SELF_TESTS_STATE_T currentDrySelfTestsState; ///< Current state of Dry Self-Test state machine static U32 selfTestPreviousPublishDataTime; ///< Last progress data publish time -static BOOL doorStateAfterTubeSetInstall; ///< Tracks door transition after tube set install +static BOOL doorStateAfterTubingSetInstall; ///< Tracks door transition after tubing set install static U32 selfTestStartTime; ///< Start time of dry self-tests -static U32 selfTestTubeSetSettleTime; ///< Delay after tube set insertion static BOOL selfTestsResumeRequested; ///< Resume requested from STOPPED state -static BOOL tubeSetUsedTestRun; ///< Indicates tube set used test executed -static BOOL tubeSetLeakChecksStarted; ///< Indicates tube set leak check started +static BOOL tubingSetLeakChecksStarted; ///< Indicates tubing set leak check started static BOOL barcodeScanResponseReceived; ///< Barcode response received flag static U32 authenticationStartTime; ///< Authentication start timer static BOOL authResponseReceived; ///< Indicates UI auth response received -static BOOL authResponseValidTubeSet; ///< Indicates tube set is valid -static BOOL authResponseModalityAccepted; ///< Indicates tube set modality is accepted +static BOOL authResponseValidTubingSet; ///< Indicates tubing set is valid +static BOOL authResponseModalityAccepted; ///< Indicates tubing set modality is accepted static U32 pressureSelfTestPreNormalStartTime; ///< Start time for pre-normal pressure setup delay static U32 venousSetupStartTime; ///< Venous setup start time static F32 peakVenousPressure; ///< Peak venous pressure during stabilization @@ -126,9 +124,9 @@ static void transitionToDrySelfTestsState( DRY_SELF_TESTS_STATE_T newState ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestWaitForDoorCloseState( void ); -static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedTubeSetCheckState( void ); -static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubeSetLoadedCheckState( void ); -static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubeSetAuthenticationState( void ); +static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedTubingSetCheckState( void ); +static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubingSetLoadedCheckState( void ); +static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubingSetAuthenticationState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorNormalSetupState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestVenousPressureSetupState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestVenousPressureStabilizationState( void ); @@ -149,10 +147,9 @@ *************************************************************************/ void initDrySelfTests( void ) { - currentDrySelfTestsState = DRY_SELF_TESTS_START_STATE; + currentDrySelfTestsState = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; selfTestStartTime = 0; selfTestPreviousPublishDataTime = 0; - selfTestTubeSetSettleTime = 0; pressureSelfTestPreNormalStartTime = 0; venousSetupStartTime = 0; venousPressureStabilizationStartTime = 0; @@ -163,12 +160,11 @@ arterialPressureLeakCheckStartTime = 0; arterialPressureReliefStartTime = 0; authenticationStartTime = 0; - doorStateAfterTubeSetInstall = TRUE; + doorStateAfterTubingSetInstall = TRUE; selfTestsResumeRequested = FALSE; - tubeSetUsedTestRun = FALSE; barcodeScanResponseReceived = FALSE; authResponseReceived = FALSE; - authResponseValidTubeSet = FALSE; + authResponseValidTubingSet = FALSE; authResponseModalityAccepted = FALSE; peakVenousPressure = 0.0F; venousPressureP1 = 0.0F; @@ -191,7 +187,6 @@ { selfTestStartTime = getMSTimerCount(); selfTestPreviousPublishDataTime = getMSTimerCount(); - selfTestTubeSetSettleTime = getMSTimerCount(); doorClosedRequired( TRUE ); setCurrentSubState( (U32)currentDrySelfTestsState ); transitionToDrySelfTestsState( currentDrySelfTestsState ); @@ -232,16 +227,16 @@ currentDrySelfTestsState = handleDrySelfTestWaitForDoorCloseState(); break; - case DRY_SELF_TESTS_USED_TUBE_SET_CHECK_STATE: - currentDrySelfTestsState = handleDrySelfTestUsedTubeSetCheckState(); + case DRY_SELF_TESTS_USED_TUBING_SET_CHECK_STATE: + currentDrySelfTestsState = handleDrySelfTestUsedTubingSetCheckState(); break; - case DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE: - currentDrySelfTestsState = handleDrySelfTestTubeSetLoadedCheckState(); + case DRY_SELF_TESTS_TUBING_SET_LOADED_CHECK_STATE: + currentDrySelfTestsState = handleDrySelfTestTubingSetLoadedCheckState(); break; - case DRY_SELF_TESTS_TUBE_SET_AUTHENTICATION_STATE: - currentDrySelfTestsState = handleDrySelfTestTubeSetAuthenticationState(); + case DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE: + currentDrySelfTestsState = handleDrySelfTestTubingSetAuthenticationState(); break; case DRY_SELF_TESTS_PRESSURE_SENSOR_NORMAL_SETUP_STATE: @@ -397,32 +392,32 @@ *************************************************************************/ static DRY_SELF_TESTS_STATE_T handleDrySelfTestWaitForDoorCloseState( void ) { - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_START_STATE; + DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; OPN_CLS_STATE_T door = getSwitchState( H9_SWCH ); - // Want to pinch off saline once door closed after tube set install - handleDoorCloseAfterTubeSetInsertion(); + // Want to pinch off saline once door closed after tubing set install + handleDoorCloseAfterTubingSetInsertion(); if ( STATE_CLOSED == door ) { doorClosedRequired( TRUE ); - state = DRY_SELF_TESTS_USED_TUBE_SET_CHECK_STATE; + state = DRY_SELF_TESTS_USED_TUBING_SET_CHECK_STATE; } return state; } /*********************************************************************//** * @brief -* The handleDrySelfTestUsedTubeSetCheckState function verify no fluid is -* detected by bubble detectors to ensure the tube set is new. +* The handleDrySelfTestUsedTubingSetCheckState function verify no fluid is +* detected by bubble detectors to ensure the tubing set is new. * @details \b Inputs: none -* @details \b Outputs: tubeSetUsedTestRun +* @details \b Outputs: * @return the next state of dry self-tests state machine *************************************************************************/ -static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedTubeSetCheckState( void ) +static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedTubingSetCheckState( void ) { - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_USED_TUBE_SET_CHECK_STATE; + DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_USED_TUBING_SET_CHECK_STATE; BUBBLE_STATE_T bubble = getBubbleDetectedState( H18_BBLD ); AIR_TRAP_LEVELS_T lower = getLevelSensorState( H17_LEVL ); AIR_TRAP_LEVELS_T upper = getLevelSensorState( H16_LEVL ); @@ -431,20 +426,19 @@ { resetArtVenPressureOffsets(); // TODO: Send barcode scan command through FPGA interface - sendMessage( MSG_ID_TD_TUBING_SET_BARCODE_SCAN_REQUEST, COMM_BUFFER_OUT_CAN_TD_2_UI, NULL, 0 ); - state = DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE; + state = DRY_SELF_TESTS_TUBING_SET_LOADED_CHECK_STATE; } else { - // Allow wet tube set only for test configuration - if ( TRUE == getTestConfigStatus( TEST_CONFIG_USE_WET_TUBE_SET ) ) + // Allow wet tubing set only for test configuration + if ( TRUE == getTestConfigStatus( TEST_CONFIG_USE_WET_TUBING_SET ) ) { // TODO: Send barcode scan command through FPGA interface - state = DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE; + state = DRY_SELF_TESTS_TUBING_SET_LOADED_CHECK_STATE; } else { - // If tube set is invalid it triggers an alarm + // If tubing set is invalid it triggers an alarm //SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_INSTALL_NEW_BLOOD_TUBING_SET, (U32)bubble, (U32)lower, (U32)upper ); //signalGoToInstallState(); } @@ -455,23 +449,23 @@ /*********************************************************************//** * @brief -* The handleDrySelfTestTubeSetLoadedCheckState function handles barcode +* The handleDrySelfTestTubingSetLoadedCheckState function handles barcode * scan result and transitions to authentication state if scan succeeded. * @details \b Inputs: barcodeScanResponseReceived, barcodeScanSuccessful * @details \b Outputs: none * @return the next state of dry self-tests state machine *************************************************************************/ -static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubeSetLoadedCheckState( void ) +static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubingSetLoadedCheckState( void ) { - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE; + DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_TUBING_SET_LOADED_CHECK_STATE; if ( TRUE == barcodeScanResponseReceived ) { barcodeScanResponseReceived = FALSE; // Send barcode for authentication sendMessage( MSG_ID_TD_TUBE_SET_AUTHENTICATION_REQUEST, COMM_BUFFER_OUT_CAN_TD_2_UI, NULL, 0 ); authenticationStartTime = getMSTimerCount(); - state = DRY_SELF_TESTS_TUBE_SET_AUTHENTICATION_STATE; + state = DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE; } else { @@ -484,26 +478,26 @@ /*********************************************************************//** * @brief -* The handleDrySelfTestTubeSetAuthenticationState function handles tube set +* The handleDrySelfTestTubingSetAuthenticationState function handles tubing set * authentication and processes the authentication response. -* @details \b Inputs: authResponseReceived, authResponseValidTubeSet, +* @details \b Inputs: authResponseReceived, authResponseValidTubingSet, * authResponseModalityAccepted * @details \b Outputs: none * @return the next state of dry self-tests state machine *************************************************************************/ -static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubeSetAuthenticationState( void ) +static DRY_SELF_TESTS_STATE_T handleDrySelfTestTubingSetAuthenticationState( void ) { - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_TUBE_SET_AUTHENTICATION_STATE; + DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE; // Response received if ( TRUE == authResponseReceived ) { authResponseReceived = FALSE; - // Invalid tube set - if ( FALSE == authResponseValidTubeSet ) + // Invalid tubing set + if ( FALSE == authResponseValidTubingSet ) { - activateAlarmNoData( ALARM_ID_TD_INVALID_TUBE_SET ); + activateAlarmNoData( ALARM_ID_TD_INVALID_TUBING_SET ); //signalGoToInstallState(); } // Modality mismatch @@ -514,7 +508,7 @@ // If valid it goes to next state else { - //tubeSetChecksCompleted = TRUE; + //tubingSetChecksCompleted = TRUE; pressureSelfTestPreNormalStartTime = getMSTimerCount(); state = DRY_SELF_TESTS_PRESSURE_SENSOR_NORMAL_SETUP_STATE; } @@ -523,9 +517,9 @@ //Timeout Alarm else { - if ( TRUE == didTimeout( authenticationStartTime, TUBE_SET_AUTH_TIMEOUT_MS ) ) + if ( TRUE == didTimeout( authenticationStartTime, TUBING_SET_AUTH_TIMEOUT_MS ) ) { - activateAlarmNoData( ALARM_ID_TD_TUBE_SET_AUTHENTICATION_TIMEOUT ); + activateAlarmNoData( ALARM_ID_TD_TUBING_SET_AUTHENTICATION_TIMEOUT ); state = DRY_SELF_TESTS_STOPPED_STATE; } } @@ -825,8 +819,8 @@ * @brief * The handleDrySelfTestStoppedState function handles the stopped dry self-tests * operation. - * @details \b Inputs: selfTestsResumeRequested, tubeSetLeakChecksStarted - * @details \b Outputs: selfTestsResumeRequested, selfTestStartTime, selfTestTubeSetSettleTime + * @details \b Inputs: selfTestsResumeRequested, tubingSetLeakChecksStarted + * @details \b Outputs: selfTestsResumeRequested, selfTestStartTime * @return the next state of dry self-tests state machine *************************************************************************/ static DRY_SELF_TESTS_STATE_T handleDrySelfTestStoppedState( void ) @@ -844,10 +838,10 @@ selfTestStartTime = getMSTimerCount(); doorClosedRequired( TRUE ); setValvePosition( H1_VALV, VALVE_POSITION_B_OPEN ); - if ( TRUE == tubeSetLeakChecksStarted ) + if ( TRUE == tubingSetLeakChecksStarted ) { pressureSelfTestPreNormalStartTime = getMSTimerCount(); - state = DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE; + state = DRY_SELF_TESTS_PRESSURE_SENSOR_NORMAL_SETUP_STATE; } else { @@ -868,18 +862,17 @@ * @details \b Outputs: barcodeScanSuccessful, barcodeScanResponseReceived * @return TRUE if request is valid, FALSE otherwise *************************************************************************/ -BOOL drySelfTestHandleTubeSetAuthResponse( MESSAGE_T *message ) +BOOL drySelfTestHandleTubingSetAuthResponse( MESSAGE_T *message ) { BOOL result = FALSE; - UI_RESPONSE_PAYLOAD_T response; - if ( sizeof( UI_TUBE_SET_AUTH_RESPONSE_PAYLOAD_T ) == message->hdr.payloadLen ) + if ( sizeof( UI_TUBING_SET_AUTH_RESPONSE_PAYLOAD_T ) == message->hdr.payloadLen ) { - UI_TUBE_SET_AUTH_RESPONSE_PAYLOAD_T payload; + UI_TUBING_SET_AUTH_RESPONSE_PAYLOAD_T payload; memcpy( &payload, message->payload, sizeof( payload ) ); - authResponseValidTubeSet = (BOOL)payload.validTubeSet; + authResponseValidTubingSet = (BOOL)payload.validTubingSet; authResponseModalityAccepted = (BOOL)payload.modalityMatch; authResponseReceived = TRUE; result = TRUE; @@ -917,14 +910,14 @@ } break; - case DRY_SELF_TESTS_USED_TUBE_SET_CHECK_STATE: + case DRY_SELF_TESTS_USED_TUBING_SET_CHECK_STATE: { U32 targetDialysateFlowMLPM = (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ); signalBloodPumpHardStop(); setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); - endAirTrapControl(); + setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); set3WayValveState( H13_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); set3WayValveState( H20_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); cmdBypassDialyzer( TRUE ); @@ -933,14 +926,14 @@ } break; - case DRY_SELF_TESTS_TUBE_SET_LOADED_CHECK_STATE: + case DRY_SELF_TESTS_TUBING_SET_LOADED_CHECK_STATE: { U32 targetDialysateFlowMLPM = (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ); signalBloodPumpHardStop(); setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); - endAirTrapControl(); + setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); set3WayValveState( H13_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); set3WayValveState( H20_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); cmdBypassDialyzer( TRUE ); @@ -949,7 +942,7 @@ } break; - case DRY_SELF_TESTS_TUBE_SET_AUTHENTICATION_STATE: + case DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE: { U32 targetDialysateFlowMLPM = (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ); @@ -962,7 +955,7 @@ cmdBypassDialyzer( TRUE ); cmdChangeQd( targetDialysateFlowMLPM ); cmdChangeQuf( 0.0F ); - if ( DRY_SELF_TESTS_TUBE_SET_AUTHENTICATION_STATE == newState ) + if ( DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE == newState ) { authenticationStartTime = getMSTimerCount(); } @@ -1145,24 +1138,24 @@ /*********************************************************************//** * @brief - * The handleDoorCloseAfterTubeSetInsertion function handles the check - * for door close after tube set install so that saline line can be pinched. + * The handleDoorCloseAfterTubingSetInsertion function handles the check + * for door close after tubing set install so that saline line can be pinched. * @details Inputs: door states - * @details Outputs: doorStateAfterTubeSetInstall + * @details Outputs: doorStateAfterTubingSetInstall * @return none *************************************************************************/ -void handleDoorCloseAfterTubeSetInsertion( void ) +void handleDoorCloseAfterTubingSetInsertion( void ) { OPN_CLS_STATE_T door = getSwitchState( H9_SWCH ); if ( STATE_OPEN == door ) { - doorStateAfterTubeSetInstall = FALSE; + doorStateAfterTubingSetInstall = FALSE; } - if ( ( STATE_CLOSED == door ) && ( FALSE == doorStateAfterTubeSetInstall ) ) + if ( ( STATE_CLOSED == door ) && ( FALSE == doorStateAfterTubingSetInstall ) ) { setValvePosition( H1_VALV, VALVE_POSITION_B_OPEN ); - doorStateAfterTubeSetInstall = TRUE; + doorStateAfterTubingSetInstall = TRUE; } } Index: firmware/App/Services/Messaging.c =================================================================== diff -u -rfa58741ab8fbca9ad24e5f3929f41da510ee02ba -r0da5bca220fe41798cf066597d47a5e279f6e8f0 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision fa58741ab8fbca9ad24e5f3929f41da510ee02ba) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 0da5bca220fe41798cf066597d47a5e279f6e8f0) @@ -8,7 +8,7 @@ * @file Messaging.c * * @author (last) Raghu Kallala -* @date (last) 06-Apr-2026 +* @date (last) 30-Apr-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -106,6 +106,7 @@ { MSG_ID_FW_VERSIONS_REQUEST, &handleVersionRequestMessage }, { MSG_ID_UI_CHECK_IN, &handleUICheckIn }, { MSG_ID_DD_OP_MODE_DATA, &setDDOpMode }, + { MSG_ID_DD_GEN_DIALYSATE_MODE_DATA, &setDialysateData }, { MSG_ID_DD_PRESSURES_DATA, &setDialysatePressure }, { MSG_ID_UI_TREATMENT_PARAMS_TO_VALIDATE, &validateAndSetTreatmentParameters }, { MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW, &signalUserInitiateTreatment },