Index: NVDataMgmt.c =================================================================== diff -u -re2611bd03c4a86fae5d4f525b91d6fbfb597a8e0 -rb8e02ae9dc7f0ee831aaba7d15d7df96e745d1e5 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision e2611bd03c4a86fae5d4f525b91d6fbfb597a8e0) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision b8e02ae9dc7f0ee831aaba7d15d7df96e745d1e5) @@ -552,11 +552,14 @@ static BOOL areRecordsValid( void ); static BOOL isPolynomialRecordValid( POLYNOMIAL_CAL_PAYLOAD_T* record ); +#ifndef _RELEASE_ +static BOOL isSWConfigRecordValid( void ); +#endif + #ifdef _DG_ static BOOL isDGSystemRecordValid( void ); static BOOL isDGServiceRecordValid( void ); static BOOL isDGCalibrationRecordValid( void ); -static BOOL isSWConfigRecordValid( void ); static BOOL isDGConcPumpRecordValid( DG_CONC_PUMPS_CAL_DATA_T* record ); static BOOL isDGDrainPumpRecordValid( DG_DRAIN_PUMP_CAL_RECORD_T* record ); static BOOL isDGROPumpRecordValid( DG_RO_PUMP_CAL_RECORD_T* record ); @@ -576,9 +579,6 @@ static BOOL isHDSystemRecordValid( void ); static BOOL isHDServiceRecordValid( void ); static BOOL isHDCalibrationRecordValid( void ); -#ifndef _RELEASE_ -static BOOL isSWConfigRecordValid( void ); -#endif static BOOL isHDValveRecordValid( HD_VALVE_CAL_PAYLOAD_T* record ); static BOOL isHDPumpRecordValid( HD_PUMP_CAL_PAYLOAD_T* record ); static BOOL isHDAccelerometerSensorValid( HD_ACCELEROMETER_SENSOR_CAL_RECORD_T* record ); @@ -1790,8 +1790,10 @@ haveCalGroupsPassed = isDGCalibrationRecordValid(); hasSystemRecordPassed = isDGSystemRecordValid(); hasServiceRecordPassed = isDGServiceRecordValid(); +#ifndef _RELEASE_ hasSWConfigRecordPassed = isSWConfigRecordValid(); #endif +#endif #ifdef _HD_ haveCalGroupsPassed = isHDCalibrationRecordValid(); hasSystemRecordPassed = isHDSystemRecordValid(); @@ -3122,13 +3124,15 @@ * @brief * The isSWConfigRecordValid function checks the validity of the software * configuration record. - * @details Inputs: dgSWConfigGroup - * @details Outputs: dgSWConfigGroup + * @details Inputs: dgSWConfigGroup, hdSWConfigGroup + * @details Outputs: dgSWConfigGroup, hdSWConfigGroup * @return TRUE if the DG system record is valid otherwise FALSE *************************************************************************/ static BOOL isSWConfigRecordValid( void ) { - BOOL status = TRUE; + BOOL status = TRUE; + +#ifdef _DG_ U16 calcCRC = crc16( (U08*)&dgSWConfigGroup, sizeof( DG_SW_CONFIG_GROUP_T ) - sizeof(U16) ); U16 recordCRC = dgSWConfigGroup.crc; @@ -3144,7 +3148,26 @@ // Set the to FALSE since the record is not valid status = FALSE; } +#endif +#ifdef _HD_ + U16 calcCRC = crc16( (U08*)&hdSWConfigGroup, sizeof( HD_SW_CONFIG_GROUP_T ) - sizeof(U16) ); + U16 recordCRC = hdSWConfigGroup.crc; + + if ( calcCRC != recordCRC ) + { + memset( (U08*)&hdSWConfigGroup, SW_CONFIG_DISABLE_VALUE, sizeof( HD_SW_CONFIG_GROUP_T ) ); + + // Recalculate the CRC with the default values + hdSWConfigGroup.crc = crc16( (U08*)&hdSWConfigGroup, sizeof( HD_SW_CONFIG_GROUP_T ) - sizeof(U16) ); + + //activateAlarmNoData( ALARM_ID_HD_SW_CONFIG_RECORD_INVALID_CRC ); // TODO remove + + // Set the to FALSE since the record is not valid + status = FALSE; + } +#endif + return status; } @@ -3683,40 +3706,8 @@ return isCalRecordValid; } -#ifndef _RELEASE_ /*********************************************************************//** * @brief - * The isSWConfigRecordValid function checks the validity of the software - * configuration record. - * @details Inputs: hdSWConfigGroup - * @details Outputs: hdSWConfigGroup - * @return TRUE if the DG system record is valid otherwise FALSE - *************************************************************************/ -static BOOL isSWConfigRecordValid( void ) -{ - BOOL status = TRUE; - U16 calcCRC = crc16( (U08*)&hdSWConfigGroup, sizeof( HD_SW_CONFIG_GROUP_T ) - sizeof(U16) ); - U16 recordCRC = hdSWConfigGroup.crc; - - if ( calcCRC != recordCRC ) - { - memset( (U08*)&hdSWConfigGroup, SW_CONFIG_DISABLE_VALUE, sizeof( HD_SW_CONFIG_GROUP_T ) ); - - // Recalculate the CRC with the default values - hdSWConfigGroup.crc = crc16( (U08*)&hdSWConfigGroup, sizeof( HD_SW_CONFIG_GROUP_T ) - sizeof(U16) ); - - //activateAlarmNoData( ALARM_ID_HD_SW_CONFIG_RECORD_INVALID_CRC ); // TODO remove - - // Set the to FALSE since the record is not valid - status = FALSE; - } - - return status; -} -#endif - -/*********************************************************************//** - * @brief * The isHDPumpRecordValid function checks whether the calibration record * of HD pump(s) is valid or not. * @details Inputs: none