Leggere SMS

domenica 21 febbraio 2010 - 20.38

antonionni1 Profilo | Newbie

Ciao a tutti

Per un esame all'università, devo scrivere un semplice applicativo che legge sms da un modem seriale e li scrive su un file testo.

Ho visto che si usano degli sms gateway, ma per l'uso che devo fare io penso di non avere nemmeno bisogno di un programma multithread, tanto se arrivano molti sms ed il mio programmino "non gli stà dietro", gli sms stanno in coda nella rete gsm; dovrebbe essere così, o mi sfugge qualcosa?? Non vorrei che mi si impallasse qualcosa durante l'esame ...

Qualcuno conosce un sito dove c'è un programma di esempio che ci dò un occhio? Ho cercato in Rete, ma non ho trovato molto.

Grazie per l'aiuto ..

freeteo Profilo | Guru

Ciao,
io ho realizzato qualcosa di questo tipo, ma mi sono limitato ad interrogare il dispositivo tramite COM (seriale od usb) e tramite comandi AT andare a chiedere cos'ha ricevuto ed anche inviare sms.

Per leggere gli sms, usavo un codice di questo tipo:
... string VIRG = "\x22"; //carattere ascii 22 (il \x indica carattere ascii) //--- apro PhoneManager.Apri(); //--- Impostazione modalità lettura SMS in formato testuale PhoneManager.InviaComando("AT+CMGF=1"); //--- Preferred Message Storage (ME = Memoria interna, SM = SIM, MT = Ogni storage) lettura = PhoneManager.InviaComando("AT+CPMS=SM"); //--- leggo i messaggoi dal telefonino e li appoggio su una stringa string risposta = PhoneManager.InviaComando("AT+CMGL=" + VIRG + "ALL" + VIRG); ....
dove PhoneManager.InviaComando è un metodo che usa la classe "SerialPort" del Framework e semplicemente apre la porta COM ed infine fa il Write del testo facendolo terminare con "\r\n" (acapo) poi rilegge cosa gli torna il comando facendo "ReadExisting".


I comandi AT per il telefonino sono abbastanza classici, chiaramente devi capire se al tuo vanno bene, intanto ti lascio un link:
http://doc.trolltech.com/qtopia4.1/atcommands.html

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

antonionni1 Profilo | Newbie

Anche io utilizzo quella "filosofia", solo che non sò cosa succede se arrivano contemporaneamente per esempio 30 sms ... comunque lo scoprirò a breve e poi ve lo saprò dire (anche se mi sà che oltre a dipendere dal modem, il tutto dovrebbe comunque rimanere in coda alla rete gsm se il modem è pieno di messaggi ...)

Senti una cosa, vedo che tu il "\r\n" lo fai con il carattere ascii 0x22; sarebbe lo stesso metterci in coda il "\r\n" oppure avevi dedotto che si doveva fare con quel codice ascii??

Grazie ...

freeteo Profilo | Guru

>sà che oltre a dipendere dal modem, il tutto dovrebbe comunque
>rimanere in coda alla rete gsm se il modem è pieno di messaggi
secondo me non ti devi preoccupare di questo, gli sms resteranno nel dispositivo, chiaramente dipende dalla capienza della SIM ma eventualmente puoi pensare a gestire questo stato cancellandoli dopo averli letti



>Senti una cosa, vedo che tu il "\r\n" lo fai con il carattere
>ascii 0x22; sarebbe lo stesso metterci in coda il "\r\n" oppure
>avevi dedotto che si doveva fare con quel codice ascii??
quello è per le "virgolette" da usare nel comando per leggere (dove gli metto "ALL" per dire leggi tutti quelli che hai), il "\r\n" è l'acapo da inviare ad ogni comando che mando al dispositivo


>Grazie
figurati, siamo qui per questo. fammi sapere come procede.
Grazie.

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

antonionni1 Profilo | Newbie

Allora, il tutto funziona a metà.

Ho letto fra i tanti anche questo articolo: http://csharp.simpleserial.com/ , ma non ricevo nulla, riesco a spedire stringhe ma non "scatta" l'evento in ricezione.

Io ho un form principale dal quale a mezzo di un bottore richiamo un altro form, in questo altro form imposto la seriale ed altri parametri.
Come detto, riesco a spedire ma non ricevo nulla (ovviamente il cavo è ok perchè con due hyperterminal funziona).

Che sia un problema di quel thread separato in cui gira la serial port e che fà confusione con il fatto che io richiamo il tutto dal form che non è il principale??

LAST MINUTE: dopo ore ho scoperto che bisognava abilitare l'RTS!

tomastamm Profilo | Newbie

Devi controllare http://www.2-waysms.com , api
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5