Index: firmware/App/Services/Messaging.c =================================================================== diff -u -rdb4ababe9942a6c755ffc11d25af50f598e8dba6 -r105b259d8643b6d50a42bbeb230d408bc6d20cf5 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision db4ababe9942a6c755ffc11d25af50f598e8dba6) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 105b259d8643b6d50a42bbeb230d408bc6d20cf5) @@ -233,6 +233,7 @@ { MSG_ID_FP_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, &testFPConductivitySensorFilteredTemperatureReadingsOverride }, { MSG_ID_DD_VOLTAGE_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testVoltageDataPublishIntervalOverride }, { MSG_ID_DD_MONITORED_VOLTAGE_OVERRIDE_REQUEST, &testVoltageOverride }, + { MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST, &testTDTreatmentParamsOverride }, { MSG_ID_FP_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testFPLevelsDataPublishIntervalOverride }, { MSG_ID_FP_LEVEL_OVERRIDE_REQUEST, &testFPLevelStateOverride }, { MSG_ID_FP_PERMEATE_TANK_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPermeateTankDataPublishIntervalOverride }, Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -rb212425c0c7e9b69b4de7d46dd41030dfc3efa62 -r105b259d8643b6d50a42bbeb230d408bc6d20cf5 --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision b212425c0c7e9b69b4de7d46dd41030dfc3efa62) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 105b259d8643b6d50a42bbeb230d408bc6d20cf5) @@ -465,5 +465,46 @@ * TEST SUPPORT FUNCTIONS *************************************************************************/ +/*********************************************************************//** + * @brief + * Apply DD treatment parameter overrides received from Dialin. + * @details + * Handles DD_TREATMENT_PARAMS_OVERRIDE_PAYLOAD_T and updates: + * dialysate flow (F32), UF rate (F32), dialysate temperature (F32) + * acid and bicarbonate concentrate options (U32) Overrides + * are applied only in DD_MODE_GEND, followed by + * setTreatmentParamUpdate(). + * @param message Pointer to override message from Dialin. + * @return TRUE if override applied, FALSE otherwise. + *************************************************************************/ +BOOL testTDTreatmentParamsOverride( MESSAGE_T *message ) +{ + BOOL result = FALSE; + if( message->hdr.payloadLen == sizeof( DD_TREATMENT_PARAMS_OVERRIDE_PAYLOAD_T ) ) + { + DD_TREATMENT_PARAMS_OVERRIDE_PAYLOAD_T payload; + DD_OP_MODE_T ddMode = getCurrentOperationMode(); + + memcpy( &payload, message->payload, sizeof( DD_TREATMENT_PARAMS_OVERRIDE_PAYLOAD_T ) ); + + if( DD_MODE_GEND == ddMode ) + { + // Overrides to DD working parameters + setTDDialysateFlowrate( payload.dialFlowRate_ml_min ); + setTDUFRate( payload.ufRate_ml_h ); + setTDTargetDialysateTemperature( payload.dialTemp_degC ); + setTDAcidAndBicarbType( (DD_ACID_TYPES_T)payload.acidConcentrate, ( DD_BICARB_TYPES_T )payload.bicarbConcentrate ); + + // Notify to the system DD parameters changed + setTreatmentParamUpdate(); + + result = TRUE; + } + } + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DD_2_TD, result ); + + return result; +} + /**@}*/ Index: firmware/App/Services/TDInterface.h =================================================================== diff -u -r363b26b9ab427b7e39e505425c1b15e0584669cb -r105b259d8643b6d50a42bbeb230d408bc6d20cf5 --- firmware/App/Services/TDInterface.h (.../TDInterface.h) (revision 363b26b9ab427b7e39e505425c1b15e0584669cb) +++ firmware/App/Services/TDInterface.h (.../TDInterface.h) (revision 105b259d8643b6d50a42bbeb230d408bc6d20cf5) @@ -53,10 +53,14 @@ F32 getTDTargetDialysateTemperature( void ); BOOL getTDDialyzerBypass( void ); + TD_OP_MODE_T getTDOpMode( void ); DD_ACID_TYPES_T getTDAcidConcentrateType( void ); DD_BICARB_TYPES_T getTDBicarbConcentrateType( void ); +BOOL testTDTreatmentParamsOverride ( MESSAGE_T *message ); + + /**@}*/ #endif