Error 'FIRMATA_FIRMWARE_MAJOR_VERSION' was not declared in this scope on a fresh install using Uno hardware. using firmata_test.ino
ArduinoUnit also added to library
Any Ideas as to where this should be declared?
Any Ideas as to where this should be declared?
In the proper place. The code you are trying to compile is conspicuously absent from your post.
/*
- To run this test suite, you must first install the ArduinoUnit library
- to your Arduino/libraries/ directory.
- You can get ArduinoUnit here: GitHub - mmurdoch/arduinounit: ArduinoUnit is a unit testing framework for Arduino libraries
- Download version 2.0 or greater or install it via the Arduino library manager.
*/
#include <ArduinoUnit.h>
#include <Firmata.h>
void setup()
{
Serial.begin(9600);
}
void loop()
{
Test::run();
}
test(beginPrintsVersion)
{
FakeStream stream;
Firmata.begin(stream);
char expected[] = {
REPORT_VERSION,
FIRMATA_PROTOCOL_MAJOR_VERSION,
FIRMATA_PROTOCOL_MINOR_VERSION,
0
};
assertEqual(expected, stream.bytesWritten());
}
void processMessage(const byte *message, size_t length)
{
FakeStream stream;
Firmata.begin(stream);
for (size_t i = 0; i < length; i++) {
stream.nextByte(message*);*
- Firmata.processInput();*
- }*
}
byte _digitalPort;
int _digitalPortValue;
void writeToDigitalPort(byte port, int value)
{ - _digitalPort = port;*
- _digitalPortValue = value;*
}
void setupDigitalPort()
{ - _digitalPort = 0;*
- _digitalPortValue = 0;*
}
test(processWriteDigital_0)
{ - setupDigitalPort();*
- Firmata.attach(DIGITAL_MESSAGE, writeToDigitalPort);*
- byte message[] = { DIGITAL_MESSAGE, 0, 0 };*
- processMessage(message, 3);*
- assertEqual(0, _digitalPortValue);*
}
test(processWriteDigital_127)
{ - setupDigitalPort();*
- Firmata.attach(DIGITAL_MESSAGE, writeToDigitalPort);*
- byte message[] = { DIGITAL_MESSAGE, 127, 0 };*
- processMessage(message, 3);*
- assertEqual(127, _digitalPortValue);*
}
test(processWriteDigital_128)
{ - setupDigitalPort();*
- Firmata.attach(DIGITAL_MESSAGE, writeToDigitalPort);*
- byte message[] = { DIGITAL_MESSAGE, 0, 1 };*
- processMessage(message, 3);*
- assertEqual(128, _digitalPortValue);*
}
test(processWriteLargestDigitalValue)
{ - setupDigitalPort();*
- Firmata.attach(DIGITAL_MESSAGE, writeToDigitalPort);*
- byte message[] = { DIGITAL_MESSAGE, 0x7F, 0x7F };*
- processMessage(message, 3);*
- // Maximum of 14 bits can be set (B0011111111111111)*
- assertEqual(0x3FFF, _digitalPortValue);*
}
test(defaultDigitalWritePortIsZero)
{ - setupDigitalPort();*
- Firmata.attach(DIGITAL_MESSAGE, writeToDigitalPort);*
- byte message[] = { DIGITAL_MESSAGE, 0, 0 };*
- processMessage(message, 3);*
- assertEqual(0, _digitalPort);*
}
test(specifiedDigitalWritePort)
{ - setupDigitalPort();*
- Firmata.attach(DIGITAL_MESSAGE, writeToDigitalPort);*
- byte message[] = { DIGITAL_MESSAGE + 1, 0, 0 };*
- processMessage(message, 3);*
- assertEqual(1, _digitalPort);*
}
test(setFirmwareVersionDoesNotLeakMemory)
{ - Firmata.setFirmwareVersion(1, 0);*
- int initialMemory = freeMemory();*
- Firmata.setFirmwareVersion(1, 0);*
- assertEqual(0, initialMemory - freeMemory());*
}
I don't know where you got that code. FIRMATA_MAJOR_VERSION and FIRMATA_MINOR_VERSION are defined in Firmata.h. I have no idea why the code you posted is trying to print something else.