WORD GSM_SmsSend(void)
{
if(ModemGsm.Signal.Control.RcvMessage){
if(GSM_CompareMessage(GSMResponse[mrOK])){
switch(Gsm.ActualCommand){
case mcCMGS:
Gsm.ActualCommand = 0;
ModemGsm.Signal.Control.CommandOK = TRUE;
if(ModemGsm.Signal.Control.SmsProcess) Sms.State = DELETE_MESSAGE;
else ModemGsm.Signal.Control.Process = FALSE;
ModemGsm.Signal.Control.RcvMessage = FALSE;
break;
}
}
else if(GSM_CompareMessage(GSMResponse[mrERROR])){ //chyba
switch(Gsm.ActualCommand){
case mcCMGS:
Gsm.ActualCommand = 0;
ModemGsm.Signal.Control.CommandOK = TRUE;
if(ModemGsm.Signal.Control.SmsProcess) Sms.State = DELETE_MESSAGE;
else ModemGsm.Signal.Control.Process = FALSE;
ModemGsm.Signal.Control.RcvMessage = FALSE;
break;
}
}
}
switch(Sms.State){
case SEND_SMS:
strcpy((char*)Gsm.CommandData, GSMCommand[mcCMGS]);
Gsm.ActualCommand = mcCMGS;
ModemGsm.Signal.Control.SendCommand = TRUE;
Sms.State = NONE;
break;
}
return 1;
}