Skip to content

Instantly share code, notes, and snippets.

@tdfischer
Created November 8, 2014 06:04
Show Gist options
  • Save tdfischer/9e0136b7e36c78dc81f3 to your computer and use it in GitHub Desktop.
Save tdfischer/9e0136b7e36c78dc81f3 to your computer and use it in GitHub Desktop.
Arduino Graviton
#include "Graviton.h"
GravitonFleck::GravitonFleck(const char* serviceName, const GravitonDriver* driver, const GravitonFleckMethod methods[]) :
m_service (serviceName),
m_driver (driver),
m_methods (methods)
{}
class GravitonDriver {
public:
};
class GravitonXBeeDriver : public GravitonDriver {
public:
};
class GravitonFleckMethod {
public:
GravitonFleckMethod(const char* methodName, GravitonFleckMethodFunction* func);
GravitonFleckVariant& call(const GravitonFleckVariantList* args);
private:
const char* m_name;
const GravitonFleckMethodFunction* m_func;
};
class GravitonFleck {
public:
GravitonFleck(const char* serviceName, const GravitonDriver* driver, const GravitonFleckMethod methods[]);
private:
const char* m_service;
const GravitonDriver* m_driver;
const GravitonFleckMethod m_methods[];
};
#include <SPI.h>
#include <SoftwareSerial.h>
#include <LPD8806.h>
#include <Graviton.h>
SoftwareSerial ser = SoftwareSerial(2, 3);
LPD8806 strip = LPD8806 (32);
GravitonFleckResult
do_idle(GravitonVariantList* args)
{
}
GravitonFleckMethod methods[] = {
GravitonFleckMethod("idle", do_idle, );
};
GravitonXBeeDriver driver();
GravitonFleck fleck ("net:phrobo:brilliance:linear", &driver, methods);
void setup() {
graviton.setDriver (driver);
Serial.begin(9600);
ser.begin (9600);
strip.begin();
int i;
for (i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, 0);
}
strip.show();
}
void loop()
{
int i;
char r;
char g;
char b;
while (!ser.available());
r = ser.read();
while (!ser.available());
g = ser.read();
while (!ser.available());
b = ser.read();
for(i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor (i, r, g, b);
}
strip.show();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment