add arduino uno compatability
[mTask.git] / client / arduino / interface.cpp
diff --git a/client/arduino/interface.cpp b/client/arduino/interface.cpp
new file mode 100644 (file)
index 0000000..c48f7c3
--- /dev/null
@@ -0,0 +1,62 @@
+#include <Arduino.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+extern "C" unsigned long getmillis(void);
+extern "C" void pdie(char *, ...);
+extern "C" void die(char *, ...);
+extern "C" void debug(char *, ...);
+extern "C" void real_setup(void);
+extern "C" void write_byte(uint8_t);
+extern "C" uint8_t read_byte(void);
+extern "C" bool input_available(void);
+extern "C" void msdelay(unsigned long);
+
+unsigned long getmillis(void)
+{
+       return millis();
+}
+
+void msdelay(unsigned long ms)
+{
+       delay(ms);
+}
+
+bool input_available(void)
+{
+       return Serial.available();
+}
+
+uint8_t read_byte(void)
+{
+       return Serial.read();
+}
+
+void write_byte(uint8_t b)
+{
+       Serial.write(b);
+}
+
+void real_setup(void)
+{
+       Serial.begin(9600);
+}
+
+void debug(char *fmt, ...)
+{
+       Serial.println(fmt);
+}
+
+void die(char *fmt, ...)
+{
+       Serial.println(fmt);
+       while(1){
+               msdelay(1000);
+               Serial.print("die");
+       }
+}
+
+void pdie(char *s)
+{
+       die(s);
+}