2009-06-01 10:32:11 +02:00
|
|
|
/* This sketch accepts strings and raw sysex messages and echos them back.
|
|
|
|
*
|
|
|
|
* This example code is in the public domain.
|
|
|
|
*/
|
|
|
|
#include <Firmata.h>
|
|
|
|
|
|
|
|
byte analogPin;
|
|
|
|
|
|
|
|
void stringCallback(char *myString)
|
|
|
|
{
|
|
|
|
Firmata.sendString(myString);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void sysexCallback(byte command, byte argc, byte*argv)
|
|
|
|
{
|
2011-02-26 19:57:41 +01:00
|
|
|
Serial.write(START_SYSEX);
|
|
|
|
Serial.write(command);
|
2009-06-01 10:32:11 +02:00
|
|
|
for(byte i=0; i<argc; i++) {
|
2011-02-26 19:57:41 +01:00
|
|
|
Serial.write(argv[i]);
|
2009-06-01 10:32:11 +02:00
|
|
|
}
|
2011-02-26 19:57:41 +01:00
|
|
|
Serial.write(END_SYSEX);
|
2009-06-01 10:32:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void setup()
|
|
|
|
{
|
|
|
|
Firmata.setFirmwareVersion(0, 1);
|
2009-07-14 23:32:55 +02:00
|
|
|
Firmata.attach(STRING_DATA, stringCallback);
|
2009-06-01 10:32:11 +02:00
|
|
|
Firmata.attach(START_SYSEX, sysexCallback);
|
2009-07-14 23:32:55 +02:00
|
|
|
Firmata.begin(57600);
|
2009-06-01 10:32:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void loop()
|
|
|
|
{
|
|
|
|
while(Firmata.available()) {
|
|
|
|
Firmata.processInput();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|