Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r6a30402a7d47d1c77c04845a1c880935f00c6551 -r3ac9763f9bcf1246565b6309c5d1b1d6b665700c --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 6a30402a7d47d1c77c04845a1c880935f00c6551) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 3ac9763f9bcf1246565b6309c5d1b1d6b665700c) @@ -127,16 +127,10 @@ { MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE, &handleUpdateAvailable }, { MSG_ID_UI_DD_NVM_GET_SYSTEM_RECORD_REQUEST, &handleDDGetSystemRecRequest }, { MSG_ID_UI_DD_NVM_SET_SYSTEM_RECORD_REQUEST, &handleDDSetSystemRecRequest }, + { MSG_ID_UI_FP_NVM_GET_SERVICE_RECORD_REQUEST, &handleFPGetServicRecRequest }, + { MSG_ID_UI_FP_NVM_SET_SERVICE_RECORD_REQUEST, &handleFPSetServicRecRequest }, { MSG_ID_UI_DD_NVM_GET_SERVICE_RECORD_REQUEST, &handleDDGetServicRecRequest }, { MSG_ID_UI_DD_NVM_SET_SERVICE_RECORD_REQUEST, &handleDDSetServicRecRequest }, - { MSG_ID_UI_DD_NVM_GET_INSTIT_BASIC_RECORD_REQUEST, &handleDDGetInstitBasicRecRequest }, - { MSG_ID_UI_DD_NVM_SET_INSTIT_BASIC_RECORD_REQUEST, &handleDDSetInstitBasicRecRequest }, - { MSG_ID_UI_DD_NVM_GET_INSTIT_ADVANCED_RECORD_REQUEST, &handleDDGetInstitAdvancedRecRequest }, - { MSG_ID_UI_DD_NVM_SET_INSTIT_ADVANCED_RECORD_REQUEST, &handleDDSetInstitAdvancedRecRequest }, - { MSG_ID_UI_DD_NVM_GET_INSTIT_ADDITIONAL_RECORD_REQUEST, &handleDDGetInstitAdditionalRecRequest }, - { MSG_ID_UI_DD_NVM_SET_INSTIT_ADDITIONAL_RECORD_REQUEST, &handleDDSetInstitAdditionalRecRequest }, - { MSG_ID_UI_DD_NVM_GET_USAGE_INFO_RECORD_REQUEST, &handleDDGetUsageInfoRecRequest }, - { MSG_ID_UI_DD_NVM_SET_USAGE_INFO_RECORD_REQUEST, &handleDDSetUsageInfoRecRequest }, { MSG_ID_UI_DD_NVM_GET_PRESSURE_SENSOR_CAL_RECORD_REQUEST, &handleDDGetPressureSensorCalRecRequest }, { MSG_ID_UI_DD_NVM_SET_PRESSURE_SENSOR_CAL_RECORD_REQUEST, &handleDDSetPressureSensorCalRecRequest }, { MSG_ID_UI_DD_NVM_GET_TEMPERATURE_SENSOR_CAL_RECORD_REQUEST, &handleDDGetTemperatureSensorCalRecRequest }, @@ -157,6 +151,16 @@ { MSG_ID_UI_DD_NVM_SET_BLOOD_LEAK_SENSOR_CAL_RECORD_REQUEST, &handleDDSetBloodLeakSensorCalRecRequest }, { MSG_ID_UI_DD_NVM_GET_CONDUCTIVITY_SENSOR_CAL_RECORD_REQUEST, &handleDDGetConductivitySensorCalRecRequest }, { MSG_ID_UI_DD_NVM_SET_CONDUCTIVITY_SENSOR_CAL_RECORD_REQUEST, &handleDDSetConductivitySensorCalRecRequest }, + { MSG_ID_UI_DD_NVM_GET_INSTIT_BASIC_RECORD_REQUEST, &handleDDGetInstitBasicRecRequest }, + { MSG_ID_UI_DD_NVM_SET_INSTIT_BASIC_RECORD_REQUEST, &handleDDSetInstitBasicRecRequest }, + { MSG_ID_UI_DD_NVM_GET_INSTIT_ADVANCED_RECORD_REQUEST, &handleDDGetInstitAdvancedRecRequest }, + { MSG_ID_UI_DD_NVM_SET_INSTIT_ADVANCED_RECORD_REQUEST, &handleDDSetInstitAdvancedRecRequest }, + { MSG_ID_UI_DD_NVM_GET_INSTIT_ADDITIONAL_RECORD_REQUEST, &handleDDGetInstitAdditionalRecRequest }, + { MSG_ID_UI_DD_NVM_SET_INSTIT_ADDITIONAL_RECORD_REQUEST, &handleDDSetInstitAdditionalRecRequest }, + { MSG_ID_UI_FP_NVM_GET_USAGE_INFO_RECORD_REQUEST, &handleFPGetUsageInfoRecRequest }, + { MSG_ID_UI_FP_NVM_SET_USAGE_INFO_RECORD_REQUEST, &handleFPSetUsageInfoRecRequest }, + { MSG_ID_UI_DD_NVM_GET_USAGE_INFO_RECORD_REQUEST, &handleDDGetUsageInfoRecRequest }, + { MSG_ID_UI_DD_NVM_SET_USAGE_INFO_RECORD_REQUEST, &handleDDSetUsageInfoRecRequest }, { MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testValvesStatesPublishIntervalOverride }, { MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST, &testValveStateOverride }, { MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST, &testValveSensedStateOverride }, 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; }