Newsgroup: it.hobby.elettronica.digitale
Titolo: routine in c per modem

Ciao a tuti!
Lo so ragazzi forse sto correndo un po troppo con il C :-) voelvo sapere se 
mi date una mano vorrei dicriminare le telefonate che arrivano su un modulo 
gsm che mi da alla sua uscita (quindi stringhe in ingresso del PIC):
+CLIP: "",128,"",128,"",2 
//stringa quando si nasconde il numero
+CLIP: "
+3933812345678
",145,"",128,"",0                 //stringa quando non 
e' in rubrica
+CLIP: "
+3933812345678
",145,"",128,"Giacomo"      //stringa quando e' in 
rubrica
come potrei gestire il tutto con il pic? c'e' in rete qualche routine su cui 
lavorare? 

 ha scritto nel messaggio 
news:49bb86a2$0$696$5fc...@news.tiscali.it...

Non vedo quale sia il tuo problema.
Ti arrivano le stringhe e devi solo fare un parsing dei caratteri ricevuti.
Ovvero se i primi caratteri sono +CLIP: significa che stai ricevend una 
chiamata.
Quindi passi a verificare i caratteri successivi, se il primo di questi è " 
significa che non hai nessun numero, e così via... 

 " significa che non hai nessun numero, e cosě via...
Come sopra, sono cose che si acquisiscono con lo studio e con prove lui e' 
ancora alle variabili locali e globali 

 ancora alle variabili locali e globali
Tu invece sei alla progettazione di avionica militare. 

 " significa che non hai nessun numero, e cosě via...
immaginavo che si dovesse fare cosi' ma mi apsettavo una qualche forma di 
codice per inizaire a provare e capire, e' dura partendo da 
zero..................... 

 embedded
Tra l'altro, quando usavo il V-25, un controller NEC a 16 bit, usavo una
versione del Turbo C modificata da una software house che aveva acquistato
i sorgenti (o parte di essi) da Borland e che generava codice per il V25. 
Nessuno sa se un lavoro analogo era stato fatto anche per altri controller?

 tanto installare qualcosa di piu' datato come il TurboC
Ho installato DEV-C++ che credo sia analogo a quelli consigliati da te, 
comunque ero cosciente di corre un po troppo, sai in passato ho imparato 
molto leggendo i programmi altrui scomponendoli fino all' osso comprendendo 
come avvengono certe cose.
Ti ringrazio per le informazioni e per il consiglio 

 PIC):
Questa è una funzione in C però non so se funzioni su PIC, non esperienza in 
merito, conosco solo il C per PC :-P
// Questa libreria probabilmente non ti serve
#include <stdio.h>
// Le istruzioni printf servono per stampare sul monitor la stringa relativa 
al tipo di chiamata
// Quello che a te interessa è la condizione che viene controllata
void TipoChiamata (char* chiamata) {
     if (chiamata[8] == '\"') // Il nono carattere della stringa (quindi il 
suo indice è 8 poiché si parte da 0) è una virgoletta
        printf ("%s\n", "Numero sconosciuto");
     else
     if (chiamata[strlen(chiamata) - 1] == '0') // L'ultimo carattere è uno 
zero
        printf ("%s\n", "Chiamante non in rubrica");
     else
     if (chiamata[strlen(chiamata) - 1] == '\"') // L'ultimo carattere è una 
virgoletta
        printf ("%s\n", "Chiamante presente nella rubrica");
};
// Anche questo non credo ti servirà nella tua versione per PIC, o comunque 
immagino si debba adattare.
int main() {
    TipoChiamata("+CLIP: \"\",128,\"\",128,\"\",2");
    TipoChiamata("+CLIP: \"
+3933812345678
\",145,\"\",128,\"\",0");
    TipoChiamata("+CLIP: \"
+3933812345678
\",145,\"\",128,\"Giacomo\"");
}
Saluti 

F. Bertolazzi ha scritto:

per quel che ricordo , il V25 e' una versione "microcontroller" dell' 
8086/8088, e dovrebbe essere codice-compatibile, quello che cambia e' la 
presenza al suo interno di un po' di periferiche ( col l' 80188 per 
intenderci )
per cui il lavoro fatto all'epoca probabilmente si e' limitato alla 
messa a punto di una libreria C compatibile con l'hardware ( tra l'altro 
borland ha in passato fornito i sorgenti della sua libreria standard c/c++ )
non penso che abbiano modificato i sorgenti del compilatore stesso.
lo stesso compilatore borland prevedeva la possibilita' ( teorica ) di 
sviluppare codice per piattaforme non standard ( a patto di scriversi 
almeno il codice di startup di cui i sorgenti erano SEMPRE presenti )
su questa linea c'erano anche altri compilatori come il watcom che 
supportava lo sviluppo per 8086 "embedded" ed il microC di Dunfield, 
quest'ultimo aveva il generatore di codice per una mezza dozzina di CPU 
  ( z80 8051 8088 ... CFLEA ) ma compila una versione limitata del 
linguaggio C

 non penso che abbiano modificato i sorgenti del compilatore stesso.
Ormai sono passati quasi 20 anni, ma mi pare proprio sostenessero ciò,
anche se solo per supportare, ad esempio, le istruzioni di RETRBI, ovvero
di ritorno da un interrupt con register bank switching, oppure PREPARE e
DISPOSE, che facevano cose strane con gli "stack frame".
 
Grazie per le informazioni "nuove" ed il ripasso di quelle che non
ricordavo. :-)