Index: Common.h =================================================================== diff -u -r193839467da470a839ec2f2a3a04d7ed1a2ad837 -rd05023b5ef049f239132881ef3a7335a1b2ed097 --- Common.h (.../Common.h) (revision 193839467da470a839ec2f2a3a04d7ed1a2ad837) +++ Common.h (.../Common.h) (revision d05023b5ef049f239132881ef3a7335a1b2ed097) @@ -34,6 +34,7 @@ typedef float F32; ///< 32-bit floating point type typedef double F64; ///< 64-bit floating point type +typedef long long U64; ///< 64-bit signed integer type typedef unsigned int U32; ///< 32-bit unsigned integer type typedef int S32; ///< 32-bit signed integer type typedef unsigned short U16; ///< 16-bit unsigned integer type Index: NVDataMgmt.c =================================================================== diff -u -r7ff9460b08012061de953c0155f555a0528b3904 -rd05023b5ef049f239132881ef3a7335a1b2ed097 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 7ff9460b08012061de953c0155f555a0528b3904) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision d05023b5ef049f239132881ef3a7335a1b2ed097) @@ -123,6 +123,7 @@ // HD specific defines #ifdef _HD_ #define BLOOD_LEAK_DEFAULT_SET_POINT 20 ///< Blood leak default set point. +#define HEPARIN_PUMP_DEFAULT_VOLTAGE 0.15F ///< Heparin pump default voltage. #endif // DG specific defines @@ -594,6 +595,7 @@ static BOOL isHDPumpRecordValid( HD_PUMP_CAL_PAYLOAD_T* record ); static BOOL isHDAccelerometerSensorValid( HD_ACCELEROMETER_SENSOR_CAL_RECORD_T* record ); static BOOL isHDBloodLeakSesnorValid( HD_BLOOD_LEAK_SENSOR_CAL_RECORD_T* record ); +static BOOL isHDHeparinPumpRecordValid( HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T* record ); #endif /*********************************************************************//** @@ -3887,8 +3889,7 @@ } HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T* heparinForce = &hdCalibrationRecord.hdCalibrationGroups.heparinForceSensorCalRecord; - record = (POLYNOMIAL_CAL_PAYLOAD_T*)&heparinForce->hdHeparinForceSensorDACVoltage; - isHardwareRecordValid = isPolynomialRecordValid( record ); + isHardwareRecordValid = isHDHeparinPumpRecordValid( heparinForce ); isCalRecordValid = isCalRecordValid == FALSE ? FALSE : isHardwareRecordValid; HD_ACCELEROMETER_SENSOR_CAL_RECORD_T* accelerometer = &hdCalibrationRecord.hdCalibrationGroups.accelerometerSensorCalRecord; @@ -3914,7 +3915,7 @@ static BOOL isHDPumpRecordValid( HD_PUMP_CAL_PAYLOAD_T* record ) { BOOL status = TRUE; - U16 calcCRC = crc16 ( (U08*)record, sizeof(HD_PUMP_CAL_PAYLOAD_T) - sizeof(U16) ); + U16 calcCRC = crc16 ( (U08*)record, sizeof( HD_PUMP_CAL_PAYLOAD_T ) - sizeof( U16 ) ); U16 recordCRC = record->crc; if ( calcCRC != recordCRC ) @@ -3925,7 +3926,7 @@ record->pwm2Speed = RECORD_DEFAULT_RATIO; record->speed2Flow = RECORD_DEFAULT_RATIO; record->calibrationTime = RECORD_DEFAULT_TIME; - record->crc = crc16 ( (U08*)record, sizeof(HD_PUMP_CAL_PAYLOAD_T) - sizeof(U16) ); + record->crc = crc16 ( (U08*)record, sizeof( HD_PUMP_CAL_PAYLOAD_T ) - sizeof( U16 ) ); // Set the to FALSE since the record is not valid status = FALSE; @@ -4021,6 +4022,34 @@ return status; } + +/*********************************************************************//** + * @brief + * The isHDHeparinPumpRecordValid function checks whether the calibration record + * of HD heparin pump is valid or not. + * @details Inputs: none + * @details Outputs: none + * @param record: HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T pointer + * @return TRUE if the record is valid otherwise FALSE + *************************************************************************/ +static BOOL isHDHeparinPumpRecordValid( HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T* record ) +{ + BOOL status = TRUE; + U16 calcCRC = crc16 ( (U08*)record, sizeof( HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T ) - sizeof( U16 ) ); + U16 recordCRC = record->crc; + + if ( calcCRC != recordCRC ) + { + record->hdHeparinForceSensorDACVoltage = HEPARIN_PUMP_DEFAULT_VOLTAGE; + record->calibrationTime = RECORD_DEFAULT_TIME; + record->crc = crc16 ( (U08*)record, sizeof( HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T ) - sizeof( U16 ) ); + + // Set the to FALSE since the record is not valid + status = FALSE; + } + + return status; +} #endif /*********************************************************************//**