Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -r333e2d0c0462dcb4343a279420949cce716ebab7 -r05d1736c3a27fba69d8fa0b97b5f1a9894f6cc87 --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 333e2d0c0462dcb4343a279420949cce716ebab7) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 05d1736c3a27fba69d8fa0b97b5f1a9894f6cc87) @@ -43,11 +43,11 @@ // TD status static TD_OP_MODE_T tdCurrentOpMode; ///< Current TD operation mode. static U32 tdSubMode; ///< Current state (sub-mode) of current TD operation mode. -static F32 tdDialysateFlowrate; ///< TD dialysate flow rate -static F32 tdUFRate; ///< TD ultrafiltration rate -static F32 tdTargetDialysateTemp; ///< TD target dialysate temperature +static OVERRIDE_F32_T tdDialysateFlowrate; ///< TD dialysate flow rate +static OVERRIDE_F32_T tdUFRate; ///< TD ultrafiltration rate +static OVERRIDE_F32_T tdTargetDialysateTemp; ///< TD target dialysate temperature static BOOL tdDialyzerBypass; ///< TD dialyzer bypass -static DD_ACID_TYPES_T tdAcidType; ///< TD Acid type. +static OVERRIDE_U32_T tdAcidType; ///< TD Acid type. static DD_BICARB_TYPES_T tdBicarbType; ///< TD Bicarb type. static BOOL tdOpModeDataFreshFlag = FALSE; ///< Flag to signal/process fresh TD op mode data @@ -66,14 +66,26 @@ void initTDInterface( void ) { // Initialize unit variables - tdCurrentOpMode = MODE_INIT; - tdSubMode = 0; - tdDialysateFlowrate = MAX_DIALYSATE_FLOW_RATE; // Will update later based on the TD value - tdUFRate = 0.0F; - tdTargetDialysateTemp = 0.0F; - tdDialyzerBypass = FALSE; - tdAcidType = ACID_08_1251_1; - tdBicarbType = BICARB_08_677753_0; + tdCurrentOpMode = MODE_INIT; + tdSubMode = 0; + tdDialysateFlowrate.data = MAX_DIALYSATE_FLOW_RATE; // Will update later based on the TD value + tdDialysateFlowrate.ovData = MAX_DIALYSATE_FLOW_RATE; // Will update later based on the TD value + tdDialysateFlowrate.ovInitData = MAX_DIALYSATE_FLOW_RATE; // Will update later based on the TD value + tdDialysateFlowrate.override = OVERRIDE_RESET; + tdUFRate.data = 0.0F; + tdUFRate.ovData = 0.0F; + tdUFRate.ovInitData = 0.0F; + tdUFRate.override = OVERRIDE_RESET; + tdTargetDialysateTemp.data = 0.0F; + tdTargetDialysateTemp.ovData = 0.0F; + tdTargetDialysateTemp.ovInitData = 0.0F; + tdTargetDialysateTemp.override = OVERRIDE_RESET; + tdDialyzerBypass = FALSE; + tdAcidType.data = ACID_08_1251_1; + tdAcidType.ovData = ACID_08_1251_1; + tdAcidType.ovInitData = ACID_08_1251_1; + tdAcidType.override = OVERRIDE_RESET; + tdBicarbType = BICARB_08_677753_0; } /**********************************************************************//** @@ -184,7 +196,7 @@ *************************************************************************/ void setTDDialysateFlowrate( F32 dialFlowrate ) { - tdDialysateFlowrate = dialFlowrate; + tdDialysateFlowrate.data = dialFlowrate; } /*********************************************************************//** @@ -197,7 +209,7 @@ *************************************************************************/ void setTDUFRate( F32 ufRate ) { - tdUFRate = ufRate; + tdUFRate.data = ufRate; } /*********************************************************************//** @@ -211,7 +223,7 @@ *************************************************************************/ void setTDTargetDialysateTemperature( F32 dialTemperature ) { - tdTargetDialysateTemp = dialTemperature; + tdTargetDialysateTemp.data = dialTemperature; } /*********************************************************************//** @@ -240,8 +252,8 @@ *************************************************************************/ void setTDAcidAndBicarbType( U32 acid, U32 bicarb ) { - tdAcidType = (DD_ACID_TYPES_T)acid; - tdBicarbType = (DD_BICARB_TYPES_T)bicarb; + tdAcidType.data = (DD_ACID_TYPES_T)acid; + tdBicarbType = (DD_BICARB_TYPES_T)bicarb; } /*********************************************************************//** @@ -254,7 +266,7 @@ *************************************************************************/ F32 getTDDialysateFlowrate( void ) { - return tdDialysateFlowrate; + return getF32OverrideValue( &tdDialysateFlowrate ); } /*********************************************************************//** @@ -267,7 +279,7 @@ *************************************************************************/ F32 getTDUFRate( void ) { - return tdUFRate; + return getF32OverrideValue( &tdUFRate ); } /*********************************************************************//** @@ -280,7 +292,7 @@ *************************************************************************/ F32 getTDTargetDialysateTemperature( void ) { - return tdTargetDialysateTemp; + return getF32OverrideValue( &tdTargetDialysateTemp ); } /*********************************************************************//** @@ -306,7 +318,7 @@ *************************************************************************/ DD_ACID_TYPES_T getTDAcidConcentrateType( void ) { - return tdAcidType; + return getF32OverrideValue( &tdAcidType ); } /*********************************************************************//** @@ -441,4 +453,71 @@ *************************************************************************/ +/*********************************************************************//** + * @brief + * The testDialysateFlowRateOverride function overrides the dialysate flow rate + * treatment parameter. + * @details \b Inputs: tdDialysateFlowrate + * @details \b Outputs: tdDialysateFlowrate + * @param message Override message from Dialin which includes the dialysate flow + * rate treatment parameter. + * @return TRUE if the override was successful otherwise FALSE + *************************************************************************/ +BOOL testDialysateFlowRateOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &tdDialysateFlowrate ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testTargetDialysateTemperatureOverride function overrides the dialysate + * temperature target treatment parameter. + * @details \b Inputs: tdTargetDialysateTemp + * @details \b Outputs: tdTargetDialysateTemp + * @param message Override message from Dialin which includes the dialysate + * temperature target treatment parameter. + * @return TRUE if the override was successful otherwise FALSE + *************************************************************************/ +BOOL testTargetDialysateTemperatureOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &tdTargetDialysateTemp ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testUfRateOverride function overrides the ultrafiltration rate + * treatment parameter. + * @details \b Inputs: tdUFRate + * @details \b Outputs: tdUFRate + * @param message Override message from Dialin which includes the ultrafiltration + * rate treatment parameter. + * @return TRUE if the override was successful otherwise FALSE + *************************************************************************/ +BOOL testUfRateOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &tdUFRate ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testAcidCompOverride function overrides the acid composition treatment + * parameter. + * @details \b Inputs: tdAcidType + * @details \b Outputs: tdAcidType + * @param message Override message from Dialin which includes the acid composition + * treatment parameter. + * @return TRUE if the override was successful otherwise FALSE + *************************************************************************/ +BOOL testAcidCompOverride( MESSAGE_T *message ) +{ + BOOL result = u32Override( message, &tdAcidType, ACID_08_1251_1, ACID_08_3251_9 ); + + return result; +} /**@}*/ Index: firmware/App/Services/TDInterface.h =================================================================== diff -u -r363b26b9ab427b7e39e505425c1b15e0584669cb -r05d1736c3a27fba69d8fa0b97b5f1a9894f6cc87 --- firmware/App/Services/TDInterface.h (.../TDInterface.h) (revision 363b26b9ab427b7e39e505425c1b15e0584669cb) +++ firmware/App/Services/TDInterface.h (.../TDInterface.h) (revision 05d1736c3a27fba69d8fa0b97b5f1a9894f6cc87) @@ -57,6 +57,10 @@ DD_ACID_TYPES_T getTDAcidConcentrateType( void ); DD_BICARB_TYPES_T getTDBicarbConcentrateType( void ); +BOOL testDialysateFlowRateOverride( MESSAGE_T *message ); // To override the dialysate flow rate treatment parameter +BOOL testTargetDialysateTemperatureOverride( MESSAGE_T *message ); // To override the target dialysate temperature treatment parameter +BOOL testUfRateOverride( MESSAGE_T *message ); // To override the ultrafiltration rate treatment parameter +BOOL testAcidCompOverride( MESSAGE_T *message ); // To override the acid composition treatment parameter /**@}*/ #endif