Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -ra1f14a4e422f94b6bc25d1b91839761e7e1196d7 -r95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision a1f14a4e422f94b6bc25d1b91839761e7e1196d7) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372) @@ -24,6 +24,7 @@ #include "Messaging.h" #include "ModeService.h" #include "ModeTreatment.h" +#include "ModeTreatment.h" //#include "NVDataMgmt.h" #include "OperationModes.h" #include "Pressures.h" @@ -192,9 +193,15 @@ initBloodPrime(); initDialysis(); initTreatmentPaused(); +<<<<<<< HEAD +// initRinseback(); +// initTreatmentRecirc(); + initTreatmentEnd(); +======= initRinseback(); initTreatmentRecirc(); // initTreatmentEnd(); +>>>>>>> staging initFluidBolus(); // Started the treatment - set the start time in epoch @@ -750,7 +757,8 @@ // sendLastTreatmentPeriodicData = TRUE; // treatmentEndTimeStamp = getRTCTimestamp(); pauseDialysis(); - requestNewOperationMode( MODE_STAN ); // TODO transitionToTreatmentEnd(); + //requestNewOperationMode( MODE_STAN ); // TODO + transitionToTreatmentEnd(); //SET_ALARM_WITH_1_U32_DATA( ALARM_ID_TD_END_OF_TREATMENT_WARNING, presTreatmentTimeSecs ); result = TREATMENT_END_STATE; } @@ -928,7 +936,7 @@ { TREATMENT_STATE_T result = TREATMENT_END_STATE; -// // Handle final rinseback alarm response from user + // Handle final rinseback alarm response from user // if ( TRUE == initiateRinsebackAlarmResponseRequest ) // { // signalTreatmentEndAlarmRinsebackUserAction(); Index: firmware/App/Modes/StateTxDialysis.c =================================================================== diff -u -ra1f14a4e422f94b6bc25d1b91839761e7e1196d7 -r95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372 --- firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision a1f14a4e422f94b6bc25d1b91839761e7e1196d7) +++ firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision 95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372) @@ -224,14 +224,36 @@ setBloodFlowRate = bPFlow; // Make rate changes in real time if currently performing dialysis. - if ( TREATMENT_DIALYSIS_STATE == getTreatmentState() ) + if ( TREATMENT_DIALYSIS_STATE == getTreatmentState() || (TREATMENT_END_STATE==getTreatmentState() )) { setBloodPumpTargetFlowRate( setBloodFlowRate, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); } } + /*********************************************************************//** * @brief + * The setDialysisBloodPumpFlowRate function sets the blood pump flow rate parameter. + * This function should be called prior to beginning dialysis treatment + * and when the user changes the blood flow rate during treatment. + * @details \b Inputs: none + * @details \b Outputs: setBloodFlowRate + * @param bPFlow target blood pump flow rate (in mL/min) + * @return none + *************************************************************************/ +void setDialysisBloodPumpFlowRateEndTx( U32 bPFlow ) +{ + setBloodFlowRate = bPFlow; + + // Make rate changes in real time if currently performing dialysis. + if ( (TREATMENT_END_STATE == getTreatmentState() )) + { + setBloodPumpTargetFlowRate( setBloodFlowRate, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); + } +} + +/*********************************************************************//** + * @brief * The setDialysisDDParams function sets the dialysate rate and ultrafiltration * volume and rate parameters. * @details \b Inputs: none Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -r9e2e190687fb9809a3890ae6f1cee0d860c3db46 -r95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372 --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 9e2e190687fb9809a3890ae6f1cee0d860c3db46) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372) @@ -8,7 +8,7 @@ * @file AlarmMgmtSWFaults.h * * @author (last) Praneeth Bunne -* @date (last) 02-Jul-2026 +* @date (last) 07-Aug-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -199,8 +199,13 @@ SW_FAULT_ID_PRE_TX_RECIRC_INVALID_STATE = 168, SW_FAULT_ID_TD_VALVES_INVALID_VALVE2 = 169, SW_FAULT_ID_INVALID_TUBE_SET_TYPE = 170, - SW_FAULT_ID_TREATMENT_END_INVALID_STATE=171, - NUM_OF_SW_FAULT_IDS + SW_FAULT_ID_INVALID_MESSAGE_PAYLOAD_LENGTH = 171, + SW_FAULT_ID_TD_BP_DRIVER_STATE = 172, + SW_FAULT_ID_TD_BP_MODULE_STATE = 173, + SW_FAULT_ID_INVALID_RINSEBACK_STATE = 174, + SW_FAULT_ID_TREATMENT_INVALID_RECIRC_STATE = 175, + SW_FAULT_ID_TREATMENT_END_INVALID_STATE=176, + NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; /**@}*/ Index: firmware/App/Services/StateServices/FluidBolus.c =================================================================== diff -u -ra1f14a4e422f94b6bc25d1b91839761e7e1196d7 -r95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372 --- firmware/App/Services/StateServices/FluidBolus.c (.../FluidBolus.c) (revision a1f14a4e422f94b6bc25d1b91839761e7e1196d7) +++ firmware/App/Services/StateServices/FluidBolus.c (.../FluidBolus.c) (revision 95c81a7d81fa3e6534bcf2e35e1d9b1eba26e372) @@ -469,10 +469,10 @@ // rejReason = ( result == TRUE ) ? REQUEST_REJECT_REASON_NONE : REQUEST_REJECT_REASON_INVALID_TREATMENT_SUB_STATE; // break; // -// case TREATMENT_END_STATE: -// result = signalTreatmentEndFluidBolusRequest(); -// rejReason = ( result == TRUE ) ? REQUEST_REJECT_REASON_NONE : REQUEST_REJECT_REASON_INVALID_TREATMENT_SUB_STATE; -// break; + case TREATMENT_END_STATE: + result = signalTreatmentEndFluidBolusRequest(); + rejReason = ( result == TRUE ) ? REQUEST_REJECT_REASON_NONE : REQUEST_REJECT_REASON_INVALID_TREATMENT_SUB_STATE; + break; default: rejReason = REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE;