Index: firmware/App/Services/NVMessagingDD.c =================================================================== diff -u -r7b414857790dd5282137bf67d56688a703d4bfe7 -r3ac9763f9bcf1246565b6309c5d1b1d6b665700c --- firmware/App/Services/NVMessagingDD.c (.../NVMessagingDD.c) (revision 7b414857790dd5282137bf67d56688a703d4bfe7) +++ firmware/App/Services/NVMessagingDD.c (.../NVMessagingDD.c) (revision 3ac9763f9bcf1246565b6309c5d1b1d6b665700c) @@ -1409,15 +1409,16 @@ // System record can be updated only in service mode if ( DD_MODE_SERV == getCurrentOperationMode() ) { + // Verify the payload leangth if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_SYSTEM_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_SYSTEM_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_SYSTEM_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_SYSTEM_RECORD ); sendNVEvent( NVM_SYSTEM_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -1500,13 +1501,13 @@ { if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_FP_SERVICE_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_SERVICE_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_FP_SERVICE_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_SERVICE_RECORD ); sendNVEvent( NVM_SERVICE_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -1589,13 +1590,13 @@ { if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_DD_SERVICE_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_SERVICE_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_DD_SERVICE_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_SERVICE_RECORD ); sendNVEvent( NVM_SERVICE_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -1711,15 +1712,16 @@ if ( idx < NUM_OF_PRESSURE_SENSORS ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_PRESSURE_SENOSRS, (U08*)&record, idx ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); + response.idx = idx; - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_PRESSURE_SENOSRS, (U08*)&record, idx ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); - response.idx = idx; response.accepted = TRUE; } else @@ -1828,15 +1830,16 @@ if ( idx < NUM_OF_TEMPERATURE_SENSORS ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_TEMPERATURE_SENSORS, (U08*)&record, idx ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); + response.idx = idx; - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_TEMPERATURE_SENSORS, (U08*)&record, idx ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); - response.idx = idx; response.accepted = TRUE; } else @@ -1933,15 +1936,16 @@ if ( idx < NUM_OF_CONCENTRATE_PUMPS ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_CONCENTRATE_PUMPS_RECORD, (U08*)&record, idx ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); + response.idx = idx; - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_CONCENTRATE_PUMPS_RECORD, (U08*)&record, idx ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); - response.idx = idx; response.accepted = TRUE; } else @@ -2008,13 +2012,13 @@ { if ( message->hdr.payloadLen == recordSize ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_D12_PUMP_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_D12_PUMP_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2077,13 +2081,13 @@ { if ( message->hdr.payloadLen == recordSize ) { - memcpy( &record, payloadPtr, recordSize ); - record.d48DialysatePump.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_D48_PUMP_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.d48DialysatePump.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_D48_PUMP_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2176,15 +2180,16 @@ if ( idx < NUM_OF_ACID_TYPE ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_ACID_CONCENTREATES, (U08*)&record, idx ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); + response.idx = idx; - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_ACID_CONCENTREATES, (U08*)&record, idx ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); - response.idx = idx; response.accepted = TRUE; } else @@ -2281,15 +2286,16 @@ if ( idx < NUM_OF_BICARB_TYPE ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_BICARB_CONCENTRATES, (U08*)&record, idx ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); + response.idx = idx; - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_BICARB_CONCENTRATES, (U08*)&record, idx ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); - response.idx = idx; response.accepted = TRUE; } else @@ -2356,13 +2362,13 @@ { if ( message->hdr.payloadLen == recordSize ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_ACCELEROMETER_SENSOR, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_ACCELEROMETER_SENSOR, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2426,13 +2432,13 @@ { if ( message->hdr.payloadLen == recordSize ) { - memcpy( &record, payloadPtr, recordSize ); - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_BLOOD_LEAK_SENSOR, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_BLOOD_LEAK_SENSOR, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2526,16 +2532,15 @@ if ( idx < NUM_OF_CONDUCTIVITY_SENSORS ) { - memcpy( &record, payloadPtr, recordSize ); + response.idx = idx; - record.crc = crc16( (U08*)&record, recordSize ); - setNVMRecord( NV_DD_DATA_CAL_CONDUCTIVITY_SENSORS, (U08*)&record, idx ); - result = enqueueEraseAndWriteSector( NVM_CALIBRATION_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, payloadPtr, recordSize ); + record.crc = crc16( (U08*)&record, recordSize ); + setNVMRecord( NV_DD_DATA_CAL_CONDUCTIVITY_SENSORS, (U08*)&record, idx ); sendNVEvent( NVM_CALIBRATION_RECORD, 0, 0 ); - response.idx = idx; response.accepted = TRUE; } else @@ -2620,13 +2625,13 @@ if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_INSTIT_BASIC_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_INSTITUTIONAL_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_INSTIT_BASIC_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_INSTITUTIONAL_RECORD ); sendNVEvent( NVM_INSTITUTIONAL_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2702,13 +2707,13 @@ if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_INSTIT_ADVANCED_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_INSTITUTIONAL_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_INSTIT_ADVANCED_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_INSTITUTIONAL_RECORD ); sendNVEvent( NVM_INSTITUTIONAL_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2785,13 +2790,13 @@ if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_INSTIT_ADDITIONAL_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_INSTITUTIONAL_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_INSTIT_ADDITIONAL_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_INSTITUTIONAL_RECORD ); sendNVEvent( NVM_INSTITUTIONAL_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2867,13 +2872,13 @@ if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_FP_USAGE_INFO_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_USAGE_INFO_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_FP_USAGE_INFO_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_USAGE_INFO_RECORD ); sendNVEvent( NVM_USAGE_INFO_RECORD, 0, 0 ); response.accepted = TRUE; } @@ -2949,13 +2954,13 @@ if ( message->hdr.payloadLen == expectedPayloadLen ) { - memcpy( &record, message->payload, expectedPayloadLen ); - record.crc = crc16( (U08*)&record, expectedPayloadLen ); - setNVMRecord( NV_DD_DATA_DD_USAGE_INFO_RECORD, (U08*)&record, 0 ); - result = enqueueEraseAndWriteSector( NVM_USAGE_INFO_RECORD ); - - if ( TRUE == result ) + // Check if job queue is not full + if ( FALSE == isRecordQueueFull() ) { + memcpy( &record, message->payload, expectedPayloadLen ); + record.crc = crc16( (U08*)&record, expectedPayloadLen ); + setNVMRecord( NV_DD_DATA_DD_USAGE_INFO_RECORD, (U08*)&record, 0 ); + result = enqueueEraseAndWriteSector( NVM_USAGE_INFO_RECORD ); sendNVEvent( NVM_USAGE_INFO_RECORD, 0, 0 ); response.accepted = TRUE; }