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; }