Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r37733a07bec6a752717a9eadcab000685546eb83 -r5fa843c018ed7c4b19013bbecf694b5a1596d166 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 37733a07bec6a752717a9eadcab000685546eb83) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 5fa843c018ed7c4b19013bbecf694b5a1596d166) @@ -100,11 +100,8 @@ static DG_RESERVOIR_ID_T dgActiveReservoirSet; ///< Active reservoir commanded. // Tdi temperature Monitor -static DG_RESERVOIR_ID_T dgPrevActiveReservoir; ///< Previous Active reservoir. -static DG_RESERVOIR_ID_T dgTempActiveReservoir; ///< Temp Active reservoir. static DG_TDI_TEMP_COUNTER_T dgTdiTempCounter; ///< DG Tdi temperature Counter. - static DG_DISINFECT_UI_STATES_T disinfectsStatus; ///< DG disinfects status. static DG_MIXING_RATIOS_T dgMixingRatios; ///< DG mixing ratios. static HEATERS_DATA_T dgHeatersData; ///< DG heaters data. @@ -206,8 +203,8 @@ dgTdiTempCounter.prevTdiTempUpCounter = 0; dgTdiTempCounter.prevTdiTempDownCounter = 0; dgTdiTempCounter.clearAlarmStartTime = 0; - dgPrevActiveReservoir = DG_RESERVOIR_2; - dgTempActiveReservoir = DG_RESERVOIR_2; + dgTdiTempCounter.dgPrevActiveReservoir = DG_RESERVOIR_2; + dgTdiTempCounter.dgTempActiveReservoir = DG_RESERVOIR_2; } /**********************************************************************//** @@ -1288,28 +1285,25 @@ BOOL isTDiTempBelowDialysateTarget = ( dgDialysateTemp <= TDiLow ? TRUE : FALSE ); BOOL isTempBelowTrigger = (BOOL)( isTDITempBelowLowSafety || isTDiTempBelowDialysateTarget ); BOOL isTempAboveTrigger = (BOOL)( isTDiTempAboveLowSafety || isTDiTempAboveDialysateTarget ); - DG_RESERVOIR_ID_T CurrentactiveRes = getDGActiveReservoir(); + DG_RESERVOIR_ID_T CurrentActiveRes = getDGActiveReservoir(); - #ifndef _RELEASE_ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_DIALYSATE_TEMP_CHECK ) != SW_CONFIG_ENABLE_VALUE ) #endif { BOOL alarmIsActive = isAlarmActive( ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP ); - if( TRUE == isTempBelowTrigger ) + if ( TRUE == isTempBelowTrigger ) { // clear alarm - if (( TRUE == alarmIsActive ) && - ( dgTdiTempCounter.clearAlarmStartTime == 0 )) + if ( TRUE == alarmIsActive ) { - dgTdiTempCounter.clearAlarmStartTime = getMSTimerCount(); - } - - if( TRUE == alarmIsActive ) - { - if( TRUE == didTimeout(dgTdiTempCounter.clearAlarmStartTime, DIALYSATE_TEMP_CLEAR_TIMEOUT_MS )) + if ( dgTdiTempCounter.clearAlarmStartTime == 0 ) { + dgTdiTempCounter.clearAlarmStartTime = getMSTimerCount(); + } + else if ( TRUE == didTimeout(dgTdiTempCounter.clearAlarmStartTime, DIALYSATE_TEMP_CLEAR_TIMEOUT_MS ) ) + { clearAlarmCondition( ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP ); } } @@ -1320,10 +1314,10 @@ } // Tdi high temp alarm handling - if( CurrentactiveRes != dgPrevActiveReservoir ) + if ( CurrentActiveRes != dgTdiTempCounter.dgPrevActiveReservoir ) { //Increment up count when temperature is exceeded the defined threshold - if( TRUE == isTempAboveTrigger ) + if ( TRUE == isTempAboveTrigger ) { //Increment up counter dgTdiTempCounter.tdiTempUpCounter++; @@ -1336,15 +1330,15 @@ } //hold current reservoir in a temporary variable - dgTempActiveReservoir = CurrentactiveRes; + dgTdiTempCounter.dgTempActiveReservoir = CurrentActiveRes; } else { // last reservoir cycle temperature should have crossed the threshold level, // to compute next reservoir cycle temperature rise count is greater than the previous one. - if( (dgTdiTempCounter.prevTdiTempUpCounter != 0) && - (dgTdiTempCounter.tdiTempUpCounter >= dgTdiTempCounter.prevTdiTempUpCounter ) && - (dgTdiTempCounter.tdiTempDownCounter <= dgTdiTempCounter.prevTdiTempDownCounter )) + if ( (dgTdiTempCounter.prevTdiTempUpCounter != 0) && + (dgTdiTempCounter.tdiTempUpCounter >= dgTdiTempCounter.prevTdiTempUpCounter ) && + (dgTdiTempCounter.tdiTempDownCounter <= dgTdiTempCounter.prevTdiTempDownCounter ) ) { //Activate Alarm SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP, dgDialysateTemp, dgTrimmerTempSet ); @@ -1355,7 +1349,7 @@ dgTdiTempCounter.tdiTempUpCounter = 0; dgTdiTempCounter.tdiTempDownCounter = 0; // assign last temp reservoir to previous Active reservoir value once reservoir switch happened - dgPrevActiveReservoir = dgTempActiveReservoir; + dgTdiTempCounter.dgPrevActiveReservoir = dgTdiTempCounter.dgTempActiveReservoir; } // check clear condition first @@ -1365,7 +1359,6 @@ } checkPersistentAlarm(ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP, isTDiTempAboveHighSafety, dgDialysateTemp, dgTrimmerTempSet ); - if ( TRUE == isAlarmActive( ALARM_ID_HD_DIALYSATE_TEMP_BELOW_TARGET_TEMP ) ) { isTempBelowTrigger = ( dgDialysateTemp >= ( dgTrimmerTempSet - DIALYSATE_TEMP_OUT_OF_TARGET_CLEAR_TOL_C ) ? FALSE : TRUE );