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