Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rf7b149d8b8c9ea6ac58e4739101693d251d7a355 -rbb114842e73659f097bb8b8ec0d670bfa4f8cb73 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision f7b149d8b8c9ea6ac58e4739101693d251d7a355) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision bb114842e73659f097bb8b8ec0d670bfa4f8cb73) @@ -223,23 +223,33 @@ /*********************************************************************//** * @brief - * The signalUserStartingTreatment function handles user initiation of a + * The signalUserInitiateTreatment function handles user initiation of a * treatment. * @details Inputs: none - * @details Outputs: requested mode transition to treatment parameters mode + * @details Outputs: treatStartReqReceived * @return TRUE if signal accepted, FALSE if not *************************************************************************/ -BOOL signalUserStartingTreatment( void ) +BOOL signalUserInitiateTreatment( void ) { BOOL result = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; if ( ( MODE_STAN == getCurrentOperationMode() ) && ( STANDBY_WAIT_FOR_TREATMENT_STATE == currentStandbyState ) ) { - treatStartReqReceived = TRUE; - result = TRUE; + if ( TRUE == isDGCommunicating() ) + { + treatStartReqReceived = TRUE; + result = TRUE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + else + { + rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + } } - sendTreatmentStartResponseMsg( result, 0 ); // TODO - provide reason code if rejected + sendInitiateTreatmentResponseMsg( result, rejReason ); + return result; }