Index: NVDataMgmt.c =================================================================== diff -u -r627272f9f9c63fca45d18e4a1bafe3d01324e2be -re1da2cdff2dc0a62f78c08a46976f937c8c7bdf5 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 627272f9f9c63fca45d18e4a1bafe3d01324e2be) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision e1da2cdff2dc0a62f78c08a46976f937c8c7bdf5) @@ -143,16 +143,16 @@ #define DEFAULT_UF_TEMP_TAU_C_PER_MIN -1.0F ///< Ultrafilter temperature time constant C/min. #define DEFAULT_UF_VOLUME_ML 700 ///< Ultrafilter volume in milliliters. -#define DEFAULT_FILL_1251_1_ACID_SNSR_US_PER_CM 11518.05F ///< Fill acid 1251_1 acid sensor conductivity uS/cm. +#define DEFAULT_FILL_1251_1_ACID_SNSR_US_PER_CM 0.0F ///< Fill acid 1251_1 acid sensor conductivity uS/cm. #define DEFAULT_FILL_1251_1_BIC_SNSR_US_PER_CM 13616.23F ///< Fill acid 1251_1 bicarb sensor conductivity uS/cm. -#define DEFAULT_FILL_2251_0_ACID_SNSR_US_PER_CM 11645.05F ///< Fill acid 2251_0 acid sensor conductivity uS/cm. +#define DEFAULT_FILL_2251_0_ACID_SNSR_US_PER_CM 0.0F ///< Fill acid 2251_0 acid sensor conductivity uS/cm. #define DEFAULT_FILL_2251_0_BIC_SNSR_US_PER_CM 13734.88F ///< Fill acid 2251_0 bicarb sensor conductivity uS/cm. -#define DEFAULT_FILL_3251_9_ACID_SNSR_US_PER_CM 11773.1F ///< Fill acid 3251_9 acid sensor conductivity uS/cm. +#define DEFAULT_FILL_3251_9_ACID_SNSR_US_PER_CM 0.0F ///< Fill acid 3251_9 acid sensor conductivity uS/cm. #define DEFAULT_FILL_3251_9_BIC_SNSR_US_PER_CM 13854.49F ///< Fill acid 3251_9 bicarb sensor conductivity uS/cm. -#define DEFAULT_ACID_TEST_1251_1_US_PER_CM 12118.71F ///< Acid test acid 1251_1 acid conductivity uS/cm. -#define DEFAULT_ACID_TEST_2251_0_US_PER_CM 12252.1F ///< Acid test acid 2251_0 acid conductivity uS/cm. -#define DEFAULT_ACID_TEST_3251_9_US_PER_CM 12386.57F ///< Acid acid 3251_9 acid conductivity uS/cm. +#define DEFAULT_ACID_TEST_1251_1_US_PER_CM 13768.28F ///< Acid test acid 1251_1 acid conductivity uS/cm. +#define DEFAULT_ACID_TEST_2251_0_US_PER_CM 13919.05F ///< Acid test acid 2251_0 acid conductivity uS/cm. +#define DEFAULT_ACID_TEST_3251_9_US_PER_CM 14071.04F ///< Acid acid 3251_9 acid conductivity uS/cm. #define DEFAULT_BIC_TEST_ACID_SNSR_US_PER_CM 0.0F ///< Bicarb test acid sensor conductivity uS/cm. #define DEFAULT_BIC_TEST_BIC_SNSR_US_PER_CM 3890.0F ///< Bicarb test bicarb sensor conductivity uS/cm. @@ -314,6 +314,7 @@ DG_FANS_CAL_RECORD_T fansRecord; ///< DG fans. DG_ACCEL_SENSOR_CAL_RECORD_T accelerometerSensorCalRecord; ///< DG accelerometer sensor. DG_HEATING_CAL_RECORD_T heatingCalRecord; ///< DG heating calibration record. + DG_CHEMICALS_FILL_COND_CAL_RECORD_T fillCondCalRecord; ///< DG fill acid/bicarb target conductivities calibration record. } DG_CALIBRATION_GROUPS_T; /// DG calibration records structure @@ -449,10 +450,6 @@ static DG_SW_CONFIG_GROUP_T dgSWConfigGroup; ///< DG Software configurations structure(including padding and final CRC). #endif -// TODO this is temporary until it is added to the cal records -static DG_CHEMICALS_FILL_COND_CAL_RECORD_T tempChemsRecordRemove; -// TODO this is temporary until it is added to the cal records - // Process records specifications const PROCESS_RECORD_SPECS_T RECORDS_SPECS[ NUM_OF_NVDATMGMT_RECORDS_JOBS ] = { // Start address Size of the job Max write bytes per job Max read bytes per job Record structure pointer Record CRC pointer Memory location Event calibration record update @@ -598,7 +595,7 @@ static BOOL isDGFanRecordValid( DG_FAN_CAL_RECORD_T* record ); static BOOL isDGAccelerometerSensorRecordValid( DG_ACCEL_SENSOR_CAL_RECORD_T* record ); static BOOL isDGHeatingCalRecordValid( DG_HEATING_CAL_RECORD_T* record ); -static BOOL isDGFillConductiviesRecordValid( DG_ACID_BICARB_FILL_COND_VALUES_T* record, DG_FILL_COND_OPS_T test, DG_ACID_TYPES_T acidType ); +static BOOL isDGFillConductiviesRecordValid( DG_ACID_BICARB_FILL_COND_VALUES_T* record, DG_ACID_TYPES_T acidType, DG_FILL_COND_OPS_T operation ); static BOOL isDGCondSensorsTemperatureCompensationRecordValid( DG_COND_SENSOR_TEMP_COMP_CAL_PAYLOAD_T* record ); #endif @@ -1217,19 +1214,20 @@ break; case GET_CAL_FILL_CONDUCTIVITIES_RECORD: - nvDataStartPtr = (U08*)&tempChemsRecordRemove.fillCondValues; - nvDataLength = sizeof( tempChemsRecordRemove.fillCondValues ); - /* TODO un-comment when it is added to calibration record - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_1251_1 ][ FILL_COND_NORMAL_OP ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_1251_1 ][ FILL_COND_ACID_TEST ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_1251_1 ][ FILL_COND_BICARB_TEST ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_2251_0 ][ FILL_COND_NORMAL_OP ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_2251_0 ][ FILL_COND_ACID_TEST ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_2251_0 ][ FILL_COND_BICARB_TEST ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_3251_9 ][ FILL_COND_NORMAL_OP ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_3251_9 ][ FILL_COND_ACID_TEST ].calibrationTime ? TRUE : FALSE ); - isNVDataInvalid |= ( 0 == tempChemsRecordRemove.fillCondValues[ ACID_08_3251_9 ][ FILL_COND_BICARB_TEST ].calibrationTime ? TRUE : FALSE ); - */ + { + DG_FILL_COND_OPS_T fillOps; + + nvDataStartPtr = (U08*)&dgCalibrationRecord.dgCalibrationGroups.fillCondCalRecord.fillCondValues; + nvDataLength = sizeof( dgCalibrationRecord.dgCalibrationGroups.fillCondCalRecord.fillCondValues ); + + for ( i = 0; i < numOfSnsrs2Check; i++ ) + { + for ( fillOps = FILL_COND_NORMAL_OP; fillOps < NUM_OF_FILL_COND_TEST; fillOps++ ) + { + isNVDataInvalid |= ( 0 == dgCalibrationRecord.dgCalibrationGroups.fillCondCalRecord.fillCondValues[ i ][ fillOps ].calibrationTime ? TRUE : FALSE ); + } + } + } break; case GET_INF_HEATERS_RECORD: @@ -3032,7 +3030,7 @@ for ( i = 0; i < NUM_OF_CAL_DATA_COND_SENSORS_TEMP_COMP; i++ ) { isHardwareRecordValid = isDGCondSensorsTemperatureCompensationRecordValid( &condTemp->condSensorsTempComp[ i ] ); - isCalRecordValid = ( isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid ); + isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; } DG_CONC_PUMPS_CAL_RECORD_T* concPump = &dgCalibrationRecord.dgCalibrationGroups.concentratePumpsRecord; @@ -3121,6 +3119,17 @@ isHardwareRecordValid = isDGHeatingCalRecordValid( heating ); isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + DG_FILL_COND_OPS_T j; + DG_CHEMICALS_FILL_COND_CAL_RECORD_T* acidBicarbTempRecord = &dgCalibrationRecord.dgCalibrationGroups.fillCondCalRecord; + for ( i = 0; i < NUM_OF_ACID_TYPE; i++ ) + { + for ( j = FILL_COND_NORMAL_OP; j < NUM_OF_FILL_COND_TEST; j++ ) + { + isHardwareRecordValid = isDGFillConductiviesRecordValid( &acidBicarbTempRecord->fillCondValues[ i ][ j ], (DG_ACID_TYPES_T)i, (DG_FILL_COND_OPS_T)j ); + isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + } + } + // If the sub groups failed, they are all updated to their benign values // so the main CRC of the calibration group is calculated again if ( ( FALSE == isCalRecordValid ) || ( recordCRC != dgCalibrationRecord.crc ) ) @@ -3131,20 +3140,6 @@ activateAlarmNoData( ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID ); } - - // TODO add this check to the calibration records - // This record is not part of the calibration record yet - U08 j; - DG_CHEMICALS_FILL_COND_CAL_RECORD_T* acidBicarbTempRecord = &tempChemsRecordRemove; - for ( i = 0; i < NUM_OF_ACID_TYPE; i++ ) - { - for ( j = 0; j < NUM_OF_FILL_COND_TEST; j++ ) - { - isDGFillConductiviesRecordValid( &acidBicarbTempRecord->fillCondValues[ i ][ j ], (DG_FILL_COND_OPS_T)j, (DG_ACID_TYPES_T)i ); - } - } - // TODO add this check to the calibration records. this is temporary - return isCalRecordValid; } @@ -3551,7 +3546,7 @@ * @param acidType whcih is the type of acid that its values are checked (e.g. 0-1251-1) * @return TRUE if the record is valid otherwise FALSE *************************************************************************/ -static BOOL isDGFillConductiviesRecordValid( DG_ACID_BICARB_FILL_COND_VALUES_T* record, DG_FILL_COND_OPS_T operation, DG_ACID_TYPES_T acidType ) +static BOOL isDGFillConductiviesRecordValid( DG_ACID_BICARB_FILL_COND_VALUES_T* record, DG_ACID_TYPES_T acidType, DG_FILL_COND_OPS_T operation ) { BOOL status = TRUE; U16 calcCRC = crc16 ( (U08*)record, sizeof(DG_ACID_BICARB_FILL_COND_VALUES_T) - sizeof(U16) ); @@ -3621,6 +3616,7 @@ // CRC did not pass so set all values to default record->acidConduSPerCM = acidSensorCond; record->bicarbConduSPerCM = bicarbSensorCond; + record->calibrationTime = RECORD_DEFAULT_TIME; record->crc = crc16 ( (U08*)record, sizeof(DG_ACID_BICARB_FILL_COND_VALUES_T) - sizeof(U16) ); // Set the to FALSE since the record is not valid