Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r679d535b77aa6722671084774ad5d96e9789e12e -r96377d3f1e16d6f8a48fddbe9f645f9e2fd68478 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 679d535b77aa6722671084774ad5d96e9789e12e) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 96377d3f1e16d6f8a48fddbe9f645f9e2fd68478) @@ -18,7 +18,6 @@ #include "ModePreTreat.h" #include "OperationModes.h" #include "Timers.h" -#include "TD_Defs.h" #include "TxParams.h" /** @@ -30,14 +29,10 @@ // ********** private data ********** -static TD_PRE_TREATMENT_MODE_STATE_T currentPreTreatmentState = TD_PRE_TREATMENT_CONFIRM_RX_STATE; +static TD_PRE_TREATMENT_MODE_STATE_T currentPreTreatmentState = TD_PRE_TREATMENT_CONFIRM_RX_STATE; ///< Current Pre-Treatment sub-state - // ********** private function prototypes ********** -static TD_PRE_TREATMENT_MODE_STATE_T handleRxState( void ); - - /*********************************************************************//** * @brief * The initPreTreatmentMode function initializes the Pre-Treatment mode. @@ -48,6 +43,8 @@ **************************************************************************/ void initPreTreatmentMode( void ) { + // Start a fresh Treatment Parameters session for this run. + resetTreatmentParameters(); currentPreTreatmentState = TD_PRE_TREATMENT_CONFIRM_RX_STATE; } @@ -114,14 +111,10 @@ case TD_PRE_TREATMENT_RECIRCULATE_STATE: // currentPreTreatmentState = handleRecirculateState(); - if ( TD_PRE_TREATMENT_RECIRCULATE_STATE != currentPreTreatmentState ) - { - currentPreTreatmentState = TD_PRE_TREATMENT_CONFIRM_RX_STATE; - } break; case TD_PRE_TREATMENT_CONFIRM_RX_STATE: - // Confirm Rx step + // Confirm Rx state currentPreTreatmentState = handleRxState(); break; @@ -140,40 +133,25 @@ /*********************************************************************//** * @brief * The handleRxState function executes the Confirm Rx pre-treatment step. - * @details - * - Reads validation / confirmation / rejection flags from TxParams. - * - If the user rejected the prescription, clears the Treatment - * Parameters session and stays in Confirm Rx. - * - If the prescription is valid and confirmed, advances to the - * Patient Connection state. - * - Otherwise remains in Confirm Rx while waiting for UI action. - * @return next pre-treatment mode sub-state. + * @details Inputs: none + * @details Outputs: Requests transition to Treatment mode when the prescription + * is valid and confirmed; otherwise remains in Confirm Rx. + * @return next Pre-Treatment mode sub-state. *************************************************************************/ static TD_PRE_TREATMENT_MODE_STATE_T handleRxState( void ) { BOOL paramsValid = getValidTreatParamsReceived(); BOOL paramsConfirmed = getTreatParamsConfirmed(); - BOOL paramsRejected = getTreatParamsRejected(); - TD_PRE_TREATMENT_MODE_STATE_T state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; - // User rejected – clear session and stay in Confirm Rx - if ( TRUE == paramsRejected ) + // Valid + confirmed – move to next state: Patient Connection + if ( ( TRUE == paramsValid ) && ( TRUE == paramsConfirmed ) ) { - resetTreatmentParameters(); - state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; + // TODO: when additional Pre-Treatment states are implemented, change to TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE. + // state = TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE; + requestNewOperationMode( MODE_TREA ); } - // Valid + confirmed – move to next step: Patient Connection - else if ( ( TRUE == paramsValid ) && ( TRUE == paramsConfirmed ) ) - { - state = TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE; - } - else - { - // Still waiting on UI – remain in Confirm Rx - state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; - } return state; } Index: firmware/App/Modes/ModePreTreat.h =================================================================== diff -u -r679d535b77aa6722671084774ad5d96e9789e12e -r96377d3f1e16d6f8a48fddbe9f645f9e2fd68478 --- firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 679d535b77aa6722671084774ad5d96e9789e12e) +++ firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 96377d3f1e16d6f8a48fddbe9f645f9e2fd68478) @@ -35,7 +35,7 @@ U32 transitionToPreTreatmentMode( void ); // Prepares for transition to pre-treatment mode U32 execPreTreatmentMode( void ); // Execute the pre-treatment mode state machine (call from OperationModes) -TD_PRE_TREATMENT_MODE_STATE_T handleRxState( void ); // Handle Confirm Rx step during Pre-Treatment +static TD_PRE_TREATMENT_MODE_STATE_T handleRxState( void ); // Handle Confirm Rx step during Pre-Treatment /**@}*/ Index: firmware/App/Modes/ModeTxParams.c =================================================================== diff -u -r679d535b77aa6722671084774ad5d96e9789e12e -r96377d3f1e16d6f8a48fddbe9f645f9e2fd68478 --- firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision 679d535b77aa6722671084774ad5d96e9789e12e) +++ firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision 96377d3f1e16d6f8a48fddbe9f645f9e2fd68478) @@ -569,7 +569,7 @@ { if ( FALSE == isTreatmentParamInRange( param, stagedParams[ param ] ) ) { - reasons[ param ] = REQUEST_REJECT+_REASON_PARAM_OUT_OF_RANGE; + reasons[ param ] = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; result = FALSE; } else Index: firmware/App/Services/TxParams.c =================================================================== diff -u -r679d535b77aa6722671084774ad5d96e9789e12e -r96377d3f1e16d6f8a48fddbe9f645f9e2fd68478 --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision 679d535b77aa6722671084774ad5d96e9789e12e) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision 96377d3f1e16d6f8a48fddbe9f645f9e2fd68478) @@ -94,7 +94,6 @@ } DIALIN_SET_TX_PARAM_PAYLOAD_T; #pragma pack(pop) - // ********** private data ********** static const TREATMENT_PARAMS_PROPERTIES_T TREAT_PARAMS_PROPERTIES[ NUM_OF_TREATMENT_PARAMS ] = @@ -172,7 +171,7 @@ * @brief * The getValidTreatParamsReceived function reports whether a valid set * of Treatment Parameters has been staged. -* @details Inputs: none +* @details Inputs: validTreatParamsReceived * @details Outputs: none * @return TRUE if valid parameters are available, FALSE otherwise. **************************************************************************/ @@ -185,7 +184,7 @@ * @brief * The getTreatParamsConfirmed function reports whether the current * Treatment Parameters have been confirmed by the user. - * @details Inputs: none + * @details Inputs: treatParamsConfirmed * @details Outputs: none * @return TRUE if the current Treatment Parameters are confirmed, * FALSE otherwise. @@ -210,13 +209,17 @@ } /*********************************************************************//** -* @brief -* Validate Treatment Parameters received from the UI. -* @details Inputs: message - UI - TD Treatment Parameters validation message. -* @details Outputs: Stages the parameters, performs range/dependency checks, -* and sends validation response including reject reasons. -* @return TRUE if parameters validated successfully, FALSE otherwise. -**************************************************************************/ + * @brief + * The validateAndSetTreatmentParameters function validates received + * treatment parameters. + * @details \b Message \b Sent: MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE + * @details \b Message \b Sent: MSG_ID_TD_TREATMENT_PARAM_RANGES if params are valid + * @details \b Inputs: none + * @details \b Outputs: stagedParams[], validTreatParamsReceived + * @param message set message from UI which includes the user set treatment + * parameters record. + * @return TRUE if received treatment parameters are valid, FALSE if not + *************************************************************************/ BOOL validateAndSetTreatmentParameters( MESSAGE_T *message ) { BOOL paramsAreInvalid = TRUE; @@ -275,15 +278,18 @@ return result; } + /*********************************************************************//** * @brief - * The validateAndSetUFVolume function validates the UF volume received - * from the UI. - * @details Inputs: message – UF volume validation message. - * @details Outputs: Applies UF limits, evaluates dependent constraints, - * and sends accept / reject result back to the UI. - * @return TRUE if the UF volume is valid, FALSE otherwise. - **************************************************************************/ + * The validateAndSetUFVolume function validates received ultrafiltration + * volume treatment parameter. + * @details \b Message \b Sent: MSG_ID_TD_RESP_ULTRAFILTRATION_VOLUME_TO_VALIDATE + * @details \b Inputs: none + * @details \b Outputs: none + * @param message set message from UI which includes the user set ultrafiltration + * volume (in mL). + * @return TRUE if received UF volume parameter is valid, FALSE if not + *************************************************************************/ BOOL validateAndSetUFVolume( MESSAGE_T *message ) { BOOL accepted = FALSE; @@ -338,13 +344,15 @@ /*********************************************************************//** * @brief - * The signalUserConfirmTreatmentParameters function handles user - * confirmation or rejection of Treatment Parameters (Rx). - * @details Inputs: message – UI confirm / reject Treatment Parameters message. - * @details Outputs: Updates local confirmation / rejection flags used by - * ModePreTreat to advance the Confirm Rx step. - * @return TRUE if the message was valid and processed, FALSE otherwise. - **************************************************************************/ + * The signalUserConfirmationOfTreatmentParameters function sets the user + * confirmation flag signaling user has confirmed or rejected treatment + * parameters. + * @details \b Inputs: none + * @details \b Outputs: treatParamsConfirmed, treatParamsRejected + * @param message confirmation message from UI which includes the user + * confirmation or rejection. + * @return TRUE if confirmation/rejection accepted, FALSE if not + *************************************************************************/ BOOL signalUserConfirmTreatmentParameters( MESSAGE_T *message ) { BOOL result = FALSE; Index: firmware/App/Services/TxParams.h =================================================================== diff -u -r679d535b77aa6722671084774ad5d96e9789e12e -r96377d3f1e16d6f8a48fddbe9f645f9e2fd68478 --- firmware/App/Services/TxParams.h (.../TxParams.h) (revision 679d535b77aa6722671084774ad5d96e9789e12e) +++ firmware/App/Services/TxParams.h (.../TxParams.h) (revision 96377d3f1e16d6f8a48fddbe9f645f9e2fd68478) @@ -15,17 +15,16 @@ * ***************************************************************************/ -#ifndef APP_SERVICES_TXPARAMS_H_ -#define APP_SERVICES_TXPARAMS_H_ +#ifndef APP_SERVICES_TX_PARAMS_H_ +#define APP_SERVICES_TX_PARAMS_H_ #include "TDCommon.h" #include "TDDefs.h" #include "Utilities.h" - /** * @defgroup TxParams TxParams - * @brief Treatment parameters mode unit. + * @brief Treatment parameters unit provides validation and confirmation handling for treatment parameters from the UI. * * @addtogroup TxParams * @{