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