Qualità segnale con Shield SIM900

Salve a tutti, spero di non fare una domanda troppo stupida, ma sto cercando un po ovunque e ormai da diverse ore sul web senza però riuscire a trovare risposta.

Premesso che sono alle prime armi con arduino, alle primissime con lo shield e sto rispolverando dopo qualche anno il linguaggio C, la mia domanda è questa:

Dopo aver tentato in vano di utilizzare la funzione getSignalStrength(), dato che non trovo soluzione al problema con la GSMScanner che non vuole saperne di compilare, ho tentato l'utilizzo diretto del comando AT+CSQ con questo semplice codice

gsm.SimpleWriteln("AT+CSQ");
delay(1000);
gsm.WhileSimpleRead();

Funziona e stampa, ma il problema però è che sto tentando di realizzare un combinatore e abbinarlo ad un lcd 1602 e quindi avrei bisogno di quel valore che mi viene stampato direttamente su seriale (cosa che alla fine mi è superflua) e rielaborarlo per poi tramutarlo in qualcosa da visualizzare sull'LCD. Dovrei quindi salvarlo in una string o meglio ancora in un int. Il problema è che malgrado le tante prove la mia grande ignoranza non mi sta aiutando... qualcuno sa darmi una mano?

Grazie in anticipo e scusate se magari vi sto facendo perdere tempo con cose abbastanza banali.

RDWare

Mi meraviglio che quel codice ti funzioni.

Per richiedere il Signal Quality Report devi inviare la stringa “AT+CSQ=?” + +

Riceverai la stringa + + “AT+CSQ:x,y” + + ove x ed y sono due numeri da 0 a 99 che indicano la forza del segnale (signal strength) e la percentuale di errore (channel bit error rate).

Ma il problema è... come posso fare per salvare quella stringa che mi viene restituita in una variabile e quindi lavorarci? Le funzioni in questione sono tutte VOID, ho provato a mettere una variabile come parametro nel simplewriteln ma (almeno con la sintassi che mi stai dicendo che è sbagliata) non ricevo nulla in output...

Anziché usare la gsm.WhileSimpleRead(); che [u]legge[/u] il buffer della seriale e lo [u]stampa[/u] sul serial monitor, prova ad usare la generica lettura da seriale char c = mySerial.read(); componendo la stringa di risposta. Il problema è quello di trovare il nome assegnato alla classe SoftwareSerial dalla libreria (mySerial dell'esempio).

Grazie mille... ora funziona! :D

Scusa il ritardo ma ero convinto di averti scritto!

REGOLAMENTO, punto 16.9NON si riaprono thread più vecchi di 9/12 mesi!.

Chi ha qualche cosa da dire, apre un nuovo thread ed, eventualmente, come riferimento, mette un link al vecchio thread.

Come da regolamento … post accodati a vecchi thread verrano cancellati senza alcun preavviso e, con l’occasione, il vecchio thread verrà bloccato.

Guglielmo