Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -rc6f3b01d1b0a5e3fdf480a7ee205ca349e10d6d2 -r07a352d02dc7e062dd5b6742891ac0b57679858c --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision c6f3b01d1b0a5e3fdf480a7ee205ca349e10d6d2) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 07a352d02dc7e062dd5b6742891ac0b57679858c) @@ -23,7 +23,6 @@ #include "ModeTreatmentParams.h" #include "OperationModes.h" #include "SystemCommMessages.h" -#include "Utilities.h" #ifdef RM46_EVAL_BOARD_TARGET #include "Timers.h" static U32 start; @@ -53,7 +52,7 @@ static HD_TREATMENT_PARAMS_MODE_STATE_T currentTreatmentParamsState; ///< Current state of treatment parameters mode state machine. /// Treatment parameter properties (types, ranges and defaults). -const TREATMENT_PARAMS_PROPERTIES_T treatParamsRanges[ NUM_OF_TREATMENT_PARAMS ] = +const TREATMENT_PARAMS_PROPERTIES_T treatParamsProperties[ NUM_OF_TREATMENT_PARAMS ] = { { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=1500}, {.uInt=10} }, // TREATMENT_PARAM_BLOOD_FLOW { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=1600}, {.uInt=10} }, // TREATMENT_PARAM_DIALYSATE_FLOW @@ -150,7 +149,7 @@ { resetCriticalData( &treatmentParameters[ param ] ); // set each treatment parameter to default value - setCriticalData( &treatmentParameters[ param ], treatParamsRanges[ param ].def ); + setCriticalData( &treatmentParameters[ param ], treatParamsProperties[ param ].def ); // set staged parameter values to zero stagedParams[ param ].uInt = 0; } @@ -306,7 +305,7 @@ TREATMENT_PARAM_T param; // set all treatment parameters (except UF volume which is not yet received) - for ( param = TREATMENT_PARAM_FIRST_U32; param < TREATMENT_PARAM_UF_VOLUME; param++ ) + for ( param = TREATMENT_PARAM_FIRST_UINT; param < TREATMENT_PARAM_UF_VOLUME; param++ ) { setCriticalData( &treatmentParameters[ param ], stagedParams[ param ] ); } @@ -390,7 +389,7 @@ TREATMENT_PARAM_T param; // range check treatment parameters up to (but not including) UF volume - for ( param = TREATMENT_PARAM_FIRST_U32; param < TREATMENT_PARAM_UF_VOLUME; param++ ) + for ( param = TREATMENT_PARAM_FIRST_UINT; param < TREATMENT_PARAM_UF_VOLUME; param++ ) { BOOL isParamInRange = isTreatmentParamInRange( param, stagedParams[ param ] ); @@ -454,8 +453,6 @@ result = FALSE; } - // TODO - check BP measurement interval when cuff connection status is provided by UI (min goes up to 15 if cuff connected, interval must be zero if not) - return result; } @@ -474,24 +471,24 @@ { BOOL result = FALSE; - switch ( treatParamsRanges[ param ].dataType ) + switch ( treatParamsProperties[ param ].dataType ) { case CRITICAL_DATA_TYPE_U32: - if ( value.uInt >= treatParamsRanges[ param ].min.uInt && value.uInt <= treatParamsRanges[ param ].max.uInt ) + if ( value.uInt >= treatParamsProperties[ param ].min.uInt && value.uInt <= treatParamsProperties[ param ].max.uInt ) { result = TRUE; } break; case CRITICAL_DATA_TYPE_S32: - if ( value.sInt >= treatParamsRanges[ param ].min.sInt && value.sInt <= treatParamsRanges[ param ].max.sInt ) + if ( value.sInt >= treatParamsProperties[ param ].min.sInt && value.sInt <= treatParamsProperties[ param ].max.sInt ) { result = TRUE; } break; case CRITICAL_DATA_TYPE_F32: - if ( value.sFlt >= treatParamsRanges[ param ].min.sFlt && value.sFlt <= treatParamsRanges[ param ].max.sFlt ) + if ( value.sFlt >= treatParamsProperties[ param ].min.sFlt && value.sFlt <= treatParamsProperties[ param ].max.sFlt ) { result = TRUE; } @@ -552,7 +549,7 @@ void setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ) { // validate parameter - if ( param <= TREATMENT_PARAM_LAST_U32 ) + if ( param <= TREATMENT_PARAM_LAST_UINT ) { CRITICAL_DATAS_T data = treatmentParameters[ param ].data; @@ -579,7 +576,7 @@ void setTreatmentParameterS32( TREATMENT_PARAM_T param, S32 value ) { // validate parameter - if ( param <= TREATMENT_PARAM_LAST_U32 ) + if ( ( param >= TREATMENT_PARAM_FIRST_INT ) && ( param <= TREATMENT_PARAM_LAST_INT ) ) { CRITICAL_DATAS_T data = treatmentParameters[ param ].data; @@ -606,7 +603,7 @@ void setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ) { // validate parameter - if ( param >= TREATMENT_PARAM_FIRST_F32 && param < NUM_OF_TREATMENT_PARAMS ) + if ( ( param >= TREATMENT_PARAM_FIRST_F32 ) && ( param < NUM_OF_TREATMENT_PARAMS ) ) { CRITICAL_DATAS_T data = treatmentParameters[ param ].data; @@ -634,7 +631,7 @@ U32 result = 0; // validate parameter - if ( param <= TREATMENT_PARAM_LAST_U32 ) + if ( param <= TREATMENT_PARAM_LAST_UINT ) { CRITICAL_DATAS_T data = getCriticalData( &treatmentParameters[ param ] ); @@ -663,7 +660,7 @@ S32 result = 0; // validate parameter - if ( param <= TREATMENT_PARAM_LAST_U32 ) + if ( ( param >= TREATMENT_PARAM_FIRST_INT ) && ( param <= TREATMENT_PARAM_LAST_INT ) ) { CRITICAL_DATAS_T data = getCriticalData( &treatmentParameters[ param ] ); @@ -692,7 +689,7 @@ F32 result = 0.0; // validate parameter - if ( param >= TREATMENT_PARAM_FIRST_F32 && param < NUM_OF_TREATMENT_PARAMS ) + if ( ( param >= TREATMENT_PARAM_FIRST_F32 ) && ( param < NUM_OF_TREATMENT_PARAMS ) ) { CRITICAL_DATAS_T data = getCriticalData( &treatmentParameters[ param ] ); @@ -706,4 +703,57 @@ return result; } + +/************************************************************************* + * TEST SUPPORT FUNCTIONS + *************************************************************************/ + + +/************************************************************************* + * @brief + * The testSetTreatmentParameterOverride function overrides the value of a \n + * given treatment parameter. + * @details + * Inputs : none + * Outputs : treatment parameter set to given value + * @param param ID of treatment parameter to set value of + * @param value value to set for given treatment parameter + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testSetTreatmentParameter( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ) +{ + BOOL result = FALSE; + + if ( param < NUM_OF_TREATMENT_PARAMS ) + { + if ( TRUE == isTestingActivated() ) + { + // set parameter per its type + switch ( treatParamsProperties[ param ].dataType ) + { + case CRITICAL_DATA_TYPE_U32: + setTreatmentParameterU32( param, value.uInt ); + result = TRUE; + break; + + case CRITICAL_DATA_TYPE_S32: + setTreatmentParameterS32( param, value.sInt ); + result = TRUE; + break; + + case CRITICAL_DATA_TYPE_F32: + setTreatmentParameterF32( param, value.sFlt ); + result = TRUE; + break; + + default: + // ok - do nothing + break; + } + } + } + + return result; +} + /**@}*/