Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rf249310122b6543b4145bb4824966535c93515d0 -r8bfe61e466e4721f5d6180f2b67eeca04a3315ae --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision f249310122b6543b4145bb4824966535c93515d0) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 8bfe61e466e4721f5d6180f2b67eeca04a3315ae) @@ -49,7 +49,7 @@ #define DISINFECTS_DATA_PUB_INTERVAL ( 1 * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Disinfects data publish interval in counts. #define DISINFECTS_TIME_INTERVAL_S ( 3 * SECONDS_IN_A_DAY ) ///< HD/DG 3-day service interval in seconds. -#define FLUSH_TIME_INTERVAL_S ( 30 * SEC_PER_MIN * MS_PER_SECOND ) ///< Flush time interval in seconds. +#define FLUSH_TIME_INTERVAL_S ( 30 * SEC_PER_MIN ) ///< Flush time interval in seconds. #define MAX_ALLOWED_RO_FILTER_TEMP_FOR_TX_C 44.0F ///< Maximum allowed temperature to start a treatment in C. /// DG cleaning mode status data structure @@ -1140,27 +1140,28 @@ HD_USAGE_INFO_RECORD_T usageRecord; getNVRecord2Driver( GET_USAGE_RECORD, (U08*)&usageRecord, sizeof( HD_USAGE_INFO_RECORD_T ), 0, ALARM_ID_NO_ALARM ); - U32 lastChemCompleteDate = data.dgUsageInfo.lastChemDisCompleteDateEpoch; - U32 lastChemFlushCompleteDate = data.dgUsageInfo.lastChemDisFlushCompleteDateEpoch; - U32 lastHeatCompleteDate = data.dgUsageInfo.lastHeatDisCompleteDateEpoch; - U32 lastFlushCompleteDate = data.dgUsageInfo.lastBasicFlushCompleteDateEpoch; - U32 lastHeatCoolCompleteDate = data.dgUsageInfo.lastHeatActiveCoolCompleteDateEpoch; - U32 lastStartTxTimeDate = usageRecord.txLastStartTimeEpoch; + U32 lastChemCompleteDateS = data.dgUsageInfo.lastChemDisCompleteDateEpoch; + U32 lastChemFlushCompleteDateS = data.dgUsageInfo.lastChemDisFlushCompleteDateEpoch; + U32 lastHeatCompleteDateS = data.dgUsageInfo.lastHeatDisCompleteDateEpoch; + U32 lastFlushCompleteDateS = data.dgUsageInfo.lastBasicFlushCompleteDateEpoch; + U32 lastHeatCoolCompleteDateS = data.dgUsageInfo.lastHeatActiveCoolCompleteDateEpoch; + U32 lastStartTxTimeDateS = usageRecord.txLastStartTimeEpoch; + U32 currentRTCEpochTimeS = getRTCTimestamp(); // Last Treatment Start < Last Heat Disinfect Complete or Last Treatment Start < Last Chem Disinfect Complete so it means at least a heat disinfect // or a chemical disinfect has been done since the last treatment - BOOL hasDisBeenDone = ( ( ( lastStartTxTimeDate < lastChemCompleteDate ) || ( lastStartTxTimeDate < lastHeatCompleteDate ) ) ? TRUE : FALSE ); + BOOL hasDisBeenDone = ( ( ( lastStartTxTimeDateS < lastChemCompleteDateS ) || ( lastStartTxTimeDateS < lastHeatCompleteDateS ) ) ? TRUE : FALSE ); // Last Heat Disinfect Complete < Current Time – Heat Disinfect Interval, so the heat disinfect that has been done has not been expired - BOOL isHeatDisValid = ( lastHeatCompleteDate < ( getRTCTimestamp() - DISINFECTS_TIME_INTERVAL_S ) ? TRUE : FALSE ); + BOOL isHeatDisValid = ( ( currentRTCEpochTimeS - lastHeatCompleteDateS ) < DISINFECTS_TIME_INTERVAL_S ? TRUE : FALSE ); // Last Chem Flush Complete < Last Chem Disinfect Start, so after running a chemical disinfect, a chemical disinfect flush has been done - BOOL isChemFlushComplete = ( lastChemFlushCompleteDate > lastChemCompleteDate ? TRUE : FALSE ); + BOOL isChemFlushComplete = ( lastChemFlushCompleteDateS > lastChemCompleteDateS ? TRUE : FALSE ); // If either of the basic flush, heat disinfect, or chemical disinfect flush have been done within the interval, it means the filters have been flushed - BOOL isBasicFlushValid = ( lastFlushCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : FALSE ); - BOOL isChemFlushValid = ( lastChemFlushCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : FALSE ); - BOOL isHeatDisCoolFlushValid = ( lastHeatCoolCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : FALSE ); + BOOL isBasicFlushValid = ( ( currentRTCEpochTimeS - lastFlushCompleteDateS ) < FLUSH_TIME_INTERVAL_S ? TRUE : FALSE ); + BOOL isChemFlushValid = ( ( currentRTCEpochTimeS - lastChemFlushCompleteDateS ) < FLUSH_TIME_INTERVAL_S ? TRUE : FALSE ); + BOOL isHeatDisCoolFlushValid = ( ( currentRTCEpochTimeS - lastHeatCoolCompleteDateS ) < FLUSH_TIME_INTERVAL_S ? TRUE : FALSE ); BOOL isFlushValid = ( ( TRUE == isBasicFlushValid ) || ( TRUE == isChemFlushValid ) || ( TRUE == isHeatDisCoolFlushValid ) ); // If all of the above conditions are true, it means we can start a treatment @@ -1184,17 +1185,18 @@ ***********************************************************************/ static BOOL haveHDDGServicesBeenExpired( REQUEST_REJECT_REASON_CODE_T* rejReason ) { - BOOL status = FALSE; DG_SERVICE_AND_USAGE_DATA_T dgData; HD_SERVICE_RECORD_T hdServiceRecord; + BOOL status = FALSE; + U32 currentRTCEpochTime = getRTCTimestamp(); getHDVersionDGServiceAndUsageData( &dgData ); getNVRecord2Driver( GET_SRV_RECORD, (U08*)&hdServiceRecord, sizeof( HD_SERVICE_RECORD_T ), 0, ALARM_ID_NO_ALARM ); if ( TRUE == dgData.isDGServiceRecordAvailable ) { - U32 dgSrvcElapsedTimeS = getRTCTimestamp() - dgData.dgServiceRecord.lastServiceEpochDate; - U32 hdSrvcElapsedTimeS = getRTCTimestamp() - hdServiceRecord.lastServiceEpochDate; + U32 dgSrvcElapsedTimeS = currentRTCEpochTime - dgData.dgServiceRecord.lastServiceEpochDate; + U32 hdSrvcElapsedTimeS = currentRTCEpochTime - hdServiceRecord.lastServiceEpochDate; BOOL hasDGSrvcBeenExpired = ( dgSrvcElapsedTimeS > dgData.dgServiceRecord.serviceIntervalSeconds ? TRUE : FALSE ); BOOL hasHDSrvcBeenExpied = ( hdSrvcElapsedTimeS > hdServiceRecord.serviceIntervalSeconds ? TRUE : FALSE );