Index: NVDataMgmt.c =================================================================== diff -u -r20b126271232f1b3c4a7aef9fa6fe1f9e9b019e6 -r1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 20b126271232f1b3c4a7aef9fa6fe1f9e9b019e6) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4) @@ -427,7 +427,7 @@ {SERVICE_RECORD_START_ADDRESS, sizeof(DG_SERVICE_GROUP_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&dgServiceGroup, (U08*)&dgServiceGroup.crc, NVDATAMGMT_RTC}, // NVDATAMGMT_SERVICE_RECORD {DG_SCHEDULED_RUNS_START_ADDRESS, sizeof(DG_SCHEDULED_RUNS_GROUP_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&dgScheduledRunsGroup, (U08*)&dgScheduledRunsGroup.crc, NVDATAMGMT_RTC}, // NVDATAMGMT_SCHEDULER_RECORD {DG_HEATERS_INFO_START_ADDRESS, sizeof(DG_HEATERS_INFO_GROUP_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&dgHeatersInfoGroup, (U08*)&dgHeatersInfoGroup.crc, NVDATAMGMT_RTC}, // NVDATAMGMT_HEATERS_INFO_RECORD - {SW_CONFIGS_START_ADDRESS, sizeof(SW_CONFIGS_RECORD_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&swConfigsRecord, (U08*)&swConfigsRecord.crc, NVDATAMGMT_RTC} // NVDATAMGMT_SW_CONFIG_RECORD + {SW_CONFIGS_START_ADDRESS, sizeof(SW_CONFIGS_RECORD_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&swConfigsRecord, (U08*)&swConfigsRecord.crc, NVDATAMGMT_RTC} // NVDATAMGMT_SW_CONFIG_RECORD }; #endif @@ -438,9 +438,10 @@ static HD_USAGE_INFO_GROUP_T hdUsageInfoGroup; ///< HD usage info group structure (including padding and final CRC). // Process records specifications const PROCESS_RECORD_SPECS_T RECORDS_SPECS [ NUM_OF_NVDATMGMT_RECORDS_JOBS ] = { - {CAL_RECORD_NV_MEM_START_ADDRESS, sizeof(HD_CALIBRATION_RECORD_T), MAX_EEPROM_WRITE_BUFFER_BYTES, sizeof(HD_CALIBRATION_RECORD_T), (U08*)&hdCalibrationRecord, (U08*)&hdCalibrationRecord.crc}, // NVDATAMGMT_CALIBRATION_RECORD - {SYSTEM_RECORD_NV_MEM_START_ADDRESS, sizeof(HD_SYSTEM_GROUP_T), MAX_EEPROM_WRITE_BUFFER_BYTES, sizeof(HD_SYSTEM_GROUP_T), (U08*)&hdSystemGroup, (U08*)&hdSystemGroup.crc}, // NVDATAMGMT_SYSTEM_RECORD - {SERVICE_RECORD_START_ADDRESS, sizeof(HD_SERVICE_GROUP_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&hdServiceGroup, (U08*)&hdServiceGroup.crc}, // NVDATAMGMT_PROCESS_LAST_SERVICE_RECORD + {CAL_RECORD_NV_MEM_START_ADDRESS, sizeof(HD_CALIBRATION_RECORD_T), MAX_EEPROM_WRITE_BUFFER_BYTES, sizeof(HD_CALIBRATION_RECORD_T), (U08*)&hdCalibrationRecord, (U08*)&hdCalibrationRecord.crc, NVDATAMGMT_EEPROM}, // NVDATAMGMT_CALIBRATION_RECORD + {SYSTEM_RECORD_NV_MEM_START_ADDRESS, sizeof(HD_SYSTEM_GROUP_T), MAX_EEPROM_WRITE_BUFFER_BYTES, sizeof(HD_SYSTEM_GROUP_T), (U08*)&hdSystemGroup, (U08*)&hdSystemGroup.crc, NVDATAMGMT_EEPROM}, // NVDATAMGMT_SYSTEM_RECORD + {SERVICE_RECORD_START_ADDRESS, sizeof(HD_SERVICE_GROUP_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&hdServiceGroup, (U08*)&hdServiceGroup.crc, NVDATAMGMT_RTC}, // NVDATAMGMT_PROCESS_LAST_SERVICE_RECORD + {SW_CONFIGS_START_ADDRESS, sizeof(SW_CONFIGS_RECORD_T), MAX_RTC_RAM_OPS_BUFFER_BYTES, MAX_RTC_RAM_OPS_BUFFER_BYTES, (U08*)&swConfigsRecord, (U08*)&swConfigsRecord.crc, NVDATAMGMT_RTC} // NVDATAMGMT_SW_CONFIG_RECORD }; #endif @@ -2145,39 +2146,6 @@ /*********************************************************************//** * @brief - * The handleSelfTestReadSWConfigRecord reads the software configurations - * record from RTC RAM. - * @details Inputs: none - * @details Outputs: none - * @return next state - *************************************************************************/ -static NVDATAMGMT_SELF_TEST_STATE_T handleSelfTestReadSWConfigRecord( void ) -{ - NVDATAMGMT_SELF_TEST_STATE_T state = NVDATAMGMT_SELF_TEST_STATE_READ_SW_CONFIG_RECORD; - BOOL timeoutStatus = didCommandTimeout( ALARM_ID_RTC_RAM_OPS_ERROR, (U08*)&state ); - -#ifndef _RELEASE_ - if ( ( RTC_RAM_STATUS_IDLE == getRTCRAMStatus() ) || ( TRUE == timeoutStatus ) ) - { - PROCESS_RECORD_SPECS_T specs = RECORDS_SPECS[ NVDATAMGMT_SW_CONFIG_RECORD ]; - U08* bufferAddress = specs.structAddressPtr; - U32 maxBufferLength = specs.maxReadBufferSize; - - getDataFromRAM( bufferAddress, maxBufferLength ); - - state = NVDATAMGMT_SELF_TEST_STATE_CHECK_CRC; - } -#else - // It is a release so set all the software configurations to 0 to be considered as disable - memset( specs.structAddressPtr, 0, specs.sizeofJob ); - state = NVDATAMGMT_SELF_TEST_STATE_CHECK_CRC; -#endif - - return state; -} - -/*********************************************************************//** - * @brief * The handleSelfTestReadDGWaterConsumption reads the DG water consumption * from RTC RAM. * @details Inputs: currentTime, waterConsumptionRecord @@ -2238,6 +2206,39 @@ /*********************************************************************//** * @brief + * The handleSelfTestReadSWConfigRecord reads the software configurations + * record from RTC RAM. + * @details Inputs: none + * @details Outputs: none + * @return next state + *************************************************************************/ +static NVDATAMGMT_SELF_TEST_STATE_T handleSelfTestReadSWConfigRecord( void ) +{ + NVDATAMGMT_SELF_TEST_STATE_T state = NVDATAMGMT_SELF_TEST_STATE_READ_SW_CONFIG_RECORD; + BOOL timeoutStatus = didCommandTimeout( ALARM_ID_RTC_RAM_OPS_ERROR, (U08*)&state ); + +#ifndef _RELEASE_ + if ( ( RTC_RAM_STATUS_IDLE == getRTCRAMStatus() ) || ( TRUE == timeoutStatus ) ) + { + PROCESS_RECORD_SPECS_T specs = RECORDS_SPECS[ NVDATAMGMT_SW_CONFIG_RECORD ]; + U08* bufferAddress = specs.structAddressPtr; + U32 maxBufferLength = specs.maxReadBufferSize; + + getDataFromRAM( bufferAddress, maxBufferLength ); + + state = NVDATAMGMT_SELF_TEST_STATE_CHECK_CRC; + } +#else + // It is a release so set all the software configurations to 0 to be considered as disable + memset( specs.structAddressPtr, 0, specs.sizeofJob ); + state = NVDATAMGMT_SELF_TEST_STATE_CHECK_CRC; +#endif + + return state; +} + +/*********************************************************************//** + * @brief * The handleSelfTestCheckCRC calculates the CRC of the records and compares * them to the CRC that was read. If they don't match, it will fail POST. * @details Inputs: nvDataMgmtSelfTestResult Index: NVDataMgmt.h =================================================================== diff -u -r5ed781a9474910ff9db65e4ef0ab995e03e312fa -r1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4 --- NVDataMgmt.h (.../NVDataMgmt.h) (revision 5ed781a9474910ff9db65e4ef0ab995e03e312fa) +++ NVDataMgmt.h (.../NVDataMgmt.h) (revision 1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4) @@ -61,15 +61,15 @@ /// NVDataMgmt records' jobs states typedef enum NVDataMgmt_Records_Jobs { - NVDATAMGMT_CALIBRATION_RECORD = 0, ///< NVDataMgmt process write calibration record. - NVDATAMGMT_SYSTEM_RECORD, ///< NVDataMgmt process write system record. - NVDATAMGMT_SERVICE_RECORD, ///< NVDataMgmt process service record. - NVDATAMGMT_SW_CONFIG_RECORD, ///< NVDataMgmt process software record. + NVDATAMGMT_CALIBRATION_RECORD = 0, ///< NVDataMgmt process write calibration record. + NVDATAMGMT_SYSTEM_RECORD, ///< NVDataMgmt process write system record. + NVDATAMGMT_SERVICE_RECORD, ///< NVDataMgmt process service record. + NVDATAMGMT_SW_CONFIG_RECORD, ///< NVDataMgmt process software record. #ifdef _DG_ - NVDATAMGMT_SCHEDULED_RUNS_RECORD, ///< NVDataMgmt process scheduled runs record. - NVDATAMGMT_HEATERS_INFO_RECORD, ///< NVDataMgmt process heaters info record. + NVDATAMGMT_SCHEDULED_RUNS_RECORD, ///< NVDataMgmt process scheduled runs record. + NVDATAMGMT_HEATERS_INFO_RECORD, ///< NVDataMgmt process heaters info record. #endif - NUM_OF_NVDATMGMT_RECORDS_JOBS ///< Number of NVDataMgmt records jobs. + NUM_OF_NVDATMGMT_RECORDS_JOBS ///< Number of NVDataMgmt records jobs. } RECORD_JOBS_STATE_T; #pragma pack(push, 1) Index: NVDataMgmtDGRecords.h =================================================================== diff -u -r5ed781a9474910ff9db65e4ef0ab995e03e312fa -r1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4 --- NVDataMgmtDGRecords.h (.../NVDataMgmtDGRecords.h) (revision 5ed781a9474910ff9db65e4ef0ab995e03e312fa) +++ NVDataMgmtDGRecords.h (.../NVDataMgmtDGRecords.h) (revision 1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4) @@ -38,7 +38,7 @@ typedef enum software_configurations { SW_CONFIG_DISABLE_HEATERS_MONITOR = 0, ///< Software configuration disable heaters monitor. - SW_CONFIG_THD_USING_TRO_CONNECTOR, ///< Software configuration THD using TRO temperature sensor. + SW_CONFIG_ENABLE_THD_USING_TRO_CONNECTOR, ///< Software configuration THD using TRO temperature sensor. SW_CONFIG_DISABLE_CAL_CHECK, ///< Software configuration disable calibration check. SW_CONFIG_ALARMS_DEBUG, ///< Software configuration alarms debug. SW_CONFIG_DISABLE_RO_PUMP_MONITOR, ///< Software configuration disable RO pump monitor. Index: NVDataMgmtHDRecords.h =================================================================== diff -u -rf853004049bc4701d911701e48768cd17189faea -r1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4 --- NVDataMgmtHDRecords.h (.../NVDataMgmtHDRecords.h) (revision f853004049bc4701d911701e48768cd17189faea) +++ NVDataMgmtHDRecords.h (.../NVDataMgmtHDRecords.h) (revision 1ba84c9eec58aca4e7b5ce35ba249e9434d74ca4) @@ -35,6 +35,31 @@ #define MAX_TOP_LEVEL_PN_CHARS 10U ///< Max number of characters for top level part number. #define MAX_TOP_LEVEL_SN_CHARS 15U ///< Max number of characters for top level serial number. +/// Software configuration enums +typedef enum software_configurations +{ + SW_CONFIG_DISABLE_ALARM_AUDIO = 0, + SW_CONFIG_DISABLE_AIR_TRAP_LEVELING_ALARM, + SW_CONFIG_DSIABLE_ACK_ERRORS, + SW_CONFIG_EANBLE_WORN_OUT_CARTRIDGE, + SW_CONFIG_DISABLE_MOTOR_CURRNT_CHECKS, + SW_CONFIG_DISABLE_PUMP_FLOW_CHECKS, + SW_CONFIG_DISABLE_PUMP_DIRECTION_CHECKS, + SW_CONFIG_DISABLE_SYRINGE_PUMP, + SW_CONFIG_ENABLE_SYRINGE_PUMP_CMDS, + SW_CONFIG_DISABLE_PRESSURE_CHECKS, + SW_CONFIG_DISABLE_ARTERIAL_PRESSURE_CHECK, + SW_CONFIG_DISABLE_VENOUS_PRESSURE_CHECK, + SW_CONFIG_DISABLE_DIALYSATE_TEMP_CHECK, + SW_CONFIG_DISABLE_CALIBRATION_CHECK, + SW_CONFIG_DISABLE_ALARMS_DEBUG, + SW_CONFIG_ENABLE_ALARM_VOLUME_DEFAULT_LOW, + SW_CONFIG_DISABLE_BATTERY_COMMUNICATION, + SW_CONFIG_DISABLE_AIR_BUBBLE_CHECK, + SW_CONFIG_DISABLE_OCCLUSION_SELF_TEST, + NUM_OF_SW_CONFIGS ///< Number of software configurations. +} SOFTWARE_CONFIG_T; + /// HD available NV data to get typedef enum hd_nv_commands {