Index: NVDataMgmt.c =================================================================== diff -u -r1afbd991f98562fda8059c75c59c0ea5b64243e4 -r76ccffbbaf71efeeead896f05c0d800c9367ab73 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 1afbd991f98562fda8059c75c59c0ea5b64243e4) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 76ccffbbaf71efeeead896f05c0d800c9367ab73) @@ -1466,13 +1466,33 @@ { switch ( disinfect ) { - case USAGE_INFO_HEAT_DISINFECT: - dgUsageInfoGroup.dgUsageInfo.lastHeatDisDateEpoch = epochTime; + case USAGE_INFO_BASIC_FLUSH: + dgUsageInfoGroup.dgUsageInfo.lastBasicFlushCompleteDateEpoch = epochTime; break; - case USAGE_INFO_CHEMICAL_DISINFECT: - dgUsageInfoGroup.dgUsageInfo.lastChemicalDisDateEpoch = epochTime; + case USAGE_INFO_CHEM_DIS_START: + dgUsageInfoGroup.dgUsageInfo.lastChemDisStartDateEpoch = epochTime; break; + + case USAGE_INFO_CHEM_DIS: + dgUsageInfoGroup.dgUsageInfo.lastChemDisCompleteDateEpoch = epochTime; + break; + + case USAGE_INFO_CHEM_FLUSH: + dgUsageInfoGroup.dgUsageInfo.lastChemDisFlushCompleteDateEpoch = epochTime; + break; + + case USAGE_INFO_HEAT_DIS: + dgUsageInfoGroup.dgUsageInfo.lastHeatDisCompleteDateEpoch = epochTime; + break; + + case USAGE_INFO_FILTER_FLUSH: + dgUsageInfoGroup.dgUsageInfo.lastFilterFlushCompleteDateEpoch = epochTime; + break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_USAGE_INFO_SELECTED, disinfect ); + break; } dgUsageInfoGroup.dgUsageInfo.crc = crc16( (U08*)&dgUsageInfoGroup.dgUsageInfo, sizeof( DG_USAGE_INFO_RECORD_T ) - sizeof( U16 ) ); @@ -1493,38 +1513,6 @@ /*********************************************************************//** * @brief - * The setDisinfectStatus sets a queue job to write whether the device is already - * disinfected or not. - * @details Inputs: dgUsageInfoGroup - * @details Outputs: dgUsageInfoGroup - * @param disinfectStatus disinfect status - * @return TRUE if queue is not full - *************************************************************************/ -BOOL setDisinfectStatus( BOOL disinfectStatus ) -{ - BOOL status = FALSE; - - if ( FALSE == isQueueFull() ) - { - dgUsageInfoGroup.dgUsageInfo.isDisinfected = disinfectStatus; - dgUsageInfoGroup.dgUsageInfo.crc = crc16( (U08*)&dgUsageInfoGroup.dgUsageInfo, sizeof( DG_USAGE_INFO_RECORD_T ) - sizeof( U16 ) ); - dgUsageInfoGroup.crc = crc16( (U08*)&dgUsageInfoGroup, sizeof( DG_USAGE_INFO_GROUP_T ) - sizeof( U16 ) ); - usageWriteTries = 0; - status = TRUE; - - enqueueRecordJob( NVDATAMGMT_WRITE, RECORDS_SPECS[ NVDATAMGMT_USAGE_INFO_RECORD ].dataLoc, NVDATAMGMT_USAGE_INFO_RECORD ); - SEND_EVENT_WITH_2_U32_DATA( RECORDS_SPECS[ NVDATAMGMT_USAGE_INFO_RECORD ].nvEvent, 0, 0 ) - } - else if ( ++usageWriteTries > MAX_NUM_OF_WRITE_TRIES ) - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_WRITE_USAGE_INFO_TO_NV_FAILURE, USAGE_INFO_DISIFNECT_STATUS ); - } - - return status; -} - -/*********************************************************************//** - * @brief * The setHeatersInfoRecord sets a queue job to write the DG heaters info * back to the RTC RAM. * @details Inputs: none @@ -2786,15 +2774,14 @@ if ( calcCRC != recordCRC ) { - dgUsageInfoGroup.dgUsageInfo.isDisinfected = FALSE; - dgUsageInfoGroup.dgUsageInfo.lastChemicalDisDateEpoch = 0; - dgUsageInfoGroup.dgUsageInfo.lastHeatDisDateEpoch = 0; - dgUsageInfoGroup.dgUsageInfo.roWaterGenSinceLastServiceL = 0.0F; - dgUsageInfoGroup.dgUsageInfo.roWaterGenTotalL = 0.0F; - dgUsageInfoGroup.dgUsageInfo.lastResetTimeEpoch = getRTCTimestamp(); - dgUsageInfoGroup.dgUsageInfo.crc = crc16( (U08*)&dgUsageInfoGroup.dgUsageInfo, sizeof( DG_USAGE_INFO_RECORD_T ) - sizeof( U16 ) ); - dgUsageInfoGroup.crc = crc16( (U08*)&dgUsageInfoGroup, sizeof( DG_USAGE_INFO_GROUP_T ) - sizeof( U16 ) ); - status = FALSE; + dgUsageInfoGroup.dgUsageInfo.lastChemDisCompleteDateEpoch = 0; + dgUsageInfoGroup.dgUsageInfo.lastHeatDisCompleteDateEpoch = 0; + dgUsageInfoGroup.dgUsageInfo.roWaterGenSinceLastServiceL = 0.0F; + dgUsageInfoGroup.dgUsageInfo.roWaterGenTotalL = 0.0F; + dgUsageInfoGroup.dgUsageInfo.lastResetTimeEpoch = getRTCTimestamp(); + dgUsageInfoGroup.dgUsageInfo.crc = crc16( (U08*)&dgUsageInfoGroup.dgUsageInfo, sizeof( DG_USAGE_INFO_RECORD_T ) - sizeof( U16 ) ); + dgUsageInfoGroup.crc = crc16( (U08*)&dgUsageInfoGroup, sizeof( DG_USAGE_INFO_GROUP_T ) - sizeof( U16 ) ); + status = FALSE; activateAlarmNoData( ALARM_ID_DG_INVALID_USAGE_RECORD_CRC ); }