BOOL GSM_Init(void)

BOOL	GSM_Init(void)
{
 ModemGsm.Semaphore.Control.Connect = FALSE;
 if(!ModemGsm.Semaphore.Control.Enable) return TRUE;
 ModemGsm.Signal.Control.ModemReady = FALSE;
 ModemGsm.Semaphore.Control.Connect = TRUE;
 MODEM_Init();
 Gsm.State = DISCONNECT;
#if defined(GSM_SMS)
 Sms.State = NONE;
#endif
 ModemGsm.Signal.Control.Results = FALSE;				// oddeluje odpovede od potvrdeni prikazov, ktore prichadzaju z modemu
 ModemGsm.Signal.Control.CommandOK = TRUE;			// je pripraceny na spracovanie dalsieho prikazu SMS
 ModemGsm.Signal.Control.RcvMessage = FALSE;			// prisla korektna odpoved, alebo udalost z modemu
 ModemGsm.Signal.Control.RegOk = FALSE;				// modem je zaregistrovany v sieti a uspesne prislo aj potvrdenie
 ModemGsm.Signal.Control.SendCommand = FALSE;				// nastavi povolenie posielat prikazy SMS 
 ModemGsm.Signal.Control.PinSet = FALSE;				// PIN bol uspesne zadany
 ModemGsm.Signal.Control.Process = TRUE;			// blokuje spracovanie SMS, nezacne sa pocas spracovavania posielania SMS posielat ina
 ModemGsm.Signal.Control.RcvDelivery = FALSE;			// prisla dorucenka
 ModemGsm.Signal.Control.TimeSynchro = FALSE;
 ModemGsm.Semaphore.Control.watchdog = TRUE;
 ModemGsm.Semaphore.Control.PrepareOn = FALSE;
 ModemGsm.Semaphore.Control.CpinError = FALSE;
#if defined(GPRS_HTTP) && defined(GSM_GPRS)
    ModemGsm.Semaphore.Control.SendHttp = FALSE;
 ModemGsm.Semaphore.Control.GprsAttach = FALSE;
 ModemGsm.Semaphore.Control.GprsRegister = FALSE;
 Gprs.IndexReadTx = 0;
 Gprs.IndexWriteTx = 0;
#endif
#if defined(GPRS_SMTP) && defined(GSM_GPRS)
 ModemGsm.Semaphore.Control.GprsSmtpConfigure = FALSE;
 ModemGsm.Semaphore.Control.SendSmtp = FALSE;
#endif
#if defined(GSM_SMS)
    Sms.IndexReadRx = 0;
 Sms.IndexReadTx = 0;
 Sms.IndexWriteRx = 0;
 Sms.IndexWriteTx = 0;
 ModemGsm.Signal.Control.SmsProcess = FALSE;			// povoli spracovanie prijatej SMS pre jadro
 ModemGsm.Signal.Control.RcvSms = FALSE;					// nastaveny ked prislo potvrdenie na predchadzajucu SMS a uz sa ma potvrdit sucasna SMS
 ModemGsm.Signal.Control.InsertSms = FALSE;
 ModemGsm.Signal.Control.RcvAnswerSms = FALSE;
 ModemGsm.Signal.Control.SendSms = FALSE;				// nastavi povolenie posielat prikazy SMS 
#endif
#if defined(GSM_CALL)
 ModemGsm.Semaphore.Control.alarm_call = FALSE;
 Call.IndexWrite = 0;
 Call.IndexRead  = 0;
 Call.Flag = 0;
#endif
 return TRUE;
}