Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -r850f74b97895fd0f6c4728541ac2582f7b5c5a0b -rbd0ae373570f7f224bb9a6a4e86f805be77de192 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 850f74b97895fd0f6c4728541ac2582f7b5c5a0b) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision bd0ae373570f7f224bb9a6a4e86f805be77de192) @@ -85,6 +85,7 @@ static BOOL treatParamsConfirmed = FALSE; ///< Flag indicates user has confirmed the treatment parameters. static BOOL treatParamsRejected = FALSE; ///< Flag indicates user has rejected the treatment parameters. static BOOL treatmentCancelled = FALSE; ///< Flag indicates user has cancelled the treatment. +static BOOL validUFVolumeParamReceived = FALSE; ///< Flag indicates user has provided UF volume parameter. // ********** private function prototypes ********** @@ -131,6 +132,7 @@ treatParamsConfirmed = FALSE; treatParamsRejected = FALSE; treatmentCancelled = FALSE; + validUFVolumeParamReceived = FALSE; // Set user alarm recovery actions allowed in this mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, FALSE ); @@ -401,16 +403,13 @@ { BOOL accepted = FALSE; REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NONE; - F32 uFVolumeL = uFVolumeMl / (F32)ML_PER_LITER; + F32 uFVolumeL = uFVolumeMl / (F32)ML_PER_LITER; // Validate given UF volume accepted = setTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME, uFVolumeL ); - if ( FALSE == accepted ) + + if ( TRUE == accepted ) { - rejReason = REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE; - } - else - { U32 treatmentDuration = getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); if ( treatmentDuration > 0 ) @@ -429,8 +428,13 @@ rejReason = REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM; } } + else + { + rejReason = REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE; + } // Respond to set treatment parameters request message + validUFVolumeParamReceived = accepted; uFVolumeL = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); uFVolumeMl = uFVolumeL * (F32)ML_PER_LITER; sendUFVolumeSetResponseMsg( accepted, rejReason, uFVolumeMl ); @@ -440,6 +444,19 @@ /*********************************************************************//** * @brief + * The isUFVolumeParamReceived function determines whether a valid UF volume + * parameter has been provided by user. + * @details Inputs: validUFVolumeParamReceived + * @details Outputs: none + * @return TRUE if valid UF volume parameter has been received, FALSE if not + *************************************************************************/ +BOOL isUFVolumeParamReceived( void ) +{ + return validUFVolumeParamReceived; +} + +/*********************************************************************//** + * @brief * The validateAndSetTreatmentParameters function validates received * treatment parameters. * @details Inputs: none