Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r1edea1b3b13b1e0f69a7209363ae6886cb89f89c -r615db6cbd5cfdb3f9985684bba7da47b790e679a --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 1edea1b3b13b1e0f69a7209363ae6886cb89f89c) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 615db6cbd5cfdb3f9985684bba7da47b790e679a) @@ -15,7 +15,7 @@ * ***************************************************************************/ -#include // Used for fabs() functions +#include // Used for abs(), fabs() functions #include // Used for memset() #include "BloodFlow.h" @@ -967,31 +967,20 @@ U32 absFlowU32 = 0; F32 tFilterSec = 0.0F; F32 windowSamplesF = 0.0F; - U32 windowSamples = 0; + U32 windowSamples = BP_SPEED_FILTER_DEFAULT_SAMPLES; - if ( 0 != targetBloodFlowRate ) + absFlowU32 = abs( targetBloodFlowRate ); + if ( absFlowU32 != 0 ) { - absFlowU32 = ( targetBloodFlowRate >= 0 ) ? (U32)targetBloodFlowRate : (U32)( -targetBloodFlowRate ); - if ( 0 != absFlowU32 ) + if ( absFlowU32 > (U32)MAX_SETTABLE_BLOOD_FLOW_RATE ) { - if ( absFlowU32 > (U32)MAX_SETTABLE_BLOOD_FLOW_RATE ) - { - absFlowU32 = (U32)MAX_SETTABLE_BLOOD_FLOW_RATE; - } - - tFilterSec = (F32)BP_SPEED_FILTER_TIME_FLOW_PRODUCT / (F32)absFlowU32; - windowSamplesF = ( tFilterSec * (F32)MS_PER_SECOND / (F32)TASK_GENERAL_INTERVAL ) + 0.5F; - windowSamples = (U32)windowSamplesF; - - if ( windowSamples < BP_SPEED_FILTER_DEFAULT_SAMPLES ) - { - windowSamples = BP_SPEED_FILTER_DEFAULT_SAMPLES; - } - if ( windowSamples > (U32)MAX_BP_SPEED_FILTER_SAMPLES ) - { - windowSamples = (U32)MAX_BP_SPEED_FILTER_SAMPLES; - } + absFlowU32 = (U32)MAX_SETTABLE_BLOOD_FLOW_RATE; } + + tFilterSec = (F32)BP_SPEED_FILTER_TIME_FLOW_PRODUCT / (F32)absFlowU32; + windowSamplesF = ( tFilterSec * (F32)MS_PER_SECOND / (F32)TASK_GENERAL_INTERVAL ) + 0.5F; + windowSamples = (U32)windowSamplesF; + windowSamples = RANGE( windowSamples, BP_SPEED_FILTER_DEFAULT_SAMPLES, MAX_BP_SPEED_FILTER_SAMPLES ); } return windowSamples;