Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r32763ee524dc476f47ba41ee6c2a8a0c65ebf1e1 -r20f69d01f2a252eeef3d936dc0983491eb2e7a3d --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 32763ee524dc476f47ba41ee6c2a8a0c65ebf1e1) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 20f69d01f2a252eeef3d936dc0983491eb2e7a3d) @@ -7,8 +7,8 @@ * * @file AirTrap.c * -* @author (last) Sameer Kalliadan Poyil -* @date (last) 02-Mar-2026 +* @author (last) Praneeth Bunne +* @date (last) 13-Mar-2026 * * @author (original) Sean Nash * @date (original) 24-Oct-2024 @@ -26,6 +26,7 @@ #include "Pressures.h" #include "Switches.h" #include "TaskGeneral.h" +#include "TestSupport.h" #include "Timers.h" #include "Utilities.h" #include "Valve3Way.h" @@ -399,7 +400,11 @@ pendingStopAirTrapController = FALSE; result = AIR_TRAP_MANUAL_CONTROL_STATE; } - + // Skip fill and lower level events when no tubing set is installed + else if ( TRUE == getTestConfigStatus( TEST_CONFIG_TESTING_WITHOUT_TUBING_SET ) ) + { + result = AIR_TRAP_CLOSED_STATE; + } // Lower air trap level if fluid reaches upper level. else if ( AIR_TRAP_LEVEL_FLUID == getLevelSensorState( H16_LEVL ) ) { @@ -427,7 +432,6 @@ result = AIR_TRAP_LOWER_LEVEL_STATE; } } - // Raise air trap level once at start of treatment (blood priming) or when air detected at lower level else if ( ( airTrapWasFilledAtStartOfTreatement != TRUE ) || ( AIR_TRAP_LEVEL_AIR == getLevelSensorState( H17_LEVL ) ) ) Index: firmware/App/Monitors/Pressures.c =================================================================== diff -u -rbdfb6a7f371e1ac57304c10a9f543509b5751aa9 -r20f69d01f2a252eeef3d936dc0983491eb2e7a3d --- firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision bdfb6a7f371e1ac57304c10a9f543509b5751aa9) +++ firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision 20f69d01f2a252eeef3d936dc0983491eb2e7a3d) @@ -8,7 +8,7 @@ * @file Pressures.c * * @author (last) Varshini Nagabooshanam -* @date (last) 04-Feb-2026 +* @date (last) 13-Mar-2026 * * @author (original) Sean Nash * @date (original) 24-Sep-2024 @@ -590,7 +590,6 @@ F32 tmpPres = getTMPPressure(); F32 fpgaBaroPresPSI = getPressure( H23_PRES ); - // Filter inline pressure readings filterInlinePressureReadings( fpgaArtPres, fpgaVenPres, tmpPres); // Filter the baro pressure @@ -1216,7 +1215,41 @@ return result; } +/*********************************************************************//** +* @brief +* The pressureLimitHandleWidenRequest function validates pressure limit +* widening request received from the UI. +* @details \b Message \b Received: MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST +* @details \b Message \b Sent: MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE +* @details \b Inputs: none +* @details \b Outputs: pressure limits widened and stabilization restarted +* @param message set message from UI +* @return TRUE if request is valid, FALSE if not +*************************************************************************/ +BOOL pressureLimitHandleWidenRequest( MESSAGE_T *message ) +{ + BOOL result = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT; + UI_RESPONSE_PAYLOAD_T response; + // Verify message payload length + if ( message->hdr.payloadLen == 0 ) + { + // Initiate pressure stabilization + signalInitiatePressureStabilization( USE_NORMAL_STABILIZATION_PERIOD ); + result = TRUE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + + // Respond to request + response.accepted = result; + response.rejectionReason = rejReason; + sendMessage( MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)(&response), sizeof( UI_RESPONSE_PAYLOAD_T ) ); + + return result; +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ Index: firmware/App/Services/FpgaTD.c =================================================================== diff -u -r28d0fee79edb31bd1813045997c747bbcd0c6af1 -r20f69d01f2a252eeef3d936dc0983491eb2e7a3d --- firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 28d0fee79edb31bd1813045997c747bbcd0c6af1) +++ firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 20f69d01f2a252eeef3d936dc0983491eb2e7a3d) @@ -7,8 +7,8 @@ * * @file FpgaTD.c * -* @author (last) Sameer Kalliadan Poyil -* @date (last) 23-Feb-2026 +* @author (last) Jashwant Gantyada +* @date (last) 13-Mar-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -152,7 +152,7 @@ U08 h6RotorStatus; ///< Reg 346. H6 rotor status. U08 reserved5; ///< Reg 347. Reserved register. U16 h12Speed; ///< Reg 348. H12 speed (air pump in RPM). - U16 h4RotorRevsCounter; ///< Reg 350. Rotor revs counter + U16 h4RotorRevsCounter; ///< Reg 350. H4 rotor revs counter U16 baroManufactInfo; ///< Reg 352. Baro sensor manufacturing information. U16 baroPresSensitivity; ///< Reg 354. Baro sensor prom coefficient 1. U16 baroPresOffset; ///< Reg 356. Baro sensor prom coefficient 2. @@ -604,9 +604,9 @@ /*********************************************************************//** * @brief - * The rotorRevsCounter function gets the latest blood pump + * The getH4RotorRevsCounter function gets the latest blood pump * rotor revolutions count. - * @details \b Inputs: fpgaSensorReadings.rotorRevsCounter + * @details \b Inputs: fpgaSensorReadings.h4RotorRevsCounter * @details \b Outputs: none * @return Latest blood pump revolutions count reading. *************************************************************************/ Index: firmware/App/Services/FpgaTD.h =================================================================== diff -u -r28d0fee79edb31bd1813045997c747bbcd0c6af1 -r20f69d01f2a252eeef3d936dc0983491eb2e7a3d --- firmware/App/Services/FpgaTD.h (.../FpgaTD.h) (revision 28d0fee79edb31bd1813045997c747bbcd0c6af1) +++ firmware/App/Services/FpgaTD.h (.../FpgaTD.h) (revision 20f69d01f2a252eeef3d936dc0983491eb2e7a3d) @@ -7,8 +7,8 @@ * * @file FpgaTD.h * -* @author (last) Sameer Kalliadan Poyil -* @date (last) 23-Feb-2026 +* @author (last) Jashwant Gantyada +* @date (last) 12-Mar-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 Index: firmware/App/Services/Messaging.c =================================================================== diff -u -radb1e343d9d707ea451eb842cd6e0baa0ddbde35 -r20f69d01f2a252eeef3d936dc0983491eb2e7a3d --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision adb1e343d9d707ea451eb842cd6e0baa0ddbde35) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 20f69d01f2a252eeef3d936dc0983491eb2e7a3d) @@ -8,7 +8,7 @@ * @file Messaging.c * * @author (last) Jashwant Gantyada -* @date (last) 29-Jan-2026 +* @date (last) 13-Mar-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -113,6 +113,7 @@ { MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW, &signalUserInitiateTreatment }, { MSG_ID_UI_UF_PAUSE_RESUME_REQUEST, &signalPauseResumeUF }, { MSG_ID_TESTER_LOGIN_REQUEST, &handleTesterLogInRequest }, + { MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST, &pressureLimitHandleWidenRequest }, { MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST, &bloodPrimeHandleCmdRequest }, { MSG_ID_UI_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_REQUEST, &bloodPrimeHandleBloodFlowChangeRequest }, { MSG_ID_TD_SOFTWARE_RESET_REQUEST, &testTDSoftwareResetRequest }, @@ -167,9 +168,9 @@ { MSG_ID_TD_EJECTOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testEjectorDataPublishIntervalOverride }, { MSG_ID_TD_SET_AIR_TRAP_CONTROL, &testSetAirTrapControl }, { MSG_ID_TD_HOME_BLOOD_PUMP, &testHomeBloodPump }, - { MSG_ID_TD_BLOOD_FLOW_ALPHA_Y_INTERCEPT_OVERRIDE_REQUEST, &testBPFlowAlphaYInterceptOverride }, { MSG_ID_TD_BLOOD_FLOW_WEAR_A_TERM_OVERRIDE_REQUEST, &testBPFlowWearATermOverride }, { MSG_ID_TD_BLOOD_FLOW_WEAR_B_TERM_OVERRIDE_REQUEST, &testBPFlowWearBTermOverride }, + { MSG_ID_TD_BLOOD_FLOW_STROKE_VOLUME_OVERRIDE_REQUEST, &testBPStrokeVolumeOverride }, { MSG_ID_TD_SET_TEST_CONFIGURATION, &testSetTestConfiguration }, { MSG_ID_TD_GET_TEST_CONFIGURATION, &testGetTestConfiguration }, { MSG_ID_TD_RESET_ALL_TEST_CONFIGURATIONS, &testResetAllTestConfigurations }, @@ -184,6 +185,7 @@ { MSG_ID_TD_EJECTOR_OPT_SENSOR_OVERRIDE_REQUEST, &testEjectorOpticalSensorOverride }, { MSG_ID_TD_BLOOD_PRIME_VOLUME_OVERRIDE, &testBloodPrimeVolumeOverride }, { MSG_ID_TD_BLOOD_PRIME_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testBloodPrimePublishIntervalOverride }, + { MSG_ID_TD_ENABLE_VENOUS_BUBBLE_ALARM, &testEnableVenousBubbleAlarm }, }; #define NUM_OF_FUNCTION_HANDLERS (sizeof(MSG_FUNCTION_HANDLER_LOOKUP) / sizeof(MSG_HANDLER_LOOKUP_T)) Index: firmware/App/TDCommon.h =================================================================== diff -u -r98530527b3d247e5434af3f2463c5677a5d135f3 -r20f69d01f2a252eeef3d936dc0983491eb2e7a3d --- firmware/App/TDCommon.h (.../TDCommon.h) (revision 98530527b3d247e5434af3f2463c5677a5d135f3) +++ firmware/App/TDCommon.h (.../TDCommon.h) (revision 20f69d01f2a252eeef3d936dc0983491eb2e7a3d) @@ -7,8 +7,8 @@ * * @file TDCommon.h * -* @author (last) Varshini Nagabooshanam -* @date (last) 04-Feb-2026 +* @author (last) Dara Navaei +* @date (last) 06-Mar-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024