Index: NVDataMgmt.c =================================================================== diff -u -r8d336eee3efe362e9a690e40aadb16db2cf3d002 -r0d9e958dbe92ab81e3a749307eb5e1be93ec1cff --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 8d336eee3efe362e9a690e40aadb16db2cf3d002) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 0d9e958dbe92ab81e3a749307eb5e1be93ec1cff) @@ -29,8 +29,8 @@ #define QUEUE_MAX_SIZE 20U ///< Max queue size #define QUEUE_START_INDEX 0U ///< Queue start index -#define MIN_QUEUE_NEEDED_FOR_DATA_LOG 3U ///< Min queue required for data log (3) -#define MIN_QUEUE_NEEDED_FOR_SECTOR_0 4U ///< Min queue count needed to write all (4) records back in sector 0 +#define MIN_JOBS_NEEDED_FOR_DATA_LOG 3U //TODO Update AE ///< Min queue required for data log (3) +#define MIN_JOBS_NEEDED_FOR_SECTOR_0 4U //TODO Update AE ///< Min queue count needed to write all (4) records back in sector 0 // The clock frequency comes from HCLK_FREQ and it has to be rounded up to the // nearest number @@ -57,15 +57,14 @@ #define MAX_NUM_OF_SECTORS_FOR_LOG_DATA 3U ///< Max number of sector (3 sectors) #define MAX_LOG_DATA_PER_SECTOR (((BANK7_SECTOR1_END_ADDRESS + 1) - \ BANK7_SECTOR1_START_ADDRESS) / MAX_JOB_DATA_SIZE_BYTES) ///< Max log data per sector (512 for now) -#define MAX_NUM_OF_DATA_LOGS_IN_SECTOR3 (MAX_NUM_OF_SECTORS_FOR_LOG_DATA * MAX_LOG_DATA_PER_SECTOR) ///< Max number of accumulated logs in sector 3 (1536) -#define MAX_NUM_OF_DATA_LOGS_IN_SECTOR2 ((MAX_NUM_OF_SECTORS_FOR_LOG_DATA - 1) * MAX_LOG_DATA_PER_SECTOR) ///< Max number of accumulated logs in sector 2 (1024) -#define MAX_NUM_OF_DATA_LOGS_IN_SECTOR1 ((MAX_NUM_OF_SECTORS_FOR_LOG_DATA - 2) * MAX_LOG_DATA_PER_SECTOR) ///< Max number of accumulated logs in sector 1 (512) +#define MAX_NUM_OF_EVENTS_IN_SECTOR3 (MAX_NUM_OF_SECTORS_FOR_LOG_DATA * MAX_LOG_DATA_PER_SECTOR) //TODO Update AE ///< Max number of accumulated logs in sector 3 (1536) +#define MAX_NUM_OF_EVENTS_IN_SECTOR2 ((MAX_NUM_OF_SECTORS_FOR_LOG_DATA - 1) * MAX_LOG_DATA_PER_SECTOR) //TODO Update AE ///< Max number of accumulated logs in sector 2 (1024) +#define MAX_NUM_OF_EVENTS_IN_SECTOR1 ((MAX_NUM_OF_SECTORS_FOR_LOG_DATA - 2) * MAX_LOG_DATA_PER_SECTOR) //TODO Update AE ///< Max number of accumulated logs in sector 1 (512) // Data addresses and length in RTC RAM #define BOOTLOADER_FLAG_ADDRESS 0x00000000 ///< Bootloader start address in RTC RAM (0) #define BOOTLOADER_FLAG_LENGTH_BYTES 4U ///< Bootloader number of bytes (4 bytes) #define LOG_RECORD_START_ADDRESS 0x00000010 // 16 ///< Log record start address in RTC RAM (16) -#define MFG_RECORD_START_ADDRESS 0X00000020 // 32 ///< Log record start address in RTC RAM (32) #define HD_TREATMENT_TIME_ADDRESS 0X00000030 // 48 ///< HD treatment time start address in RTC RAM (48) #define DG_CONSUMED_WATER_ADDRESS 0X00000040 // 64 ///< DG water consumption start address in RTC RAM (64) #define SERVICE_DATE_START_ADDRESS 0X00000050 // 80 ///< Service date record start address in RTC RAM (80) @@ -104,7 +103,6 @@ NVDATAMGMT_EXEC_STATE_ERASE_EEPROM, ///< Exec state erase EEPROM NVDATAMGMT_EXEC_STATE_WRITE_TO_RTC, ///< Exec state write to RTC NVDATAMGMT_EXEC_STATE_READ_FROM_RTC, ///< Exec state read from RTC - NVDATAMGMT_EXEC_STATE_FAULT, ///< Exec state fault NUM_OF_NVDATAMGMT_EXEC_STATES ///< Total number of exec states } NVDATAMGMT_EXEC_STATE_T; @@ -455,7 +453,7 @@ BOOL status = FALSE; U32 availableQueue = getAvailableQueueCount(); - if ( availableQueue >= MIN_QUEUE_NEEDED_FOR_DATA_LOG ) + if ( availableQueue >= MIN_JOBS_NEEDED_FOR_DATA_LOG ) { enqueue( NVDATAMGMT_READ, NVDATAMGMT_EEPROM, 0, 0, buffer, length ); status = TRUE; @@ -474,10 +472,10 @@ * @param none * @return BOOL *************************************************************************/ -BOOL setTreatmentTime ( U32 mins ) +BOOL setTreatmentTime ( U32 hours ) { BOOL status = FALSE; - treatmentTimeRecord.treatmentTime = mins; + treatmentTimeRecord.treatmentTime = hours; treatmentTimeRecord.crc = crc16 ( (U08*)&treatmentTimeRecord.treatmentTime, sizeof(U32) ); if ( !isQueueFull() ) @@ -757,16 +755,11 @@ NVDataMgmtExecState = handleExecReadFromRAMState(); break; - case NVDATAMGMT_EXEC_STATE_FAULT: - - // Something failed, we shouldn't be here - break; - default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_NVDATAMGMT_EXEC_INVALID_STATE, NVDataMgmtExecState ); - NVDataMgmtExecState = NVDATAMGMT_EXEC_STATE_FAULT; + NVDataMgmtExecState = NVDATAMGMT_EXEC_STATE_IDLE; break; } } @@ -1118,7 +1111,7 @@ // The log header will be set to full by having the record count be at // maximum number of counts (1536 in this case) and the read index be a 0 // of the beginning of the log sectors - logRecord.logHeader.recordCount = MAX_NUM_OF_DATA_LOGS_IN_SECTOR3; + logRecord.logHeader.recordCount = MAX_NUM_OF_EVENTS_IN_SECTOR3; logRecord.logHeader.nextReadIndex = 0; logRecord.logHeader.nextReadIndex = 0; logRecord.logHeader.isHdrCorrupted = TRUE; @@ -1476,7 +1469,7 @@ // If full (1536) // 1. set readIndexChange = +512 // 2. set recordCountchange = -512 - if ( logRecord.logHeader.recordCount >= MAX_NUM_OF_DATA_LOGS_IN_SECTOR3 - 1 ) + if ( logRecord.logHeader.recordCount >= MAX_NUM_OF_EVENTS_IN_SECTOR3 - 1 ) { logRecord.logHeader.recordCount = logRecord.logHeader.recordCount - MAX_LOG_DATA_PER_SECTOR; readIndexChange = MAX_LOG_DATA_PER_SECTOR; @@ -1485,7 +1478,7 @@ } // Check for wrap in 1536 which is at the end of sector 3 - writeIndexChange = INC_WRAP( logRecord.logHeader.nextWriteIndex, LOG_DATA_START_INDEX, MAX_NUM_OF_DATA_LOGS_IN_SECTOR3 - 1 ); + writeIndexChange = INC_WRAP( logRecord.logHeader.nextWriteIndex, LOG_DATA_START_INDEX, MAX_NUM_OF_EVENTS_IN_SECTOR3 - 1 ); logRecord.logHeader.nextWriteIndex = writeIndexChange; logRecord.logHeader.recordCount = logRecord.logHeader.recordCount + recordCountChange; logRecord.logHeader.nextReadIndex = logRecord.logHeader.nextReadIndex + readIndexChange; @@ -1516,7 +1509,7 @@ // the start of sector 1. Sectors 1,2, and 3 have been allocated for logging data U32 opsStartAddress = ( logRecord.logHeader.nextReadIndex * MAX_JOB_DATA_SIZE_BYTES ) + BANK7_SECTOR1_START_ADDRESS; - U16 readIndexChange = INC_WRAP( logRecord.logHeader.nextReadIndex, LOG_DATA_START_INDEX, MAX_NUM_OF_DATA_LOGS_IN_SECTOR3 - 1 ); + U16 readIndexChange = INC_WRAP( logRecord.logHeader.nextReadIndex, LOG_DATA_START_INDEX, MAX_NUM_OF_EVENTS_IN_SECTOR3 - 1 ); logRecord.logHeader.nextReadIndex = readIndexChange; // Check if the read index has been wrapped to 0 and the flag is for data corruption @@ -1714,7 +1707,7 @@ BOOL status = FALSE; U32 currentQueueCount = getAvailableQueueCount(); - if ( currentQueueCount >= MIN_QUEUE_NEEDED_FOR_SECTOR_0 ) + if ( currentQueueCount >= MIN_JOBS_NEEDED_FOR_SECTOR_0 ) { // Sector 0 must be erased first enqueue ( NVDATAMGMT_ERASE_SECTOR, NVDATAMGMT_EEPROM, BANK7_SECTOR0_START_ADDRESS, 0, 0, 0 ); @@ -1749,7 +1742,7 @@ if ( didTimeout( currentTime, COMMAND_TIME_OUT ) ) { - SET_ALARM_WITH_2_U32_DATA( alarm, *state, 0 ); + SET_ALARM_WITH_1_U32_DATA( alarm, *state ); hasCommandTimedout = TRUE; status = TRUE; } @@ -1772,7 +1765,7 @@ BOOL status = FALSE; U32 availableQueue = getAvailableQueueCount(); - if ( availableQueue >= MIN_QUEUE_NEEDED_FOR_DATA_LOG ) + if ( availableQueue >= MIN_JOBS_NEEDED_FOR_DATA_LOG ) { enqueue( NVDATAMGMT_ERASE_SECTOR, NVDATAMGMT_EEPROM, BANK7_SECTOR1_START_ADDRESS, 0, 0, 0 ); enqueue( NVDATAMGMT_ERASE_SECTOR, NVDATAMGMT_EEPROM, BANK7_SECTOR2_START_ADDRESS, 0, 0, 0 ); Index: NVDataMgmt.h =================================================================== diff -u -re1f9404958c9ddab9b004399fb0870e09e37512b -r0d9e958dbe92ab81e3a749307eb5e1be93ec1cff --- NVDataMgmt.h (.../NVDataMgmt.h) (revision e1f9404958c9ddab9b004399fb0870e09e37512b) +++ NVDataMgmt.h (.../NVDataMgmt.h) (revision 0d9e958dbe92ab81e3a749307eb5e1be93ec1cff) @@ -97,7 +97,7 @@ void getServiceDate ( U08* buffer ); -BOOL setTreatmentTime ( U32 mins ); +BOOL setTreatmentTime ( U32 hours ); U32 getTreatmentTime ( void );