gestire rubrica modulo telit

May 23, 2007 8 Replies

Salve!



Vorrei gestire la rubrica sim usata in un modulo GM862 PCS della Telit, non so come gestire la ricerca nominativi, vorrei che ad ogni chiamata ricevuta se il numero e' memorizzato nella sim dovrei segnalarlo, ovviamente dovrei farlo con un microcontrollore, vorrei sapere che comando inviare al modulo per ricevere in tempi ragionevoli una risposta per sapere se il numero e' presente oppure no in rubrica.


Ciao Enzo, se non ricordo male, quando il numero è in rubrica, il +CLIP risponde mettendo tra "virgolette" il nome corrispondente, altrimenti quel campo è vuoto. Ma è solo un ricordo, se vuoi verifico... Ciao Sandro

"Enzo" ha scritto nel messaggio news:4654a283$0$21203$ snipped-for-privacy@news.tiscali.it...

non

ricevuta

"Sandro" ha scritto nel messaggio news:TFg5i.17852$ snipped-for-privacy@twister1.libero.it...

Se puoi verificare te ne sarei grato

"Sandro" ha scritto

Esatto. Verifica che il telefono implementi correttamente quanto previsto dallo standard. La segnalazione +CLIP va abilitata dando il comando AT+CLIP=1, di default è disabilitata.

+CLIP: ,[,, ,] for an incoming call, after each RING or +CRING indication

Esempio

RING Note: incoming call

+CLIP: "0146290800",129,,1,"FRED" Note: incoming call with number and name presentation

"Marco" ha scritto

quel

è

Aggiungo, nel caso ti interessasse, che esistono comandi AT per operare sulla rubrica della SIM (lettura, ricerca, cancellazione, aggiunta, ...).

"Marco" ha scritto nel messaggio news:AYj5i.18089$ snipped-for-privacy@twister1.libero.it...

interessante, comunque dopo le tue ultime notizie avevo fatto delle prove con hyperterminal avendo esattamente i risultati che hai elencato cioe' se chiamo un numero che ho nella rubrica sim avro': +CLIP: "+39065542xxx",145,"",128,"CASAENZO",0 se invece chi chiama non e' in rubrica si ha :+CLIP: "+39065542xxx",145,"",128,"",0 ora la grande sfida sta nel far capire al mio fidato microcontrollore Pic la differenza, e per la verita' non so proprio come incominciare

"Enzo" ha scritto

sta

Per prima cosa devi riconoscere tutte le risposte/segnalazioni che arrivano dal telefono. Iniziano e terminano con (Carriage Return = 0x0D, Line Feed = 0x0A). Una volta riconosciuta una risposta/segnalazione, passi ad analizzarla (è una normale stringa di caratteri ASCII). Come prima cosa devi riconoscere l'header in modo da capire di che tipo di risposta/segnalazione si tratta (in questo caso l'header è "+CLIP: ", altri casi ad esempio sono "OK", "ERROR", +CRING: ", ...), è solo un confronto di stringhe. Riconosciuto l'header passi alla parte successiva che è variabile (può anche essere assente). In genere la parte variabiale è formata da una serie di parametri/valori separati dal carattere virgola (nel +CLIP infatti è così). Quindi isoli i vari parametri grazie alla virgole e ne verifichi il formato e il valore. Se un parametro è assente ci sono 2 virgole consecutive, hai una stringa di lunghezza zero. Nel tuo caso quindi il quinto parametro può essere una stringa vuota o una stringa generica (il nominativo in rubrica) con lunghezza massima dipendente dalla SIM utilizzata.

Grazie per la collaborazione, premetto che sto cercando di farlo con il PICBasic Pro della Melabs che nessuno su questo newsgroup digerisce, in realta' anche io sto capendo che il C e' tutta altra cosa, ovviamente in positivo, comunque tornando alla questione di partenza pensavo di usare il coamndo Hserin cercando di sfruttare che il dato che mi interessa analizzare e' preceduto da 128, quindi dovrei verificare se posso impostare un controllo tipo: HSERIN 5000,EXITCHIAMATA,[WAIT ("128, ",34),TMP1,TMP2,TMP3] che grosso modo dovrebbe dire aspetta 5 secondi e metti nelle variabili tmp1 tmp2 tmp3 quello ceh leggi dopo 128, altrimenti salta alla routine exitchiamata.

Tu cosa ne pensi di questa mia idea?

"Enzo" ha scritto

analizzare

modo

Non conosco PICBasic Pro e il comando HSERIN. Non ho capito bene come funziona. Non so se può essere un problema, però considera che l'indicazione RING (e quindi l'indicazione CLIP) viene inviata circa ogni 4 secondi (verifica questo tempo nel telefono che usi) fino a che il telefono continua a squillare.

In ogni caso non è una soluzione "robusta", addirittura neanche controlli che effettivamente si tratti di un'indicazione +CLIP. Inoltre se cambi tipo di telefono può non funzionarti più in quanto alcuni parametri contenuti nella stringa possono essere non presenti.

Verifica anche che indicazione +CLIP ti arriva quando il numero del chiamante è nascosto. Il tuo firwmare deve gestire correttamente anche questa situazione.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required