Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r16b79d9ec32acce57b5bb007fc19a5c891c7fff1 -rcf94c3059b220c787cc8eabc691940967c1537e1 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 16b79d9ec32acce57b5bb007fc19a5c891c7fff1) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision cf94c3059b220c787cc8eabc691940967c1537e1) @@ -237,29 +237,34 @@ BOOL signalUserInitiateTreatment( void ) { BOOL result = FALSE; - REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NONE; - if ( ( MODE_STAN == getCurrentOperationMode() ) && ( STANDBY_WAIT_FOR_TREATMENT_STATE == currentStandbyState ) ) + if ( TRUE != getAlarmNewTreatmentStatus() ) { - if ( TRUE == isDGCommunicating() ) - { - if ( ( DG_MODE_STAN == getDGOpMode() ) && ( DG_STANDBY_MODE_STATE_IDLE == getDGSubMode() ) ) - { - treatStartReqReceived = TRUE; - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; - } - else - { - rejReason = REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE; - } - } - else - { - rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; - } + rejReason = REQUEST_REJECT_REASON_NO_NEW_TREATMENT_ALARM_TRIGGERED; } + if ( ( MODE_STAN != getCurrentOperationMode() ) || ( STANDBY_WAIT_FOR_TREATMENT_STATE != currentStandbyState ) ) + { + rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + } + + if ( TRUE != isDGCommunicating() ) + { + rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + } + + if ( ( DG_MODE_STAN != getDGOpMode() ) || ( DG_STANDBY_MODE_STATE_IDLE != getDGSubMode() ) ) + { + rejReason = REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE; + } + + if ( REQUEST_REJECT_REASON_NONE == rejReason ) + { + result = TRUE; + treatStartReqReceived = TRUE; + } + sendInitiateTreatmentResponseMsg( result, rejReason ); return result;