update
[mTask.git] / client / arduino / interface.cpp
1 #include <Arduino.h>
2 #include <stdbool.h>
3 #include <stdint.h>
4
5 extern "C" unsigned long getmillis(void);
6 extern "C" void pdie(char *, ...);
7 extern "C" void die(char *, ...);
8 extern "C" void debug(char *, ...);
9 extern "C" void real_setup(void);
10 extern "C" void write_byte(uint8_t);
11 extern "C" uint8_t read_byte(void);
12 extern "C" bool input_available(void);
13 extern "C" void msdelay(unsigned long);
14 extern "C" void reset(void);
15
16 unsigned long getmillis(void)
17 {
18 return millis();
19 }
20
21 void msdelay(unsigned long ms)
22 {
23 delay(ms);
24 }
25
26 bool input_available(void)
27 {
28 return Serial.available();
29 }
30
31 uint8_t read_byte(void)
32 {
33 return Serial.read();
34 }
35
36 void write_byte(uint8_t b)
37 {
38 Serial.write(b);
39 }
40
41 void real_setup(void)
42 {
43 Serial.begin(9600);
44 }
45
46 void debug(char *fmt, ...)
47 {
48 Serial.println(fmt);
49 }
50
51 void die(char *fmt, ...)
52 {
53 Serial.println(fmt);
54 while(1){
55 msdelay(1000);
56 Serial.print("die");
57 }
58 }
59
60 void pdie(char *s)
61 {
62 die(s);
63 }
64
65 void reset(void)
66 {
67 Serial.end();
68 real_setup();
69 }