Index: NVDataMgmt.c =================================================================== diff -u -r836654a8b26da6a2970d037a7e993eacbec8f8b6 -r7c9f9588d709e4b394b05499224bfafe5abefdf9 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 836654a8b26da6a2970d037a7e993eacbec8f8b6) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 7c9f9588d709e4b394b05499224bfafe5abefdf9) @@ -1414,21 +1414,40 @@ #ifdef _HD_ case GET_CAL_BLOOD_LEAK_SENSOR: nvDataStartPtr = (U08*)&hdCalibrationRecord.hdCalibrationGroups.bloodLeakSensorCalRecord; + nvDataLength = sizeof( hdCalibrationRecord.hdCalibrationGroups.bloodLeakSensorCalRecord ); isNVDataValid = ( 0 == hdCalibrationRecord.hdCalibrationGroups.bloodLeakSensorCalRecord.calibrationTime ? FALSE : TRUE ); break; case GET_CAL_TEMPERATURE_SESNORS: nvDataStartPtr = (U08*)&hdCalibrationRecord.hdCalibrationGroups.tempSensorsCalRecord; + nvDataLength = sizeof( hdCalibrationRecord.hdCalibrationGroups.tempSensorsCalRecord ); // Loop through each sensor's calibration data and make sure it is valid for ( i = 0; i < NUM_OF_CAL_DATA_HD_TEMP_SENSORS; i++ ) isNVDataValid |= ( 0 == hdCalibrationRecord.hdCalibrationGroups.tempSensorsCalRecord.hdTemperatureSensors[ i ].calibrationTime ? FALSE : TRUE ); break; case GET_CAL_ACCEL_SENSORS: nvDataStartPtr = (U08*)&hdCalibrationRecord.hdCalibrationGroups.accelerometerSensorCalRecord; + nvDataLength = sizeof( hdCalibrationRecord.hdCalibrationGroups.accelerometerSensorCalRecord ); isNVDataValid = ( 0 == hdCalibrationRecord.hdCalibrationGroups.accelerometerSensorCalRecord.calibrationTime ? FALSE : TRUE ); break; + case GET_CAL_HEPARIN_FORCE_SENSOR: + nvDataStartPtr = (U08*)&hdCalibrationRecord.hdCalibrationGroups.heparinForceSensorCalRecord; + nvDataLength = sizeof( hdCalibrationRecord.hdCalibrationGroups.heparinForceSensorCalRecord ); + isNVDataValid = ( 0 == hdCalibrationRecord.hdCalibrationGroups.heparinForceSensorCalRecord.hdHeparinForceSensor.calibrationTime ? FALSE : TRUE ); + break; + + case GET_SYS_RECORD: + nvDataStartPtr = (U08*)&hdSystemGroup.hdsystemRecord; + nvDataLength = sizeof( hdSystemGroup.hdsystemRecord ); + break; + + case GET_SRV_RECORD: + nvDataStartPtr = (U08*)&hdServiceGroup.hdServiceRecord; + nvDataLength = sizeof( hdServiceGroup.hdServiceRecord ); + break; + default: // TODO software fault break; @@ -1576,7 +1595,15 @@ #ifdef _DG_ value = dgSWConfigGroup.dgSWConfigsRecord.swConfigs[ config ]; #endif +#ifdef _HD_ + HD_OP_MODE_T opMode = getCurrentOperationMode(); + + if ( ( MODE_FAUL == opMode ) || ( MODE_SERV == opMode ) || ( MODE_STAN == opMode ) ) + { + value = hdSWConfigGroup.hdSWConfigsRecord.swConfigs[ config ]; + } #endif +#endif return value; } @@ -1736,42 +1763,6 @@ return hdCalibrationRecord.hdCalibrationGroups.tempSensorsCalRecord; } -/*********************************************************************//** - * @brief - * The getHDHeparinForceSensorCalibrationRecord function returns the HD - * heparin force sensor calibration record. - * @details Inputs: none - * @details Outputs: none - * @return HD heparin force sensor calibration record - *************************************************************************/ -HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T getHDHeparinForceSensorCalibrationRecord( void ) -{ - return hdCalibrationRecord.hdCalibrationGroups.heparinForceSensorCalRecord; -} - -/*********************************************************************//** - * @brief - * The getHDSystemRecord function returns the HD system record. - * @details Inputs: none - * @details Outputs: none - * @return HD system record - *************************************************************************/ -HD_SYSTEM_RECORD_T getHDSystemRecord( void ) -{ - return hdSystemGroup.hdsystemRecord; -} - -/*********************************************************************//** - * @brief - * The getHDServiceRecord function returns the HD service record. - * @details Inputs: none - * @details Outputs: none - * @return HD service record - *************************************************************************/ -HD_SERVICE_RECORD_T getHDServiceRecord( void ) -{ - return hdServiceGroup.hdServiceRecord; -} #endif /*********************************************************************//** @@ -4207,7 +4198,7 @@ if ( calcCRC != recordCRC ) { - memset( (U08*)&hdSWConfigGroup, 0, sizeof( HD_SW_CONFIG_GROUP_T ) ); + 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) ); Index: NVDataMgmt.h =================================================================== diff -u -r1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4 -r7c9f9588d709e4b394b05499224bfafe5abefdf9 --- NVDataMgmt.h (.../NVDataMgmt.h) (revision 1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4) +++ NVDataMgmt.h (.../NVDataMgmt.h) (revision 7c9f9588d709e4b394b05499224bfafe5abefdf9) @@ -22,6 +22,8 @@ #ifdef _HD_ #include "NVDataMgmtHDRecords.h" + #include "OperationModes.h" + #include "HDDefs.h" #endif #ifdef _DG_ #include "NVDataMgmtDGRecords.h" @@ -38,6 +40,9 @@ // ********** public definitions ********** +#define SW_CONFIG_ENABLE_VALUE 1 ///< Software configuration enable. +#define SW_CONFIG_DISABLE_VALUE 0 ///< Software configuration disable. + /// Log event enumeration. typedef enum log_event { @@ -126,13 +131,10 @@ #ifdef _HD_ HD_PUMPS_CAL_RECORD_T getHDPumpsCalibrationRecord( void ); HD_VALVES_CAL_RECORD_T getHDValvesCalibrationRecord( void ); -HD_OCCLUSION_SENSORS_CAL_RECORD_T getHDOcclusionSensrosCalibrationRecord( void ); -HD_FLOW_SENSORS_CAL_RECORD_T getHDFlowSensorsCalibrationRecord( void ); +HD_OCCLUSION_SENSORS_CAL_RECORD_T getHDOcclusionSensrosCalibrationRecord( void ); // TODO is this going away? Blood stays +HD_FLOW_SENSORS_CAL_RECORD_T getHDFlowSensorsCalibrationRecord( void ); // TODO is this going away? Yes HD_PRESSURE_SENSORS_CAL_RECORD_T getHDPressureSensorsCalibrationRecord( void ); HD_TEMP_SENSORS_CAL_RECORD_T getHDTemperatureSensorsCalibrationRecord( void ); -HD_HEPARIN_FORCE_SENSOR_CAL_RECORD_T getHDHeparinForceSensorCalibrationRecord( void ); -HD_SYSTEM_RECORD_T getHDSystemRecord( void ); -HD_SERVICE_RECORD_T getHDServiceRecord( void ); BOOL setTreatmentTime ( U32 hours ); U32 getTreatmentTime ( void ); #endif Index: NVDataMgmtHDRecords.h =================================================================== diff -u -r9f22758aaf8f88b6b416c127425bfb87c9962f2c -r7c9f9588d709e4b394b05499224bfafe5abefdf9 --- NVDataMgmtHDRecords.h (.../NVDataMgmtHDRecords.h) (revision 9f22758aaf8f88b6b416c127425bfb87c9962f2c) +++ NVDataMgmtHDRecords.h (.../NVDataMgmtHDRecords.h) (revision 7c9f9588d709e4b394b05499224bfafe5abefdf9) @@ -57,6 +57,14 @@ SW_CONFIG_DISABLE_BATTERY_COMMUNICATION, SW_CONFIG_DISABLE_AIR_BUBBLE_CHECK, SW_CONFIG_DISABLE_OCCLUSION_SELF_TEST, + SW_CONFIG_DISABLE_BLOOD_LEAK_SELF_TEST, + SW_CONFIG_DISABLE_BLOOD_LEAK_ALARM, + SW_CONFIG_DISABLE_UI_INTERACTION, + SW_CONFIG_DISABLE_SAMPLE_WATER, + SW_CONFIG_DISABLE_CONSUMABLES_TESTS, + SW_CONFIG_DISABLE_DRY_SELF_TESTS, + SW_CONFIG_DISABLE_PRIMING, + SW_CONFIG_DISABLE_WE_SELF_TEST, NUM_OF_SW_CONFIGS ///< Number of software configurations. } SOFTWARE_CONFIG_T; @@ -66,6 +74,9 @@ GET_CAL_BLOOD_LEAK_SENSOR = 0, ///< Get blood leak sensor calibration data. GET_CAL_TEMPERATURE_SESNORS, ///< Get temperature sensors calibration data. GET_CAL_ACCEL_SENSORS, ///< Get accelerometers calibration data. + GET_CAL_HEPARIN_FORCE_SENSOR, ///< Get heparin force sensor calibration data. + GET_SYS_RECORD, ///< Get system record data. + GET_SRV_RECORD, ///< Get service record data. NUM_OF_NV_HD_DATA ///< Number of non-volatile data. } NV_DATA_T;