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:
#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 */
}
Si, hai ragione, ho messo aJsonClass perchè se lascio quella ''originale'' mi da questo errore:
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
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);