Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -rb1f1988fea3bf396aef67e2795f51a067c5f99a2 -r91068f6a6f3e2adae502fcda49e901e5ed752632 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision b1f1988fea3bf396aef67e2795f51a067c5f99a2) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 91068f6a6f3e2adae502fcda49e901e5ed752632) @@ -268,35 +268,53 @@ initFPGAPersistentAlarm( FPGA_PERS_ERROR_VENOUS_PRESSURE_SESNOR, ALARM_ID_HD_VENOUS_SENSOR_FPGA_FAULT, PRES_SENSORS_FPGA_ERROR_TIMEOUT_MS, PRES_SENSORS_FPGA_ERROR_TIMEOUT_MS ); - setPressureLimitsToOuterBounds(); + resetPresOccl(); currPresLimitsState = PRESSURE_LIMITS_STATE_OFF; pressureLimitsActive = FALSE; stabilizationStartTimeMs = 0; stableArterialPressure = 0; stableVenousPressure = 0; - venLowPresExemptAfterAirTrapFillTimerCtr = 0; prevVenLowPresExemptAfterAirTrapFillTimerCtr = 0; - resetArtVenPressureOffsets(); longFilteredArterialPressure = 0.0F; shortFilteredArterialPressure.data = 0.0F; longFilteredVenousPressure = 0.0F; shortFilteredVenousPressure.data = 0.0F; filteredBloodPumpOccl.data = 0.0F; - bloodPumpPartialOcclusionBaseline.data = 0.0F; - partialBloodPumpOcclBaselineUpdateTimerCounter = 0; presOcclDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; presOcclState = PRESSURE_WAIT_FOR_POST_STATE; presOcclPostState = PRESSURE_SELF_TEST_STATE_START; - bloodPumpOcclusionAfterCartridgeInstall = 0; - partialBloodPumpOcclBaselineUpdate = FALSE; - pressureStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; - resetFillExemptPeriod = TRUE; - lowVenousPressureExemptCheck = TRUE; } /*********************************************************************//** * @brief + * The resetPresOccl function resets the pressure occlusion variables for + * a new treatment. + * @details Inputs: none + * @details Outputs: venLowPresExemptAfterAirTrapFillTimerCtr, resetFillExemptPeriod + * lowVenousPressureExemptCheck, pressureStabilizeTime, + * bloodPumpOcclusionAfterCartridgeInstall, bloodPumpPartialOcclusionBaseline, + * partialBloodPumpOcclBaselineUpdateTimerCounter, emptySalineBagCtr + * @return none + *************************************************************************/ +void resetPresOccl( void ) +{ + venLowPresExemptAfterAirTrapFillTimerCtr = 0; + resetFillExemptPeriod = TRUE; + lowVenousPressureExemptCheck = TRUE; + pressureStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; + bloodPumpOcclusionAfterCartridgeInstall = 0; + bloodPumpPartialOcclusionBaseline.data = 0.0F; + partialBloodPumpOcclBaselineUpdate = FALSE; + partialBloodPumpOcclBaselineUpdateTimerCounter = 0; + emptySalineBagCtr = 0; + + setPressureLimitsToOuterBounds(); + resetArtVenPressureOffsets(); +} + +/*********************************************************************//** + * @brief * The resetArtVenPressureOffsets function resets the arterial and venous * offsets to zero. * @details Inputs: none @@ -965,7 +983,7 @@ else { // Increment counter on airtrap valve close state. Also, when next fill happens within exempt period, counter will be keep incremented irrespective of valve state. - if ( TRUE == lowVenousPressureExemptCheck ) + if ( lowVenousPressureExemptCheck != FALSE ) { venLowPresExemptAfterAirTrapFillTimerCtr++; }