Go Down

Topic: Variabili, "stampate" alternativamente (Read 779 times) previous topic - next topic

anerDev

May 04, 2013, 08:30 pm Last Edit: May 05, 2013, 04:21 pm by anerDev Reason: 1
Ciao a tutti !

Una cosa molto strana, ho delle variabili che vengono stampate sulla seriale alternativamente, cioè un ciclo ci sono il successivo non ci sono e ricomincia !
Nel mio caso sono le variabili delle coordinate geografiche, usando il Sim908 con l'opportuna libreria (http://code.google.com/p/gsm-shield-arduino/)

Nella libreria ci sono degli sketch di esempio e caricando quello relativo al GPS le coordinate vengono stampate correttamente ad ogni inizio ciclo. Mentre nel mio no !

All'inizio pensavo che era un problema di tempo, ovvero che ogni ciclo doveva iniziare dopo 5 secondi, per esempio.
EÈ da escludere, funziona anche senza mettere un delay.

Ecco cosa vedo nella seriale, con il mio sketch:
(quelle in verde sono le variabili lat lon e alt)

Quote
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
CHECK
DHT22: OK
DS18B20: OK
Allarme: OK
Led Status: OK
SD: OK
MPL115A2: OK
GSM/GPS: OK
   Segnale GPS: OK   ||||||||||||||||||||||||||||||      3D FIXED
3807.960240;1443.546704;43.949493;19.56;92.20;101.66;SD: OK;
;;;19.62;92.90;101.66;SD: OK;
3807.960240;1443.546704;43.949493;19.69;93.10;101.59;SD: OK;
;;;19.69;93.00;101.66;SD: OK;
3807.960240;1443.546704;43.949493;19.69;92.90;101.53;SD: OK;
;;;19.75;92.80;101.66;SD: OK;
3807.960240;1443.546704;43.949493;19.81;92.70;101.53;SD: OK;
;;;19.87;92.60;101.66;SD: OK;
3807.960240;1443.546704;43.949493;19.81;92.60;101.78;SD: OK;



Mentre questo è ciò che vedo con lo sketch della libreria (senza delay), che funziona perfettamente:
Quote
GSMGSM Shield testing.

status=READY
status=GPSREADY
3D FIXED
1443.549878
3807.964340
57.857780

20130504182803.998
0.000000
1443.549878
3807.964340
57.857780

20130504182805.000
0.000000
1443.549878
3807.964340
57.857780

20130504182806.000
0.000000


In allegato trovare il mio sketch e quello della libreria.

Cosa può essere ?

grazie


leo72

Non ho studiato lo sketch, vedo che stampi tante cose in base a dei test con degli if. Prova facendo un pò di debug mettendo il print dei valori usati in quei test per verificare che effettivamente i dati siano quelli che ti aspetti e che si aspetta il codice.

anerDev

Si esatto. Però gli if sono nel setup e funzionano tutti.
Il problema è nel loop, ovvero le variabili lat lon alt un ciclo vengono stampate il ciclo dopo no e vice versa.

:/

leo72

Non è che invece vengono stampate vuote perché non contengono dati?

anerDev

Sicuramente è così. Ma perché vengono stampati alternativamente ?
Se uso lo sketch di esempio i dati li ho sempre e comunque, a prescindere dal tempo di richiesta !

Invece con il mio sketch no ! È come se non vengono memorizzati, no che non ci sono.

leo72

Mi pare di capire che tu prima scriva i dati su un file e successivamente lo riapri per leggerlo. Mi viene da pensare che nel momento in cui vai a riaprire il file i dati siano stati scritti solo sul buffer, cioè non sono ancora fisicamente presenti sulla scheda.

Prova mettendo un SD.flush() subito dopo la scrittura dei dati: questo comando dice alla libreria di svuotare il buffer e di scrivere materialmente i dati sul file.

anerDev

no no, i dati vengono prima prelevati, poi spediti sulla seriale, poi spediti via radio, con un modulo rtty (costruendo la "variabile" rtty) e poi salvate sulla sd !
Quindi la sd è l'ultima cosa che viene "toccata".

Sono in un vicolo cieco !


PaoloP

Andrea lo sai che è inutile fare gli UP qui.  :smiley-roll-blue:
Se qualcuno conoscesse la soluzione o avesse avuto anche solo qualche idea di come risolvere il tuo problema, secondo me, ti avrebbero già risposto.
Se non ti rispondono e perché, come me, anche gli altri non hanno la minima idea del problema e delle relative soluzioni. Quindi si torna alla prima riga.  :smiley-sweat:

anerDev

Potrebbe anche essere che qualcuno che sa come risolvere non vada oltre la seconda pagina !
E potrei perdere occasione !  :smiley-mr-green:

:~

leo72

anerDev, se avessi avuto il tuo hardware avrei provato a replicare il problema. Non avendolo... vo per ipotesi. Le ho finite  ;)

anerDev

Grazie lo stesso leo72 !

Comunque sono convinto che è un problema di software ! 100%
Cioè è come se le 3 variabili fossero nulle perchè magari finisce la memoria o non so :/

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy