Go Down

Topic: [Risolto] Problema parsing con aJson.h (Read 562 times) previous topic - next topic

zio90

Jul 02, 2013, 05:49 pm Last Edit: Jul 04, 2013, 09:49 am by zio90 Reason: 1
Ciao ragazzi, sto implementando una comunicazione tra il mio Arduino(Uno) ed il computer, utilizzando il protocollo Json..
Nello sketch di arduino, ho importato la libreria aJson.h che ho scaricato da github, per il parsing delle stringhe che ricevo dal pc..
Ma quando devo creare l'oggetto Json mi da questo errore:

Error: expected primary-expression before '.' token
nella parte in rosso...


Questo è lo sketch di arduino:
______________________________________________________________


Code: [Select]
#include <aJSON.h>
#include <SPI.h>
#include <String.h>

void setup()

{
 Serial.begin(9600);
}

void loop()
{
   String json_string;

if (leggi( json_string)>0 )

     {
   [color=red]  aJsonObject* jsonObject;
     jsonObject = aJsonClass.parse(json_string);[/color]
          }
}

int leggi(String s){

 /* funzione che legge la stringa da seriale */

}


cosa significa?

nid69ita

A questa pagina leggo sempre aJson.parse()  e non  aJsonClass.parse()
https://github.com/interactive-matter/aJson
my name is IGOR, not AIGOR

zio90

#2
Jul 03, 2013, 04:14 pm Last Edit: Jul 03, 2013, 08:47 pm by leo72 Reason: 1
Si, hai ragione, ho messo aJsonClass perchè se lascio quella ''originale'' mi da questo errore:

Code: [Select]
Error:
sketch_ricezioneStringa.ino: In function 'void loop()':
sketch_ricezioneStringa:25: error: no matching function for call to 'aJsonClass::parse(String&)'
/home/marco/Scaricati/arduino-1.0.5/libraries/aJson/aJSON.h:178: note: candidates are: aJsonObject* aJsonClass::parse(aJsonStream*)
/home/marco/Scaricati/arduino-1.0.5/libraries/aJson/aJSON.h:179: note:                 aJsonObject* aJsonClass::parse(aJsonStream*, char**)
/home/marco/Scaricati/arduino-1.0.5/libraries/aJson/aJSON.h:180: note:                 aJsonObject* aJsonClass::parse(char*)


edit by mod: per favore includere i messaggi del terminale usando gli appositi tag code

nid69ita

Lui ti dice che il parse() come comando c'e' ma che non accetta come parametro un oggetto String
Devi per forza spostare i dati (caratteri) dalla String a una stringa ovvero a un vettore di caratteri tipo cosi:
char buf[30];
json_string.toCharArray(buf, 30);

e poi passare alla   .parse(buf);

vedi tu se 30 per il buffer bastano
my name is IGOR, not AIGOR

zio90

#4
Jul 03, 2013, 04:33 pm Last Edit: Jul 03, 2013, 08:48 pm by leo72 Reason: 1
aaaaah ecco c..., mi sono confuso tra l'oggetto String e un array di caratteri (stringa)...  adesso dovrebbe andare sicuro, ti dico..

zio90

e infatti NON mi da errori, compila subito....

un Grazie immenso !!!!!!!!!! grande..

leo72

Moderiamo il linguaggio, per favore.

Go Up