Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -rdd9b59ba0d52b9cc17ecc56a05716a81aa1a6b65 -re7bc9d045b2da257ac8034a1d406525b8040a5d7 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision dd9b59ba0d52b9cc17ecc56a05716a81aa1a6b65) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision e7bc9d045b2da257ac8034a1d406525b8040a5d7) @@ -139,6 +139,10 @@ dgDialysateFlowRateRawLMin = 0.0F; dgDialysateFlowDataFreshFlag = FALSE; dgHeatDisinfectTemp = 0.0F; + dgLoadCellDataFreshFlag = FALSE; + dgDialysateTemperatureDataFreshFlag = FALSE; + dgReservoirsDataFreshFlag = FALSE; + dgOpModeDataFreshFlag = FALSE; // initialize load cell weights for ( i = 0; i < NUM_OF_LOAD_CELLS; i++ ) Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -rf7f615ed00ea829b9fc8941e6e06c91ab6a88991 -re7bc9d045b2da257ac8034a1d406525b8040a5d7 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision f7f615ed00ea829b9fc8941e6e06c91ab6a88991) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision e7bc9d045b2da257ac8034a1d406525b8040a5d7) @@ -269,35 +269,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 @@ -966,7 +984,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++; } Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -ra28daf72bbc8bd7313425471555d5189d946af13 -re7bc9d045b2da257ac8034a1d406525b8040a5d7 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision a28daf72bbc8bd7313425471555d5189d946af13) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision e7bc9d045b2da257ac8034a1d406525b8040a5d7) @@ -324,7 +324,6 @@ syringePumpSpeedCalcTimerCounter = 0; syringePumpRampTimerCtr = 0; syringePumpStopPositionTimerCounter = 0; - syringePumpSafetyVolumeDelivered = 0.0; syringePumpStateStartTime = getMSTimerCount(); syringePumpPositionKnown = FALSE; Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -ra28daf72bbc8bd7313425471555d5189d946af13 -re7bc9d045b2da257ac8034a1d406525b8040a5d7 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision a28daf72bbc8bd7313425471555d5189d946af13) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision e7bc9d045b2da257ac8034a1d406525b8040a5d7) @@ -463,6 +463,9 @@ { energized = TRUE; } + + // Send air trap event + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_AIR_TRAP_VALVE_ON_OFF, (U32)state, 0 ) } // Of course if invalid air trap state was requested, keep the valve de-energized (close) else