Index: firmware/App/Services/NVRecordsDD.c =================================================================== diff -u -rf96e4e38cf20e59fc45ee8872cd480453b573608 -r3dcf9d96cae82528433d1f864b8145ca8bca2b6a --- firmware/App/Services/NVRecordsDD.c (.../NVRecordsDD.c) (revision f96e4e38cf20e59fc45ee8872cd480453b573608) +++ firmware/App/Services/NVRecordsDD.c (.../NVRecordsDD.c) (revision 3dcf9d96cae82528433d1f864b8145ca8bca2b6a) @@ -459,10 +459,12 @@ if ( calcCRC != recordCRC ) { // CRC did not pass so set all values to default - ddSystemGroup.ddSystemRecord.mfgDate = 0; - ddSystemGroup.ddSystemRecord.mfgLocation = 0; memset( ddSystemGroup.ddSystemRecord.topLevelPN, RECORD_DEFAULT_CHARACTER, sizeof( ddSystemGroup.ddSystemRecord.topLevelPN ) ); memset( ddSystemGroup.ddSystemRecord.topLevelSN, RECORD_DEFAULT_CHARACTER, sizeof( ddSystemGroup.ddSystemRecord.topLevelSN ) ); + ddSystemGroup.ddSystemRecord.isROFeatured = FALSE; + ddSystemGroup.ddSystemRecord.isR0FeaturedBoostPump = FALSE; + ddSystemGroup.ddSystemRecord.mfgDate = 0; + ddSystemGroup.ddSystemRecord.mfgLocation = 0; // Recalculate the CRC with the default values ddSystemGroup.ddSystemRecord.crc = crc16 ( (U08*)&ddSystemGroup.ddSystemRecord, sizeof( DD_SYSTEM_RECORD_T ) - sizeof( U16 ) ); @@ -504,6 +506,9 @@ if ( calcCRC != recordCRC ) { // CRC did not pass so set all values to default + ddServiceGroup.ddServiceRecord.isHDFOnlineFluid = FALSE; + ddServiceGroup.ddServiceRecord.waterRecovery = 0; + ddServiceGroup.ddServiceRecord.serviceLoc = 0; ddServiceGroup.ddServiceRecord.lastServiceEpochDate = 0; ddServiceGroup.ddServiceRecord.serviceIntervalSeconds = RECORD_DEFAULT_SERVICE_INTERVAL_S; // ddServiceGroup.ddServiceRecord.lastResetTimeEpoch = getRTCTimestamp(); @@ -650,55 +655,55 @@ // whether a write should be scheduled or not so it should not be overwritten with a TRUE // once a record set it to FALSE isHardwareRecordValid = isPolynomialRecordValid( record ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; } DD_TEMP_SENSORS_CAL_RECORD_T* temperature = &ddCalibrationRecord.ddCalibrationGroups.tempSensorsCalRecord; for ( i = 0; i < NUM_OF_TEMPERATURE_SENSORS; i++ ) { record = (POLYNOMIAL_CAL_PAYLOAD_T*)&temperature->tempSensors[ i ]; isHardwareRecordValid = isPolynomialRecordValid( record ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; } DD_CONC_PUMPS_CAL_RECORD_T* concPump = &ddCalibrationRecord.ddCalibrationGroups.concentratePumpsRecord; for ( i = 0; i < NUM_OF_CONCENTRATE_PUMPS; i++ ) { - record = &concPump->concentratePumps[ i ]; + record = (POLYNOMIAL_CAL_PAYLOAD_T*)&concPump->concentratePumps[ i ]; isHardwareRecordValid = isPolynomialRecordValid( record ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; } DD_D12_DIALYSATE_PUMP_RECORD_T* d12Pump = &ddCalibrationRecord.ddCalibrationGroups.d12DialysatePumpRecord; - isHardwareRecordValid = isDDPumpD12RecordValid( &d12Pump ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isHardwareRecordValid = isDDPumpD12RecordValid( d12Pump ); + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; DD_D48_DIALYSATE_PUMP_RECORD_T* d48Pump = &ddCalibrationRecord.ddCalibrationGroups.d48DialysatePumpRecord; - record = &d48Pump->d48DialysatePump; + record = (POLYNOMIAL_CAL_PAYLOAD_T*)&d48Pump->d48DialysatePump; isHardwareRecordValid = isPolynomialRecordValid( record ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; DD_ACID_CONCENTRATES_RECORD_T* acidConc = &ddCalibrationRecord.ddCalibrationGroups.acidConcentratesRecord; for ( i = 0; i < NUM_OF_CAL_DATA_ACID_CONCENTRATES; i++ ) { isHardwareRecordValid = isDDAcidConcentrateRecordValid( &acidConc->acidConcentrate[ i ] ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; } DD_BICARB_CONCENTRATES_RECORD_T* bicarbConc = &ddCalibrationRecord.ddCalibrationGroups.bicarbConcentratesRecord; for ( i = 0; i < NUM_OF_CAL_DATA_BICARB_CONCENTRATES; i++ ) { isHardwareRecordValid = isDDBicarbConcentrateRecordValid( &bicarbConc->bicarbConcentrate[ i ] ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; } DD_ACCEL_SENSOR_CAL_RECORD_T* accelerometer = &ddCalibrationRecord.ddCalibrationGroups.accelerometerSensorCalRecord; - isHardwareRecordValid = isDDAccelerometerSensorRecordValid( accelerometer ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + isHardwareRecordValid = isDDAccelerometerSensorRecordValid( accelerometer ); + isCalRecordValid = ( isCalRecordValid == FALSE ) ? FALSE : isHardwareRecordValid; DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T* bloodLeak = &ddCalibrationRecord.ddCalibrationGroups.bloodLeakSensorCalRecord; isHardwareRecordValid = isDDBloodLeakSesnorValid( bloodLeak ); - isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; + 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 @@ -732,10 +737,10 @@ if ( calcCRC != recordCRC ) { // CRC did not pass so set all values to default - record->targetPumpSpeed = DEFAULT_D12_PUMP_TARGET_SPEED; - record->calibrationTime = RECORD_DEFAULT_TIME; - record->crc = crc16 ( (U08*)record, sizeof( DD_D12_DIALYSATE_PUMP_RECORD_T ) - sizeof( U16 ) ); - status = FALSE; + record->targetPumpSpeed = DEFAULT_D12_PUMP_TARGET_SPEED; + record->calibrationTime = RECORD_DEFAULT_TIME; + record->crc = crc16 ( (U08*)record, sizeof( DD_D12_DIALYSATE_PUMP_RECORD_T ) - sizeof( U16 ) ); + status = FALSE; } return status; @@ -760,10 +765,10 @@ if ( calcCRC != recordCRC ) { // CRC did not pass so set all values to default + record->acidConcMixRatio = DEFAULT_ACID_CONC_MIXING_RATIO; record->acidFullBottleVolumeML = DEFAULT_ACID_BOTTLE_VOL_ML; record->acidConductivityUSPerCM = DEFAULT_ACID_COND_US_PER_CM; record->acidBottleTemperature = DEFAULT_ACID_BOTTLE_TEMP_C; - record->acidConcMixRatio = DEFAULT_ACID_CONC_MIXING_RATIO; record->calibrationTime = RECORD_DEFAULT_TIME; record->crc = crc16 ( (U08*)record, sizeof( DD_ACID_CONCENTRATE_T ) - sizeof( U16 ) ); status = FALSE; @@ -791,10 +796,10 @@ if ( calcCRC != recordCRC ) { // CRC did not pass so set all values to default + record->bicarbConcMixRatio = DEFAULT_BICARB_CONC_MIXING_RATIO; record->bicarbStartVolumeML = DEFAULT_BICARB_BOTTLE_VOL_ML; record->bicarbConductivityUSPerCM = DEFAULT_BICARB_COND_US_PER_CM; record->bicarbBottleTemperature = DEFAULT_BICARB_BOTTLE_TEMP_C; - record->bicarbConcMixRatio = DEFAULT_BICARB_CONC_MIXING_RATIO; record->calibrationTime = RECORD_DEFAULT_TIME; record->crc = crc16 ( (U08*)record, sizeof( DD_BICARB_CONCENTRATE_T ) - sizeof( U16 ) ); status = FALSE;