WORD GSM_ActivateGprs(void)
WORD GSM_ActivateGprs(void) { static BYTE GprsActivateFlag = 0; if(ModemGsm.Signal.Control.RcvMessage){ if(GSM_CompareMessage(GSMResponse[mrOK])){ //prikaz bol uspesne vykonany switch(Gsm.ActualCommand){ case mcQIACT: Gsm.ActualCommand = 0; GprsActivateFlag = 0; ModemGsm.Signal.Control.CommandOK = TRUE; Gsm.State = NONE; ModemGsm.Semaphore.Control.GprsAttach = TRUE; ModemGsm.Signal.Control.RcvMessage = FALSE; // ModemGsm.Semaphore.Control.GprsRegister = FALSE; return 0; } } else if(GSM_CompareMessage(GSMResponse[mrERROR])){ //prikaz bol uspesne vykonany switch(Gsm.ActualCommand){ case mcQIACT: Gsm.ActualCommand = 0; ModemGsm.Signal.Control.CommandOK = TRUE; Gsm.State = NONE; GprsActivateFlag++; if(GprsActivateFlag == 3){ ModemGsm.Signal.Control.Process = FALSE; GprsActivateFlag = 0; ModemGsm.Signal.Control.RcvMessage = FALSE; return 2; } else Gsm.State = GPRS_ACTIVATE; ModemGsm.Signal.Control.RcvMessage = FALSE; break; } } } switch(Gsm.State){ case GPRS_ACTIVATE: Gsm.State = NONE; strcpy((char*)Gsm.CommandData, GSMCommand[mcQIACT]); Gsm.ActualCommand = mcQIACT; ModemGsm.Signal.Control.SendCommand = TRUE; break; } return 1; }