Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r1fa38184526c2b0c072eb8745c653f772156a824 -rbeb95e3e8f85740707704d7089db8b3ec8574bbd --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 1fa38184526c2b0c072eb8745c653f772156a824) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision beb95e3e8f85740707704d7089db8b3ec8574bbd) @@ -133,7 +133,7 @@ break; case DD_POST_STATE_NVDATAMGMT: - testStatus = execNVMSelfTest(); +// testStatus = execNVMSelfTest(); postState = handlePOSTStatus( testStatus ); break; Index: firmware/App/Services/NVMessagingDD.c =================================================================== diff -u -r3b7c92408ac36d501987a526bca1dab2bc9782eb -rbeb95e3e8f85740707704d7089db8b3ec8574bbd --- firmware/App/Services/NVMessagingDD.c (.../NVMessagingDD.c) (revision 3b7c92408ac36d501987a526bca1dab2bc9782eb) +++ firmware/App/Services/NVMessagingDD.c (.../NVMessagingDD.c) (revision beb95e3e8f85740707704d7089db8b3ec8574bbd) @@ -59,6 +59,41 @@ U08 data[ NUM_OF_BYTES_PER_RECORD_PAYLOAD ]; ///< Data to be sent } DD_NVM_SEND_RECORD_PAYLOAD_T; +/// DD NVM Record Payload for Institutional data of type U32 +typedef struct +{ + U08 idx; ///< Index of institutional record component + U32 data; ///< Data to be sent +} DD_NVM_U32_INSTIT_REC_PAYLOAD_T; + +/// DD NVM Record Payload for Institutional data of type F32 +typedef struct +{ + U08 idx; ///< Index of institutional record component + F32 data; ///< Data to be sent +} DD_NVM_F32_INSTIT_REC_PAYLOAD_T; + +/// DD NVM Record Payload for Polynomial structures Calibration Data +typedef struct +{ + U08 idx; ///< Index of sensor / pump / concentrates + POLYNOMIAL_CAL_PAYLOAD_T data; ///< Data to be sent +} DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T; + +/// DD NVM Record Payload for Acid Concentrate Calibration Data +typedef struct +{ + U08 idx; ///< Index of acid concentrates + DD_ACID_CONCENTRATE_T data; ///< Data to be sent +} DD_NVM_ACID_CONC_CAL_REC_PAYLOAD_T; + +/// DD NVM Record Payload for Bicarb Concentrate Calibration Data +typedef struct +{ + U08 idx; ///< Index of bicarb concentrates + DD_BICARB_CONCENTRATE_T data; ///< Data to be sent +} DD_NVM_BICARB_CONC_CAL_REC_PAYLOAD_T; + // ********** private data ********** static SEND_RECORD_STATE_T nvMExecSendRecordState; ///< NVM exec process record state. @@ -77,7 +112,8 @@ static U32 recordReceiveStartTime; ///< Time stamp the calibration/service was received. static DD_INSTIT_REC_TYPE sendInstitRec; ///< Current Institutional Record to be sent static DD_CAL_REC_TYPE sendCalRec; ///< Current Calibration Record to be sent -static U32 sendSensorIdx; ///< Index of sensor calibration data to be sent +static U08 sendSensorIdx; ///< Current Index of sensor calibration data to be sent +static U08 maxSensorIdx; ///< Total number of sensor in current calibration data being sent static BOOL isPublishRecordRequested[ NUM_OF_NVM_RECORD_TYPES ]; ///< Record state machine publish request flag. // ********** private function prototypes ********** @@ -88,11 +124,20 @@ static SEND_RECORD_STATE_T handleSendDDSystemRecord( void ); static SEND_RECORD_STATE_T handleSendDDServiceRecord( void ); -static SEND_RECORD_STATE_T handleSendDDCalibrationRecord( void ); static SEND_RECORD_STATE_T handleSendDDInstitutionalRecord( void ); static SEND_RECORD_STATE_T handleSendDDUsageInfoRecord( void ); -static BOOL sendDDRecord( MSG_ID_T msgId, U32 idx, U32 length, U08* recordAddress ); +static SEND_RECORD_STATE_T handleSendDDCalibrationRecord( void ); +static BOOL sendPressureSensorCalRecord( void ); +static BOOL sendTempSensorCalRecord( void ); +static BOOL sendConcPumpCalRecord( void ); +static BOOL sendD12PumpCalRecord( void ); +static BOOL sendD48PumpCalRecord( void ); +static BOOL sendAcidConcCalRecord( void ); +static BOOL sendBicarbConcCalRecord( void ); +static BOOL sendAccelSensorCalRecord( void ); +static BOOL sendBloodLeakSensorCalRecord( void ); + static BOOL receiveCalRecord( MESSAGE_T *message, DD_CAL_REC_TYPE calRecordType, U16 recordSize ); static BOOL verifyAndSaveReceivedRecord( NVM_RECORD_TYPE_T job, U32 currentMessage, U32 totalMessages, U32 length, U08 *addressPtr ); @@ -429,252 +474,8 @@ return state; } -static SEND_RECORD_STATE_T handleSendDDCalibrationRecord( void ) -{ - SEND_RECORD_STATE_T state = NVM_SEND_RECORD_STATE_SEND; - BOOL sendStatus = FALSE; - U08 maxSensorIdx = 0; - DD_NVM_SEND_RECORD_PAYLOAD_T payload; - MSG_ID_T msgID; - switch( sendCalRec ) - { - case DD_CAL_RECORD_PRESSURE_SENSOR: - { - msgID = MSG_ID_DD_NVM_CAL_PRESSURE_SENSOR_RESPONSE; - maxSensorIdx = NUM_OF_PRESSURE_SENSORS; - DD_PRES_SENSORS_CAL_RECORD_T pressure; - if ( TRUE == getNVMRecord( GET_CAL_PRESSURE_SENOSRS, - (U08*)&pressure, - sizeof( DD_PRES_SENSORS_CAL_RECORD_T ), - NUM_OF_PRESSURE_SENSORS, - ALARM_ID_DD_NVM_INVALID_CAL_PRESSURE_SENSOR ) ) - { - memcpy( &payload.data, - &pressure.pressureSensors[ sendSensorIdx ], - sizeof( DD_PRES_SENSORS_CAL_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_TEMPERATURE_SENSOR: - { - msgID = MSG_ID_DD_NVM_CAL_TEMP_SENSOR_RESPONSE; - maxSensorIdx = NUM_OF_TEMPERATURE_SENSORS; - DD_TEMP_SENSORS_CAL_RECORD_T temperature; - - if ( TRUE == getNVMRecord( GET_CAL_TEMP_SENSORS, - (U08*)&temperature, - sizeof( DD_TEMP_SENSORS_CAL_RECORD_T ), - NUM_OF_TEMPERATURE_SENSORS, - ALARM_ID_DD_NVM_INVALID_CAL_TEMP_SENSOR ) ) - { - - memcpy( &payload.data, - &temperature.tempSensors[ sendSensorIdx ], - sizeof( DD_TEMP_SENSORS_CAL_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_CONCENTRATE_PUMP: - { - msgID = MSG_ID_DD_NVM_CAL_CONC_PUMP_RESPONSE; - maxSensorIdx = NUM_OF_CONCENTRATE_PUMPS; - DD_CONC_PUMPS_CAL_RECORD_T concPump; - - if ( TRUE == getNVMRecord( GET_CAL_CONCENTRATE_PUMPS_RECORD, - (U08*)&concPump, - sizeof( DD_CONC_PUMPS_CAL_RECORD_T ), - NUM_OF_CONCENTRATE_PUMPS, - ALARM_ID_DD_NVM_INVALID_CAL_CONC_PUMP ) ) - { - memcpy( &payload.data, - &concPump.concentratePumps[ sendSensorIdx ], - sizeof( DD_CONC_PUMPS_CAL_RECORD_T ) ); - - } - } - break; - - case DD_CAL_RECORD_D12_PUMP: - { - msgID = MSG_ID_DD_NVM_CAL_D12_PUMP_RESPONSE; - sendSensorIdx = 0; - maxSensorIdx = 0; - DD_D12_DIALYSATE_PUMP_RECORD_T d12Pump; - - if ( TRUE == getNVMRecord( GET_CAL_D12_PUMP_RECORD, - (U08*)&d12Pump, - sizeof( DD_D12_DIALYSATE_PUMP_RECORD_T ), - sendSensorIdx, - ALARM_ID_DD_NVM_INVALID_CAL_D12_PUMP ) ) - { - memcpy( &payload.data, - &d12Pump, - sizeof( DD_D12_DIALYSATE_PUMP_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_D48_PUMP: - { - msgID = MSG_ID_DD_NVM_CAL_D48_PUMP_RESPONSE; - sendSensorIdx = 0; - maxSensorIdx = 0; - DD_D48_DIALYSATE_PUMP_RECORD_T d48Pump; - - if ( TRUE == getNVMRecord( GET_CAL_D48_PUMP_RECORD, - (U08*)&d48Pump, - sizeof( DD_D48_DIALYSATE_PUMP_RECORD_T ), - sendSensorIdx, - ALARM_ID_DD_NVM_INVALID_CAL_D48_PUMP ) ) - { - memcpy( &payload.data, - &d48Pump, - sizeof( DD_D48_DIALYSATE_PUMP_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_ACID_CONCENTRATE: - { - msgID = MSG_ID_DD_NVM_CAL_ACID_CONCENTRATE_RESPONSE; - maxSensorIdx = NUM_OF_ACID_TYPE; - DD_ACID_CONCENTRATES_RECORD_T acidConc; - - if ( TRUE == getNVMRecord( GET_CAL_ACID_CONCENTREATES, - (U08*)&acidConc, - sizeof( DD_ACID_CONCENTRATES_RECORD_T ), - NUM_OF_ACID_TYPE, - ALARM_ID_DD_NVM_INVALID_CAL_ACID_CONCENTRATE ) ) - { - memcpy( &payload.data, - &acidConc.acidConcentrate[ sendSensorIdx ], - sizeof( DD_ACID_CONCENTRATES_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_BICARB_CONCENTRATE: - { - msgID = MSG_ID_DD_NVM_CAL_BICARB_CONCENTRATE_RESPONSE; - maxSensorIdx = NUM_OF_BICARB_TYPE; - DD_BICARB_CONCENTRATES_RECORD_T bicarbConc; - - if ( TRUE == getNVMRecord( GET_CAL_BICARB_CONCENTRATES, - (U08*)&bicarbConc, - sizeof( DD_BICARB_CONCENTRATES_RECORD_T ), - NUM_OF_BICARB_TYPE, - ALARM_ID_DD_NVM_INVALID_CAL_BICARB_CONCENTRATE ) ) - { - memcpy( &payload.data, - &bicarbConc.bicarbConcentrate[ sendSensorIdx ], - sizeof( DD_BICARB_CONCENTRATES_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_ACCELEROMETER_SENSOR: - { - msgID = MSG_ID_DD_NVM_CAL_ACCEL_SENSOR_RESPONSE; - sendSensorIdx = 0; - maxSensorIdx = 0; - DD_ACCEL_SENSOR_CAL_RECORD_T accelerometer; - if ( TRUE == getNVMRecord( GET_CAL_ACCEL_SENSORS, - (U08*)&accelerometer, - sizeof( DD_ACCEL_SENSOR_CAL_RECORD_T ), - sendSensorIdx, - ALARM_ID_DD_NVM_INVALID_CAL_ACCEL_SENSOR ) ) - { - memcpy( &payload.data, - &accelerometer, - sizeof( DD_ACCEL_SENSOR_CAL_RECORD_T ) ); - } - } - break; - - case DD_CAL_RECORD_BLLOD_LEAK_SENSOR: - { - msgID = MSG_ID_DD_NVM_CAL_BLOOD_LEAK_SENSOR_RESPONSE; - sendSensorIdx = 0; - maxSensorIdx = 0; - DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T bloodLeak; - if ( TRUE == getNVMRecord( GET_CAL_BLOOD_LEAK_SENSOR, - (U08*)&bloodLeak, - sizeof( DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T ), - sendSensorIdx, - ALARM_ID_DD_NVM_INVALID_CAL_BLOOD_LEAK_SENSOR ) ) - { - memcpy( &payload.data, - &bloodLeak, - sizeof( DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T ) ); - } - } - break; - - default: - break; - } - - payload.idx = (U08)sendSensorIdx; - - // Send the record - sendStatus = sendMessage( msgID, - COMM_BUFFER_OUT_CAN_DD_BROADCAST, - (U08*)&payload, - sizeof( DD_NVM_SEND_RECORD_PAYLOAD_T ) ); - - // Check if record was sent successfully - if ( TRUE == sendStatus) - { - // Check if we sent the last record of calibration component - if ( sendSensorIdx >= maxSensorIdx ) - { - // Reset Sensor Index for the next calibration data - sendSensorIdx = 0; - - // Reset the retry count for the next calibration data - sendRetryCount = 0; - - // Move on to publish the next calibration record - sendCalRec = (DD_CAL_REC_TYPE)( (U32)sendCalRec + 1 ); - } - else - { - sendSensorIdx++; - } - } - else - { - sendRetryCount ++; - } - - // If all the allowed retries has been utilized or - // If all the calibration records have been published - if ( ( sendRetryCount > MAX_NUM_OF_SEND_RETRIES ) || - ( sendCalRec >= NUM_OF_CAL_RECORD_TYPE ) ) - { - // Reset Sensor Index for the next request - sendSensorIdx = 0; - - // Reset Index tracker for next request. - sendCalRec = DD_CAL_RECORD_PRESSURE_SENSOR; - - // Clear the publishing flags - recordToPublish = NUM_OF_NVM_RECORD_TYPES; - - // Move to Send Idle State - state = NVM_SEND_RECORD_STATE_IDLE; - - // Reset the retry count - sendRetryCount = 0; - } - - return state; -} - static SEND_RECORD_STATE_T handleSendDDInstitutionalRecord( void ) { SEND_RECORD_STATE_T state = NVM_SEND_RECORD_STATE_SEND; @@ -802,33 +603,247 @@ return state; } -/*********************************************************************//** - * @brief - * The sendDDRecord function sends a DD record payload over communication. - * It prepares the payload and queues it for transmission. - * @details \b Inputs: none - * @details \b Outputs: none - * @param msgId Message Id for response record - * @param payloadCurrNum Current payload number - * @param payloadTotalNum Total number of payloads - * @param length Buffer length to be written - * @param recordAddress Start address of the record data - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -static BOOL sendDDRecord( MSG_ID_T msgId, U32 idx, - U32 length, U08* recordAddress ) +static SEND_RECORD_STATE_T handleSendDDCalibrationRecord( void ) { - BOOL result = FALSE; - DD_NVM_SEND_RECORD_PAYLOAD_T payload; + SEND_RECORD_STATE_T state = NVM_SEND_RECORD_STATE_SEND; + BOOL sendStatus = FALSE; - payload.idx = idx; - memcpy( &payload.data, recordAddress, length ); - result = sendMessage( msgId, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08 *)&payload, - sizeof( DD_NVM_SEND_RECORD_PAYLOAD_T ) ); + switch( sendCalRec ) + { + case DD_CAL_RECORD_PRESSURE_SENSOR: + sendStatus = sendPressureSensorCalRecord(); + break; - return result; + case DD_CAL_RECORD_TEMPERATURE_SENSOR: + sendStatus = sendTempSensorCalRecord(); + break; + + case DD_CAL_RECORD_CONCENTRATE_PUMP: + sendStatus = sendConcPumpCalRecord(); + break; + + case DD_CAL_RECORD_D12_PUMP: + sendStatus = sendD12PumpCalRecord(); + break; + + case DD_CAL_RECORD_D48_PUMP: + sendStatus = sendD48PumpCalRecord(); + break; + + case DD_CAL_RECORD_ACID_CONCENTRATE: + sendStatus = sendAcidConcCalRecord(); + break; + + case DD_CAL_RECORD_BICARB_CONCENTRATE: + sendStatus = sendBicarbConcCalRecord(); + break; + + case DD_CAL_RECORD_ACCELEROMETER_SENSOR: + sendStatus = sendAccelSensorCalRecord(); + break; + + case DD_CAL_RECORD_BLLOD_LEAK_SENSOR: + sendStatus = sendBloodLeakSensorCalRecord(); + break; + + default: + break; + } + + // Check if record was sent successfully + if ( TRUE == sendStatus) + { + // Check if we sent the last record of calibration component + if ( sendSensorIdx >= maxSensorIdx ) + { + // Reset Sensor Index for the next calibration data + sendSensorIdx = 0; + + // Reset the retry count for the next calibration data + sendRetryCount = 0; + + // Move on to publish the next calibration record + sendCalRec = (DD_CAL_REC_TYPE)( (U32)sendCalRec + 1 ); + } + else + { + sendSensorIdx++; + } + } + else + { + sendRetryCount ++; + } + + // If all the allowed retries has been utilized or + // If all the calibration records have been published + if ( ( sendRetryCount > MAX_NUM_OF_SEND_RETRIES ) || + ( sendCalRec >= NUM_OF_CAL_RECORD_TYPE ) ) + { + // Reset Sensor Index for the next request + sendSensorIdx = 0; + + // Reset Index tracker for next request. + sendCalRec = DD_CAL_RECORD_PRESSURE_SENSOR; + + // Clear the publishing flags + recordToPublish = NUM_OF_NVM_RECORD_TYPES; + + // Move to Send Idle State + state = NVM_SEND_RECORD_STATE_IDLE; + + // Reset the retry count + sendRetryCount = 0; + } + + return state; } +static BOOL sendPressureSensorCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T payload; + maxSensorIdx = NUM_OF_PRESSURE_SENSORS; + + payload.idx = sendSensorIdx; + payload.data = getPressureSensorCalRecord( sendSensorIdx ); + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_PRESSURE_SENSOR_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T ) ); + return sendStatus; +} + +static BOOL sendTempSensorCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T payload; + maxSensorIdx = NUM_OF_TEMPERATURE_SENSORS; + + payload.idx = sendSensorIdx; + payload.data = getTemperatureSensorCalRecord( sendSensorIdx ); + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_TEMP_SENSOR_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T ) ); + return sendStatus; +} + +static BOOL sendConcPumpCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T payload; + maxSensorIdx = NUM_OF_CONCENTRATE_PUMPS; + + payload.idx = sendSensorIdx; + payload.data = getConcPumpCalRecord( sendSensorIdx ); + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_CONC_PUMP_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_NVM_POLYNOMIAL_CAL_REC_PAYLOAD_T ) ); + return sendStatus; +} + +static BOOL sendD12PumpCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_D12_DIALYSATE_PUMP_RECORD_T payload = getD12PumpCalRecord( ); + sendSensorIdx = 0; + maxSensorIdx = 0; + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_D12_PUMP_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_D12_DIALYSATE_PUMP_RECORD_T ) ); + return sendStatus; +} + +static BOOL sendD48PumpCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_D48_DIALYSATE_PUMP_RECORD_T payload = getD48PumpCalRecord( ); + sendSensorIdx = 0; + maxSensorIdx = 0; + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_D48_PUMP_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_D48_DIALYSATE_PUMP_RECORD_T ) ); + return sendStatus; +} + +static BOOL sendAcidConcCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_NVM_ACID_CONC_CAL_REC_PAYLOAD_T payload; + maxSensorIdx = NUM_OF_ACID_TYPE; + + payload.idx = sendSensorIdx; + payload.data = getAcidConcentrateCalRecord( sendSensorIdx ); + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_ACID_CONCENTRATE_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_NVM_ACID_CONC_CAL_REC_PAYLOAD_T ) ); + return sendStatus; +} + +static BOOL sendBicarbConcCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_NVM_BICARB_CONC_CAL_REC_PAYLOAD_T payload; + maxSensorIdx = NUM_OF_BICARB_TYPE; + + payload.idx = sendSensorIdx; + payload.data = getBicarbConcentrateCalRecord( sendSensorIdx ); + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_BICARB_CONCENTRATE_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_NVM_BICARB_CONC_CAL_REC_PAYLOAD_T ) ); + return sendStatus; +} + +static BOOL sendAccelSensorCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_ACCEL_SENSOR_CAL_RECORD_T payload = getAccelSensorCalRecord( ); + sendSensorIdx = 0; + maxSensorIdx = 0; + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_ACCEL_SENSOR_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_ACCEL_SENSOR_CAL_RECORD_T ) ); + return sendStatus; +} + +static BOOL sendBloodLeakSensorCalRecord( void ) +{ + BOOL sendStatus = FALSE; + DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T payload = getBloodLeakSensorCalRecord( ); + sendSensorIdx = 0; + maxSensorIdx = 0; + + // Send the record + sendStatus = sendMessage( MSG_ID_DD_NVM_CAL_BLOOD_LEAK_SENSOR_RESPONSE, + COMM_BUFFER_OUT_CAN_DD_BROADCAST, + (U08*)&payload, + sizeof( DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T ) ); + return sendStatus; +} + static BOOL receiveCalRecord( MESSAGE_T *message, DD_CAL_REC_TYPE calRecordType, U16 recordSize ) { BOOL status = FALSE; Index: firmware/App/Services/NVRecordsDD.c =================================================================== diff -u -r3b7c92408ac36d501987a526bca1dab2bc9782eb -rbeb95e3e8f85740707704d7089db8b3ec8574bbd --- firmware/App/Services/NVRecordsDD.c (.../NVRecordsDD.c) (revision 3b7c92408ac36d501987a526bca1dab2bc9782eb) +++ firmware/App/Services/NVRecordsDD.c (.../NVRecordsDD.c) (revision beb95e3e8f85740707704d7089db8b3ec8574bbd) @@ -1237,6 +1237,66 @@ return ddInstitutionalGroup.ddInstitutionalRecord.minInletWaterCondAlarmLimitUSPCM; } +POLYNOMIAL_CAL_PAYLOAD_T getPressureSensorCalRecord( U08 snsrIdx) +{ + if ( snsrIdx < NUM_OF_PRESSURE_SENSORS ) + { + return ( ddCalibrationGroup.ddCalibrationRecord.presSensorsCalRecord.pressureSensors[ snsrIdx ] ); + } +} + +POLYNOMIAL_CAL_PAYLOAD_T getTemperatureSensorCalRecord( U08 snsrIdx) +{ + if ( snsrIdx < NUM_OF_TEMPERATURE_SENSORS ) + { + return ( ddCalibrationGroup.ddCalibrationRecord.tempSensorsCalRecord.tempSensors[ snsrIdx ] ); + } +} + +POLYNOMIAL_CAL_PAYLOAD_T getConcPumpCalRecord( U08 pumpIdx) +{ + if ( pumpIdx < NUM_OF_CONCENTRATE_PUMPS ) + { + return ( ddCalibrationGroup.ddCalibrationRecord.concentratePumpsRecord.concentratePumps[ pumpIdx ] ); + } +} + +DD_D12_DIALYSATE_PUMP_RECORD_T getD12PumpCalRecord( void ) +{ + return ( ddCalibrationGroup.ddCalibrationRecord.d12DialysatePumpRecord ); +} +DD_D48_DIALYSATE_PUMP_RECORD_T getD48PumpCalRecord( void ) +{ + return ( ddCalibrationGroup.ddCalibrationRecord.d48DialysatePumpRecord ); +} + +DD_ACID_CONCENTRATE_T getAcidConcentrateCalRecord( U08 acidIdx) +{ + if ( acidIdx < NUM_OF_ACID_TYPE ) + { + return ( ddCalibrationGroup.ddCalibrationRecord.acidConcentratesRecord.acidConcentrate[ acidIdx ] ); + } +} + +DD_BICARB_CONCENTRATE_T getBicarbConcentrateCalRecord( U08 bicarbIdx) +{ + if ( bicarbIdx < NUM_OF_BICARB_TYPE ) + { + return ( ddCalibrationGroup.ddCalibrationRecord.bicarbConcentratesRecord.bicarbConcentrate[ bicarbIdx ] ); + } +} + +DD_ACCEL_SENSOR_CAL_RECORD_T getAccelSensorCalRecord( void ) +{ + return ( ddCalibrationGroup.ddCalibrationRecord.accelerometerSensorCalRecord ); +} + +DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T getBloodLeakSensorCalRecord( void ) +{ + return ( ddCalibrationGroup.ddCalibrationRecord.bloodLeakSensorCalRecord ); +} + + /*********************************************************************//** * @brief * The getNVMRecord function copies the requested non-volatile @@ -1267,59 +1327,59 @@ case GET_CAL_PRESSURE_SENOSRS: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.presSensorsCalRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.presSensorsCalRecord ); - for ( i = 0; i < numOfSnsrs2Check; i++ ) - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.presSensorsCalRecord.pressureSensors[ i ].calibrationTime ? TRUE : FALSE ); +// for ( i = 0; i < numOfSnsrs2Check; i++ ) +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.presSensorsCalRecord.pressureSensors[ i ].calibrationTime ? TRUE : FALSE ); break; case GET_CAL_TEMP_SENSORS: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.tempSensorsCalRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.tempSensorsCalRecord ); - for ( i = 0; i < numOfSnsrs2Check; i++ ) - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.tempSensorsCalRecord.tempSensors[ i ].calibrationTime ? TRUE : FALSE ); +// for ( i = 0; i < numOfSnsrs2Check; i++ ) +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.tempSensorsCalRecord.tempSensors[ i ].calibrationTime ? TRUE : FALSE ); break; case GET_CAL_CONCENTRATE_PUMPS_RECORD: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.concentratePumpsRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.concentratePumpsRecord ); - for ( i = 0; i < numOfSnsrs2Check; i++ ) - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.concentratePumpsRecord.concentratePumps[ i ].calibrationTime ? TRUE : FALSE ); +// for ( i = 0; i < numOfSnsrs2Check; i++ ) +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.concentratePumpsRecord.concentratePumps[ i ].calibrationTime ? TRUE : FALSE ); break; case GET_CAL_D12_PUMP_RECORD: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.d12DialysatePumpRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.d12DialysatePumpRecord ); - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.d12DialysatePumpRecord.calibrationTime ? TRUE : FALSE ); +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.d12DialysatePumpRecord.calibrationTime ? TRUE : FALSE ); break; case GET_CAL_D48_PUMP_RECORD: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.d48DialysatePumpRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.d48DialysatePumpRecord ); - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.d48DialysatePumpRecord.d48DialysatePump.calibrationTime ? TRUE : FALSE ); +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.d48DialysatePumpRecord.d48DialysatePump.calibrationTime ? TRUE : FALSE ); break; case GET_CAL_ACID_CONCENTREATES: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.acidConcentratesRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.acidConcentratesRecord ); - for ( i = 0; i < numOfSnsrs2Check; i++ ) - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.acidConcentratesRecord.acidConcentrate[ i ].calibrationTime ? TRUE : FALSE ); +// for ( i = 0; i < numOfSnsrs2Check; i++ ) +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.acidConcentratesRecord.acidConcentrate[ i ].calibrationTime ? TRUE : FALSE ); break; case GET_CAL_BICARB_CONCENTRATES: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.bicarbConcentratesRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.bicarbConcentratesRecord ); - for ( i = 0; i < numOfSnsrs2Check; i++ ) - isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.bicarbConcentratesRecord.bicarbConcentrate[ i ].calibrationTime ? TRUE : FALSE ); +// for ( i = 0; i < numOfSnsrs2Check; i++ ) +// isNVDataInvalid |= ( 0 == ddCalibrationGroup.ddCalibrationRecord.bicarbConcentratesRecord.bicarbConcentrate[ i ].calibrationTime ? TRUE : FALSE ); break; case GET_CAL_ACCEL_SENSORS: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.accelerometerSensorCalRecord; - isNVDataInvalid = ( 0 == ddCalibrationGroup.ddCalibrationRecord.accelerometerSensorCalRecord.calibrationTime ? TRUE : FALSE ); +// isNVDataInvalid = ( 0 == ddCalibrationGroup.ddCalibrationRecord.accelerometerSensorCalRecord.calibrationTime ? TRUE : FALSE ); break; case GET_CAL_BLOOD_LEAK_SENSOR: nvDataStartPtr = (U08*)&ddCalibrationGroup.ddCalibrationRecord.bloodLeakSensorCalRecord; nvDataLength = sizeof( ddCalibrationGroup.ddCalibrationRecord.bloodLeakSensorCalRecord ); - isNVDataInvalid = ( 0 == ddCalibrationGroup.ddCalibrationRecord.bloodLeakSensorCalRecord.calibrationTime ? TRUE : FALSE ); +// isNVDataInvalid = ( 0 == ddCalibrationGroup.ddCalibrationRecord.bloodLeakSensorCalRecord.calibrationTime ? TRUE : FALSE ); break; case GET_SYSTEM_RECORD: Index: firmware/App/Services/NVRecordsDD.h =================================================================== diff -u -r3b7c92408ac36d501987a526bca1dab2bc9782eb -rbeb95e3e8f85740707704d7089db8b3ec8574bbd --- firmware/App/Services/NVRecordsDD.h (.../NVRecordsDD.h) (revision 3b7c92408ac36d501987a526bca1dab2bc9782eb) +++ firmware/App/Services/NVRecordsDD.h (.../NVRecordsDD.h) (revision beb95e3e8f85740707704d7089db8b3ec8574bbd) @@ -327,6 +327,18 @@ BOOL setServiceTime( void ); U32 getMinRORejectionRatioInInstitRecordPCT( void ); F32 getMinInletWaterConductivityLimitInstitRecordUSPCM( void ); + +POLYNOMIAL_CAL_PAYLOAD_T getPressureSensorCalRecord( U08 snsrIdx); +POLYNOMIAL_CAL_PAYLOAD_T getTemperatureSensorCalRecord( U08 snsrIdx); +POLYNOMIAL_CAL_PAYLOAD_T getConcPumpCalRecord( U08 pumpIdx); +DD_D12_DIALYSATE_PUMP_RECORD_T getD12PumpCalRecord( void ); +DD_D48_DIALYSATE_PUMP_RECORD_T getD48PumpCalRecord( void ); +DD_ACID_CONCENTRATE_T getAcidConcentrateCalRecord( U08 acidIdx); +DD_BICARB_CONCENTRATE_T getBicarbConcentrateCalRecord( U08 bicarbIdx); +DD_ACCEL_SENSOR_CAL_RECORD_T getAccelSensorCalRecord( void ); +DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T getBloodLeakSensorCalRecord( void ); + + BOOL getNVMRecord( NV_DATA_T nvData, U08* bufferAddress, U32 bufferLength, U08 numOfSnsrs2Check, ALARM_ID_T nvAlarm ); BOOL setNVMRecord( NVM_RECORD_TYPE_T recType, U08* bufferAddress );