WORD GSM_SmsConfigure(void)

WORD GSM_SmsConfigure(void)
{
 WORD i;

 if(ModemGsm.Signal.Control.RcvMessage){   if(GSM_CompareMessage(GSMResponse[mrOK])){ //prikaz bol uspesne vykonany    switch(Gsm.ActualCommand){     case mcCSMP:
     ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SET_EVENT_SMS;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCMGF:      ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SET_MEMORY;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCNMI:      ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SMS_ASCII_MODE;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCPMS:      ModemGsm.Signal.Control.CommandOK = TRUE;      if(!OsSocket.status.semaphore.begin){       Gsm.State = NONE;       ModemGsm.Signal.Control.RcvMessage = FALSE;       return 0;      }      else Gsm.State = DELETE_ALL_MESSAGE;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCMGDa:      ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = NONE;      OsSocket.status.semaphore.begin = FALSE;      for(i=0; i<MAX_RECEIVE_SMS; i++) Sms.NumRcvSms[i] = 0;      ModemGsm.Signal.Control.RcvMessage = FALSE;      return 0;    }   }   else if(GSM_CompareMessage(GSMResponse[mrERROR])){ //chyba    switch(Gsm.ActualCommand){     case mcCMGDa:      ModemGsm.Signal.Control.CommandOK = TRUE;      for(i=0; i<MAX_RECEIVE_SMS; i++) Sms.NumRcvSms[i] = 0;      Gsm.State = NONE;      ModemGsm.Signal.Control.RcvMessage = FALSE;      return 0;     case mcCPMS:      ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SET_MEMORY;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCSMP:
     ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SET_EVENT_SMS;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCNMI:      ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SMS_ASCII_MODE;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;     case mcCMGF:      ModemGsm.Signal.Control.CommandOK = TRUE;      Gsm.State = SET_MEMORY;      ModemGsm.Signal.Control.RcvMessage = FALSE;      break;    }   }  }  switch(Gsm.State){ // osetrovanie stavov   case SET_SMS:
   strcpy((char*)Gsm.CommandData, GSMCommand[mcCSMP]);    Gsm.ActualCommand = mcCSMP;    ModemGsm.Signal.Control.SendCommand = TRUE;    Gsm.State = NONE;    break;   case SET_EVENT_SMS:    strcpy((char*)Gsm.CommandData, GSMCommand[mcCNMI]);    Gsm.ActualCommand = mcCNMI;    ModemGsm.Signal.Control.SendCommand = TRUE;    Gsm.State = NONE;    break;   case SMS_ASCII_MODE:    strcpy((char*)Gsm.CommandData, GSMCommand[mcCMGF]);    Gsm.ActualCommand = mcCMGF;    ModemGsm.Signal.Control.SendCommand = TRUE;    Gsm.State = NONE;    break;   case SET_MEMORY:    strcpy((char*)Gsm.CommandData, GSMCommand[mcCPMS]);    Gsm.ActualCommand = mcCPMS;    ModemGsm.Signal.Control.SendCommand = TRUE;    Gsm.State = NONE;    break;   case DELETE_ALL_MESSAGE:    strcpy((char*)Gsm.CommandData, GSMCommand[mcCMGDa]);    Gsm.ActualCommand = mcCMGDa;    ModemGsm.Signal.Control.SendCommand = TRUE;    Gsm.State = NONE;    break;  }  return 1; }