IToolS AT commands server
Transcript
IToolS AT commands server
IToolS AT commands server Version 3.3 Iprel Progetti s.r.l. 12/11/2012 IToolS AT commands server 1 IToolS AT commands server Version 3.3 Iprel Progetti s.r.l. 12/11/2012 Sommario Descrizione .................................................................................................................................................... 3 Funzionamento .............................................................................................................................................. 3 Esempio ......................................................................................................................................................... 6 2 IToolS AT commands server Version 3.3 Iprel Progetti s.r.l. 12/11/2012 Descrizione Il componente IToolS “AtServer” presente nel namespace “IToolS.Components.Network.Modem” consente di inviare SMS ed email attraverso comandi AT inoltrati ad un modem GPRS. AtServer dispone di un insieme di metodi in grado di facilitare le procedure di configurazione ad invio al programmatore, in modo da nascondere la reale implementazione delle procedure mediante i comandi AT. I metodi si suddividono in: • • • Metodi di inizializzazione modem; Metodi di configurazione ed invio SMS; Metodi di configurazione ed invio email; Nella restante parte di questo documento verranno elencati i metodi disponibili nel componente in questione descrivendo per ciascuno di essi il servizio offerto e la modalità di funzionamento. Funzionamento Il componente AtServer prevede che l’interfaccia di comunicazione con il modem sia di tipo seriale, prima di invocare qualsiasi metodo disponibile nel componente è necessario configurare i parametri di comunicazione da utilizzare nella porta seriale. AtServer dispone di una proprietà “SerialConfig” che consente di selezionare i parametri di comunicazione adeguati alle caratteristiche del modem con cui si vuole interagire mediante comandi AT, i parametri presenti in questa proprietà sono gli stessi utilizzati per la configurazione del canale seriale utilizzata dai driver IToolS (vedi documento IToolS basics): 1. 2. 3. 4. 5. BaudRate: imposta la velocità di comunicazione. DataBits: imposta il numero dei bit dati da utilizzare nella comunicazione seriale. Parity: imposta il bit di parità per il controllo errori di comunicazione. PortName: Imposta il nome della porta seriale da utilizzare. StopBits: imposta il numero di bit di stop per il byte. Una volta configurato il canale di comunicazione seriale è necessario invocare il metodo “InitializePort()”, attraverso questo metodo la porta seriale viene inizializzata con i parametri specificati ed è quindi possibile inviare comandi al modem: //creazione del componente AtServer private IToolS.Components.Network.Modem.AtServer atServer = new IToolS.Components.Network.Modem.AtServer(); //impostazione dei parametri del canale seriale mediante this.atServer.SerialConfig.DataBits = 8; this.atServer.SerialConfig.Parity = IToolS.Data.Serial.Parity.None; this.atServer.SerialConfig.PortName = "COM19"; this.atServer.SerialConfig.StopBits = IToolS.Data.Serial.StopBits.One; //inizializzazione della porta seriale attraverso i paramtri specificati nella proprietà SerialConfig atServer.InitializePort(); Riepilogando, prima di iniziare le procedure di configurazione del modem è necessario impostare I parametri di configurazione del canale seriale e quindi invocare in metodo “InitializePort()”. 3 IToolS AT commands server Version 3.3 Iprel Progetti s.r.l. 12/11/2012 Configurazione del modem Una volta stabiliti i parametri di comunicazione è necessario configurare il modem, questa operazione deve essere eseguita una sola volta in fase di inizializzazione e deve essere ripetuta solo se nel modem viene a mancare l’alimentazione oppure vengono reimpostati i parametri di fabbrica. I metodi sono riportati di seguito nell’ordine con cui dovrebbero essere invocati per ottenere un corretto funzionamento del componente. • public void InitializeModem(): Inizializza il modem impostando la verbosità dei messaggi di errore in forma di stringhe (per aumentare la comprensione degli errori ritornati dal modem a seguito dei comadi eseguiti), quindi imposta il modem per utilizzare il formato esteso di indicazione chiamata in entrata. • public AtResult RestoreFactorySettings(): Attraverso l’invocazione di questo metodo è possibile reimpostare i parametri di fabbrica del modem. La classe AtResult contiene due proprietà le quali contengono informazioni circa il comando inviato e la risposta ricevuta. • public string NeedPin(): Attraverso questo metodo è possibile interrogare il modem per sapere se è necessario inserire il pin di accesso. Il valore di ritorno è una stringa una quanto la risposta del modem può contenere informazioni differenti. • public AtResult InsertPin(string pin): Consente di inserire il pin di accesso (quando richiesto) alla scheda SIM. • public IOMode SelectedIOMode(): Ottiene il formato del messaggio SMS, in particolare le due modalità disponibili sono: o o • TEXT: Modalità testuale; PDU: Modalità codificata; public void SelectIOMode(IOMode iomode): Imposta il formato del messaggio SMS, le modalità disponibili sono quelle elencate nel metodo precedente. • public void SelectCharset(CharSet charset): Consente di selezionare il set dei caratteri da utilizzare durante l’invio delle email. I set dei caratteri ammissibili sono: • o UCS2: il carattere è composto da 16 bit ad ottetti multipli codificati mediante la specifica o ISO/IEC10646 [32]. GSM: viene utilizzato il set di caratteri GSM predefinito. public void DeleteSavedSMS(): Elimina tutti i messaggi presenti nella scheda SIM. I metodi disponibili per la fase di configurazione così come quelli per l’invio di SMS ed email generano un’eccezione se l’operazione non è stata eseguita con successo, i dettagli del fallimento del comando AT sono inseriti come corpo del messaggio dell’eccezione generata. Se il metodo prevede la restituzione di 4 IToolS AT commands server Version 3.3 Iprel Progetti s.r.l. 12/11/2012 informazioni essere sono ritornate sotto forma di stringa, questo perché in generale i comandi AT non prevedono un meccanismo di controllo di esecuzione comune a tutti i comandi, quindi il valore o i valori di ritorno sono strettamente legati al comando eseguito. Invio SMS • public void SetSMSServiceCenterAddress(string address): Permette di impostare il numero del centro mssaggi per l’operatore desiderato attraverso il paramtro “address”. • public void SendSMS(string number, string message): Invia il messaggio specificato nel parametro “message” al numero specificato nel parametro “number”. Invio email • public void InitializeGprs(string apn): Inizializza la connessione GPRS impostando l’APN da utilizzare. • public void InitializeInternetService(string apn, string dns): Inizializza la connessione internet specificando l’APN e il DNS da utilizzare. • public void InitializeSMTP(string address, int port, string name, string password): Imposta I parametri di indirizzamento e autenticazione del server SMTP dove: o o o o • address: è l’indirizzo ip del server SMTP; port: è la porta socket da utilizzare; name: è il nome utente da utilizzare nel caso sia richiesta l’autenticazione; password: è la password da utilizzare per eseguire l’autenticazione sul server SMTP. public void InitializeMail(string from, string to, string subject, params string[] cc): Inizializza I parametri principali necessari per corretto invio di un messaggio email: o o o o from: imposta l’indirizzo email del mittente del massaggio di posta; to: imposta l’indirizzo del destinatario del messaggio di posta; subject: imposta l’oggetto dell’email; cc: imposta uno, nessuno o molteplici indirizzi email da inserire in copia di conoscenza per l’ email da inviare. • public void SendEmail(string message): Invia il messaggi specificato nel parametro “message” agli indirizzi specificati attraverso il metodo precedente. 5 IToolS AT commands server Version 3.3 Iprel Progetti s.r.l. 12/11/2012 Esempio Inizializzazione private IToolS.Components.Network.Modem.AtServer atServer = new IToolS.Components.Network.Modem.AtServer(); atServer.InitializePort(); atServer.InitializeModem(); AtResult result = atServer.InsertPin("6850"); SMS atServer.SetSMSServiceCenterAddress("+393359609600"); atServer.SendSMS("+39366xxxxxx", "my first message"); email atServer.SelectCharset(CharSet.UCS2); atServer.InitializeGprs("wap.tim.it"); // APN VODAFONE:mobile.vodafone.it // APN TIM :wap.tim.it // DNS VODAFONE:194.185.97.134 // DNS TIM :213.230.155.94 atServer.InitializeInternetService("wap.tim.it", "213.230.155.94"); // SMTP VODAFONE:smtp.net.vodafone.it // SMTP TIM:mail.posta.tim.it // Port VODAFONE:25 // Port TIM:25 atServer.InitializeSMTP("mail.posta.tim.it", 25, null, null); //atServer.InitializeSMTP("smtp.net.vodafone.it", 25, null, null); atServer.InitializeMail("[email protected]", "[email protected]", "prova invio mail è à ò é ù secondo tentativo", "[email protected]", "[email protected]"); atServer.SendEmail("my first email message"); atServer.ClosePort(); 6