Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -ra4d76e86bb3d374373b531c5b794e1270c004167 -rb13018664f3d4fe4786a0c4200304f84a6e742ca --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision a4d76e86bb3d374373b531c5b794e1270c004167) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision b13018664f3d4fe4786a0c4200304f84a6e742ca) @@ -7,8 +7,8 @@ * * @file ModeTreatment.c * -* @author (last) Sean Nash -* @date (last) 06-May-2024 +* @author (last) Vinayakam Mani +* @date (last) 10-May-2024 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -28,6 +28,7 @@ #include "NVDataMgmt.h" #include "OperationModes.h" #include "PersistentAlarm.h" +#include "PresOccl.h" #include "Reservoirs.h" #include "Rinseback.h" #include "RTC.h" @@ -761,6 +762,8 @@ sendTreatmentLogEventData( UF_START_RESUME_EVENT, 0.0, presUFRate ); } transitionToDialysis(); + // To update partial blood pump occlusion baseline - start of treatment + signalBloodPumpPressureOcclBaseline(); result = TREATMENT_DIALYSIS_STATE; } } @@ -1315,6 +1318,8 @@ // Set to new rate result &= setTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW, bloodRate ); setDialysisBloodPumpFlowRate( getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ) ); + // Update partial occlusion baseline when blood flow rate changes + signalBloodPumpPressureOcclBaseline(); } // Handle dialysate flow rate changes @@ -1325,6 +1330,8 @@ // Set to new rate result &= setTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW, dialRate ); setDialysisDialInFlowAndUFRate( getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), presMaxUFVolumeML, presUFRate ); + // Update partial occlusion baseline when dialysate flow rate changes + signalBloodPumpPressureOcclBaseline(); } } else Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rfd4a30ee0f905408c7f323995492763cc0765407 -rb13018664f3d4fe4786a0c4200304f84a6e742ca --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision fd4a30ee0f905408c7f323995492763cc0765407) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision b13018664f3d4fe4786a0c4200304f84a6e742ca) @@ -7,8 +7,8 @@ * * @file SystemComm.c * -* @author (last) Dara Navaei -* @date (last) 26-Apr-2024 +* @author (last) Vinayakam Mani +* @date (last) 02-May-2024 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -1326,6 +1326,14 @@ case MSG_ID_OCCLUSION_BLOOD_PUMP_OVERRIDE: handleTestBloodPumpOcclusionOverrideRequest( message ); + break; + + case MSG_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP_OVERRIDE: + handleTestFilteredBloodPumpOcclusionOverrideRequest( message ); + break; + + case MSG_ID_HD_PARTIAL_OCCL_BLOOD_PUMP_BASELINE_OVERRIDE: + handleTestBloodPumpOcclusionBaselineOverrideRequest( message ); break; case MSG_ID_PRES_OCCL_SEND_INTERVAL_OVERRIDE: Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rd70e51a4923a1815042e579c78b585b9f987a5df -rb13018664f3d4fe4786a0c4200304f84a6e742ca --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d70e51a4923a1815042e579c78b585b9f987a5df) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision b13018664f3d4fe4786a0c4200304f84a6e742ca) @@ -7,8 +7,8 @@ * * @file SystemCommMessages.c * -* @author (last) Dara Navaei -* @date (last) 26-Apr-2024 +* @author (last) Vinayakam Mani +* @date (last) 02-May-2024 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -4616,6 +4616,70 @@ /*********************************************************************//** * @brief + * The handleTestFilteredBloodPumpOcclusionOverrideRequest function handles a request to + * override the filtered blood pump occlusion sensor readings. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestFilteredBloodPumpOcclusionOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // Verify payload length + if ( sizeof(TEST_OVERRIDE_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetFilteredBloodPumpOcclusionOverride( payload.state.f32 ); + } + else + { + result = testResetFilteredBloodPumpOcclusionOverride(); + } + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief + * The handleTestBloodPumpOcclusionBaselineOverrideRequest function handles a request to + * override the blood pump occlusion baseline value. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestBloodPumpOcclusionBaselineOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // Verify payload length + if ( sizeof(TEST_OVERRIDE_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetBloodPumpPartialOcclusionBaselineOverride( payload.state.f32 ); + } + else + { + result = testResetBloodPumpPartialOcclusionBaselineOverride(); + } + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief * The handleTestPresOcclBroadcastIntervalOverrideRequest function handles a request to * override the broadcast interval for pressure/occlusion data. * @details Inputs: none Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -re316cf48cb5fd96494e970590f68ca503a93a71e -rb13018664f3d4fe4786a0c4200304f84a6e742ca --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision e316cf48cb5fd96494e970590f68ca503a93a71e) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision b13018664f3d4fe4786a0c4200304f84a6e742ca) @@ -7,8 +7,8 @@ * * @file SystemCommMessages.h * -* @author (last) Dara Navaei -* @date (last) 26-Apr-2024 +* @author (last) Vinayakam Mani +* @date (last) 02-May-2024 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -647,7 +647,13 @@ void handleTestVenousPressureOverrideRequest( MESSAGE_T *message ); // MSG_ID_OCCLUSION_BLOOD_PUMP_OVERRIDE -void handleTestBloodPumpOcclusionOverrideRequest( MESSAGE_T *message ); +void handleTestBloodPumpOcclusionOverrideRequest( MESSAGE_T *message ); + +//MSG_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP_OVERRIDE +void handleTestFilteredBloodPumpOcclusionOverrideRequest( MESSAGE_T *message ); + +//MSG_ID_HD_PARTIAL_OCCL_BLOOD_PUMP_BASELINE_OVERRIDE +void handleTestBloodPumpOcclusionBaselineOverrideRequest( MESSAGE_T *message ); // MSG_ID_PRES_OCCL_SEND_INTERVAL_OVERRIDE void handleTestPresOcclBroadcastIntervalOverrideRequest( MESSAGE_T *message );