Index: firmware/App/Services/NVMessagingDD.c =================================================================== diff -u -r0599bd5494eb64416999de0487a9882c557b6044 -r9b306db98cfce6e9a750b971e1a34c688618aeae --- firmware/App/Services/NVMessagingDD.c (.../NVMessagingDD.c) (revision 0599bd5494eb64416999de0487a9882c557b6044) +++ firmware/App/Services/NVMessagingDD.c (.../NVMessagingDD.c) (revision 9b306db98cfce6e9a750b971e1a34c688618aeae) @@ -136,7 +136,8 @@ static BOOL sendAccelSensorCalRecord( void ); static BOOL sendBloodLeakSensorCalRecord( void ); -static BOOL receiveCalRecord( MESSAGE_T *message, DD_CAL_REC_TYPE calRecordType, U16 recordSize ); +static BOOL receiveCalRecord( MESSAGE_T *message, BOOL isIndexed, + DD_CAL_REC_TYPE calRecordType, U16 recordSize ); static MSG_ID_T getNVMCalRecordResponseMsgId(DD_CAL_REC_TYPE calRecordType ); static void monitorNewCalSignal( void ); @@ -967,22 +968,32 @@ * @return TRUE if the calibration record was accepted and processed * successfully otherwise FALSE *************************************************************************/ -static BOOL receiveCalRecord( MESSAGE_T* message, DD_CAL_REC_TYPE calRecordType, U16 recordSize ) +static BOOL receiveCalRecord( MESSAGE_T* message, BOOL isIndexed, + DD_CAL_REC_TYPE calRecordType, U16 recordSize ) { BOOL status = FALSE; U08* payloadPtr = message->payload; - U08 expectedPayloadLen = ( sizeof(U08) + recordSize ); + U08 expectedPayloadLen = recordSize ; MSG_ID_T msgID = getNVMCalRecordResponseMsgId( calRecordType ); UI_RESPONSE_PAYLOAD_T response; + if ( TRUE == isIndexed ) + { + expectedPayloadLen = ( sizeof(U08) + recordSize ); + } + DD_NVM_SEND_RECORD_PAYLOAD_T recvdPayload; if ( DD_MODE_SERV == getCurrentOperationMode() ) { if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &recvdPayload.idx, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U08); + // Get the index of the received calibration record if required + if ( TRUE == isIndexed ) + { + memcpy( &recvdPayload.idx, payloadPtr, sizeof(U32)); + payloadPtr += sizeof(U08); + } memcpy( &recvdPayload.data, payloadPtr, recordSize ); @@ -1414,7 +1425,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_PRESSURE_SENSOR, + result = receiveCalRecord( message, TRUE, DD_CAL_RECORD_PRESSURE_SENSOR, sizeof( POLYNOMIAL_CAL_PAYLOAD_T ) ); return result; @@ -1434,7 +1445,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_TEMPERATURE_SENSOR, + result = receiveCalRecord( message, TRUE, DD_CAL_RECORD_TEMPERATURE_SENSOR, sizeof( POLYNOMIAL_CAL_PAYLOAD_T ) ); return result; @@ -1454,7 +1465,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_CONCENTRATE_PUMP, + result = receiveCalRecord( message, TRUE, DD_CAL_RECORD_CONCENTRATE_PUMP, sizeof( POLYNOMIAL_CAL_PAYLOAD_T ) ); return result; @@ -1474,7 +1485,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_D12_PUMP, + result = receiveCalRecord( message, FALSE, DD_CAL_RECORD_D12_PUMP, sizeof( DD_D12_DIALYSATE_PUMP_RECORD_T ) ); return result; @@ -1494,7 +1505,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_D48_PUMP, + result = receiveCalRecord( message, FALSE, DD_CAL_RECORD_D48_PUMP, sizeof( POLYNOMIAL_CAL_PAYLOAD_T ) ); return result; @@ -1514,7 +1525,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_ACID_CONCENTRATE, + result = receiveCalRecord( message, TRUE, DD_CAL_RECORD_ACID_CONCENTRATE, sizeof( DD_ACID_CONCENTRATE_T ) ); return result; @@ -1535,7 +1546,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_BICARB_CONCENTRATE, + result = receiveCalRecord( message, TRUE, DD_CAL_RECORD_BICARB_CONCENTRATE, sizeof( DD_BICARB_CONCENTRATE_T ) ); return result; @@ -1555,7 +1566,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_ACCELEROMETER_SENSOR, + result = receiveCalRecord( message, FALSE, DD_CAL_RECORD_ACCELEROMETER_SENSOR, sizeof( DD_ACCEL_SENSOR_CAL_RECORD_T ) ); return result; @@ -1575,7 +1586,7 @@ { BOOL result = FALSE; - result = receiveCalRecord( message, DD_CAL_RECORD_BLLOD_LEAK_SENSOR, + result = receiveCalRecord( message, FALSE, DD_CAL_RECORD_BLLOD_LEAK_SENSOR, sizeof( DD_BLOOD_LEAK_SENSOR_CAL_RECORD_T ) ); return result;