I am trying to simply compile a sketch using the aJSON library.
I think I am following the examples correctly but I keep on getting a compile time error.
Any help greatly appreciated.
My code looks like (I appear to get an error on the first call to aJson.getObjectItem():
#include "aJSON.h"
unsigned long last_print = 0;
aJsonStream serial_stream(&Serial);
int ledPin = 52;
int sensorPin = A8;
int sensorValue = 0;
int refreshRate = 0;
int ARDUINO_RANGE = 4096;
int PARKER_RANGE = 250;
long pressureTotal = 0;
bool laseron = false;
bool initialized = false;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin,LOW);
}
void processSysMessage(aJsonObject *msg)
{
aJsonObject foundsysmsg = aJson.getObjectItem(msg, "sys");
/ if(foundsysmsg)
{
aJsonObject *msg = aJson.createObject();
aJson.addItemToObject(msg,"ARDUINOMAIN",NULL);
aJson.print(msg, &serial_stream);
Serial.println();
aJson.deleteItem(msg);
}
*/
}
void processMessage(aJsonObject *msg)
{
aJsonObject *foundlasermsg = aJson.getObjectItem(msg, "LASER");
if (foundlasermsg)
{
if(laseron)
{
digitalWrite(ledPin,LOW);
laseron = false;
}
else
{
digitalWrite(ledPin,HIGH);
laseron = true;
}
}
}
void loop()
{
refreshRate += 1;
if (serial_stream.available()) {
/* First, skip any accidental whitespace like newlines. */
serial_stream.skip();
}
if (serial_stream.available()) {
/* Something real on input, let's take a look. */
aJsonObject *msg = aJson.parse(&serial_stream);
if(!initialized)
{
processSysMessage(msg);
}
else
processMessage(msg);
aJson.deleteItem(msg);
}
if(initialized)
{
sensorValue = analogRead(sensorPin);
pressureTotal += sensorValue;
if(millis() - last_print > 1000)
{
aJsonObject *msg = aJson.createObject();
aJson.addItemToObject(msg,"PRESSURE",aJson.createItem(((((double)pressureTotal)/1000)/ARDUINO_RANGE)PARKER_RANGE));
aJson.print(msg, &serial_stream);
Serial.println(); / Add newline. */
aJson.deleteItem(msg);
last_print = millis();
pressureTotal = 0;
}
}
}
When I compile, I get the following errors:
C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp\ArduinoMain.cpp.o C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp/core.a -LC:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp -lm
C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp\ArduinoMain.cpp.o: In function processSysMessage(aJsonObject*)': C:\Program Files (x86)\Arduino/ArduinoMain.ino:25: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:25: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:25: undefined reference to aJsonClass::getObjectItem(aJsonObject*, char const*)'
C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp\ArduinoMain.cpp.o: In function processMessage(aJsonObject*)': C:\Program Files (x86)\Arduino/ArduinoMain.ino:39: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:39: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:39: undefined reference to aJsonClass::getObjectItem(aJsonObject*, char const*)'
C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp\ArduinoMain.cpp.o: In function loop': C:\Program Files (x86)\Arduino/ArduinoMain.ino:59: undefined reference to aJsonStream::available()'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:61: undefined reference to aJsonStream::skip()' C:\Program Files (x86)\Arduino/ArduinoMain.ino:64: undefined reference to aJsonStream::available()'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:66: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:66: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:66: undefined reference to aJsonClass::parse(aJsonStream*)' C:\Program Files (x86)\Arduino/ArduinoMain.ino:73: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:75: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:75: undefined reference to aJsonClass::deleteItem(aJsonObject*)'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:82: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:82: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:82: undefined reference to aJsonClass::createObject()' C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJsonClass::createItem(double)'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJsonClass::addItemToObject(aJsonObject*, char const*, aJsonObject*)' C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:85: undefined reference to aJsonClass::print(aJsonObject*, aJsonStream*)'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:86: undefined reference to aJson' C:\Program Files (x86)\Arduino/ArduinoMain.ino:86: undefined reference to aJson'
C:\Program Files (x86)\Arduino/ArduinoMain.ino:86: undefined reference to aJsonClass::deleteItem(aJsonObject*)' C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp\ArduinoMain.cpp.o: In function Print':
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:43: undefined reference to vtable for aJsonStream' C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp\ArduinoMain.cpp.o: In function aJsonStream':
C:\Users\ADMINI~1\AppData\Local\Temp\build4457076699357761172.tmp/aJSON.h:75: undefined reference to `vtable for aJsonStream'
collect2.exe: error: ld returned 1 exit status
Error compiling.