First quick attempt at an API and demo for the stampdock software of http://stampdock.com/ it demonstrates how to use the stampdock software from an mbed
Revision 0:5e04d85f928a, committed 2010-11-02
- Comitter:
- apspijkerman
- Date:
- Tue Nov 02 15:28:35 2010 +0000
- Commit message:
- first attempt
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Nov 02 15:28:35 2010 +0000 @@ -0,0 +1,298 @@ + +#include "mbed.h" +#include "stampdock.h" + +Stampdock stampdock; + + + +DigitalOut myled1(LED1); +DigitalOut myled2(LED2); +DigitalOut myled3(LED3); +DigitalOut myled4(LED4); + + + +void SetLed(int led, int mode) +{ + if (led == 0) myled1 = mode; + if (led == 1) myled2 = mode; + if (led == 2) myled3 = mode; + if (led == 3) myled4 = mode; +} + +void Blink(int led) +{ + if (led == 0) myled1 = 1; + if (led == 1) myled2 = 1; + if (led == 2) myled3 = 1; + if (led == 3) myled4 = 1; + wait(0.1); + if (led == 0) myled1 = 0; + if (led == 1) myled2 = 0; + if (led == 2) myled3 = 0; + if (led == 3) myled4 = 0; +} + +void SetLeds(void) +{ + int t; + +// flash all leds +/* + for (t = 0; t < 4; t++){ + SetLed(t, 1); + } + wait(1); + for (t = 0; t < 4; t++){ + SetLed(t, 0); + } +*/ +// kitt led test + for (t = 0; t < 4; t++){ + SetLed(t, 1); + wait(0.2); + SetLed(t, 0); + } +} + +void ToggleLed(int led) +{ + if (led == 0) myled1 = !myled1; + if (led == 1) myled2 = !myled2; + if (led == 2) myled3 = !myled3; + if (led == 3) myled4 = !myled4; + wait(0.25); +} + + + +#define boolean int + + // ChanXMode '0=off, 1=low, 2=high, 3=gnd ? + // Mode '0=scope, 1=XY, 2=record (3=off ?) + +int main() { + boolean ready; // Bit + int x, s, cnt = 0, ptr, speed = 0; // Byte + int x1, y1, x2, y2, ecnt = 0; + int mem[10]; // int [] mem; + + //stampdock *Stampdock = new stampdock(); + + //StringBuffer serbuf = new StringBuffer(80); + + //mem = new int [10]; + + //InitStampdock(); + + //serial.printf("demo running .. \r\n"); + stampdock.printf("demo running %d .. \r\n", 123); + + + for (cnt = 0; cnt < 100; cnt++){ + stampdock.SetValue(cnt, 0); + } + + stampdock.Cmd("!j0,250,0,0;"); // LED 0 to red + stampdock.Cmd("!j1,0,250,0;"); // LED 1 to green + stampdock.Cmd("!j2,0,0,250;"); // LED 2 to blue + stampdock.Cmd("!j3,4;"); // LED 3 to white + + stampdock.Cmd4( 'j', 0, 250, 0, 0 ); // LED 0 to red + + stampdock.SetColor(100,100,200); + stampdock.ClearScreen(); // clear graph + + stampdock.SetColor(128,128,228); + stampdock.DrawGrid(20,20,29,19,55,12); + + stampdock.SetColor(0,0,0); // black + for (cnt = 0; cnt < 20; cnt++){ + + x1 = cnt * 10; + y1 = 15; + + stampdock.Plot(x1, y1); + } + + for (cnt = 0; cnt < 20; cnt++){ + x1 = 10 * cnt; + x2 = 15 * cnt; + y1 = 20; + y2 = 40; + stampdock.DrawLine(x1,y1,x2,y2); + } + + stampdock.Cmd("!f12;"); // set greyscale value 12 + stampdock.Cmd("!r60,60,100,100;"); // draw rectangle + + stampdock.Cmd("!h10,70;"); // set draw position to home or 10,70 + stampdock.Cmd("!g50;"); // draw grey pixel and increase + stampdock.Cmd("!g100;"); // draw grey pixel and increase + stampdock.Cmd("!g150;"); // draw grey pixel and increase + stampdock.Cmd("!g200;"); // draw grey pixel and increase + stampdock.Cmd("!w10;"); // draw 10 white pixels and increase + stampdock.Cmd("!b10;"); // draw 10 black pixels and increase + + + s = 80; + //serbuf.clear(); + //serbuf.append("!Pb"); // poly line, binary mode + //serbuf.append((char)33); // 33 values follow + //serbuf.append((char)20); // dx=20 + //serbuf.append((char) 0); // dy=0 .. so only y values + //serbuf.append((char)60); // x start + //serbuf.append((char) s); // y start + + stampdock.printf("!Pb%c%c%c%c%c", 33, 20, 0, 60, s ); + + for (cnt = 0; cnt <= 28; cnt++){ + x = cnt * cnt; + //serbuf.append((char) x ); // y value of next line + + stampdock.printf("%c", x ); + } + + //serbuf.append(";"); // end poly line cmd + //System.out.print(serbuf.toString()); + stampdock.print(";"); + + + // do some file access + + stampdock.Cmd("!Otempfile.txt;"); // open file for writing + stampdock.Cmd("!e12,24,48,96;"); // write some values + stampdock.Cmd("!O;"); // close file + + stampdock.Cmd("?Otempfile.txt;"); // open file for reading + stampdock.ReadByte(); + stampdock.ReadByte(); + stampdock.ReadByte(); + s = stampdock.ReadByte(); // read LSB size of file + stampdock.printf("file is "); + stampdock.printf( "%d", s ); + stampdock.printf(" bytes.\r\n"); + + stampdock.printf("read values: "); + for (cnt = 0; cnt < s; cnt++){ + stampdock.Cmd("?e;"); // read a byte + x = stampdock.ReadByte(); + stampdock.printf( "%d", x ); + stampdock.printf(","); + } + stampdock.printf("\r\n"); + stampdock.Cmd("?O;"); // close file + stampdock.ReadByte(); + + + stampdock.printf("ticks is: "); + stampdock.Cmd("?t0;"); // request ticks + for (cnt = 0; cnt < 4; cnt++){ + mem[cnt] = (int) stampdock.ReadByte(); + } + for (cnt = 0; cnt < 4; cnt++){ + stampdock.printf( "%d", mem[cnt] ); + stampdock.printf(","); + } + stampdock.printf("\r\n"); + + + + stampdock.printf("time: y2 y1 mon day hour min sec tic : "); + stampdock.Cmd("?t1;"); // request time + for (cnt = 0; cnt < 8; cnt++){ + mem[cnt] = stampdock.ReadByte(); + } + for (cnt = 0; cnt < 8; cnt++){ + stampdock.printf( "%d", mem[cnt] ); + stampdock.printf(","); + } + stampdock.printf("\r\n"); + + // for (cnt = 0; cnt < 50; cnt++) + // Cmd2( 'G', 20, 1 ); // do "!G20,1;" + + + stampdock.Cmd("!nThis is a speech test.;"); + + stampdock.Cmd("!LThis is a log file test;"); + + stampdock.Cmd("!Vmedia/video.mpg;"); + wait( 1.1 ); // CPU.delay(1000); + stampdock.Cmd("!Vmedia/sound.mp3;"); + wait (1.1); // CPU.delay(1000); + stampdock.Cmd("!Vmedia/pic.jpg;"); + + while (true){ + if (ecnt == 2){ // test speed up + x = stampdock.GetEvent(); + ecnt = 0; + }else{ + ecnt++; + x = 0; + } + + if (x != 0){ // do we have a gui click or event ? + ecnt = 0; // just had an event, so max wait + s = stampdock.GetValue(x); // get value of gui element x + + // now handle GUI element x with value/state s + if (x == 1){ + //mode = s; + // clear graph + //'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c + //DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color + + + //serial.printf("!s100,100,200;!c;"); + stampdock.SetColor(100,100,200); + stampdock.ClearScreen(); + } else + + if (x == 10){ // checkmark 0 + stampdock.SetValue(12, s); // set checkmark 2 + } else + if (x == 11){ // checkmark 1 + stampdock.SetValue(13, s); // set checkmark 3 + } else + + if (x == 20){ // hor switch 0 + stampdock.SetValue(21, s); // set hor switch 1 + } else + if (x == 21){ // hor switch1 + stampdock.SetValue(20, s); // set hor switch 0 + } else + + if (x == 40){ // hor potm 0 + stampdock.SetValue(41, s); // hor potm 1 + stampdock.SetValue(60, s); // set analog meter + } else + if (x == 41){ // hor potm 1 + stampdock.SetValue(40, s); // hor potm 0 + stampdock.SetValue(61, s); // set analog meter + } else + + if (x == 100){ // turn knob 0 + stampdock.SetValue(101, s); // turn knob 1 + } else + if (x == 101){ // turn knob 1 + stampdock.SetValue(100, s); // turn knob 0 + } else + + if (x == 90){ // button 1 + stampdock.ScrollLeft(); // scroll left 1 pixel + } + + + } // if event + + wait(0.1); // CPU.delay(100); + + // do .. + + + } // end while true + } // end main + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Nov 02 15:28:35 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stampdock.cpp Tue Nov 02 15:28:35 2010 +0000 @@ -0,0 +1,581 @@ + +#include "mbed.h" +#include "stampdock.h" +#include <stdarg.h> // var_args + +Serial serial(USBTX, USBRX); // tx, rx default 9600 8N1 + +//stampdock *stampdock::instance; + +Stampdock::Stampdock(void) +{ + +#ifdef qmbed + //serial.baud(9600); // causes error + //serial.baud(19200); + //serial.format(8,None,1); +#endif +#ifdef qarduino + serial.begin( 9600 ); +#endif + +} + +Stampdock::~Stampdock(void) +{ + +} + + +int Stampdock::init(void) +{ + // set baud ? + return 0; +} + +int Stampdock::print(char *p) +{ + serial.printf("%s", p); +} + +int Stampdock::printf(char *fmt, ... ) +{ + va_list var_args; + char string[256]; + int len = 0; + + va_start(var_args, fmt); + + len = vsprintf(string, fmt, var_args); + + va_end(var_args); + + serial.printf( string ); + + return len; +} + + + + int Stampdock::GetEvent(void) + { + int e = 0, ready = 0, cnt = 0; + char v; + // DEBUG "?Q;" 'query for events .. also sync with PC + // SERIN 16, Baud, [x] '16468 + // PAUSE 1 ' millisecs .. let serial bus settle + + serial.printf("?Q;"); // query for event .. also sync with PC + do{ + if (serial.readable()){ + //v = Serial.read(); + v = serial.getc(); + + e = v; + if (e < 0) e += 256; // signed char to int ? + + //e = (255-v) + 1; // 2's complement + + //serial.printf("EVENT:"); + //serial.printf(e); + //serial.printf("<-"); + ready = 1; + }else{ + //serial.printf("no event"); + wait(0.0001); + cnt++; + if (cnt == 1000) ready = 1; + //Blink(0); + } + }while(!ready); + //CPU.delay(10); + + // .. flush out of sync events .. + //while (serial.readable()){ + if (serial.readable()){ + // Serial.read(); + serial.getc(); + //Blink(1); + } + + if (serial.readable()){ + // Serial.read(); + serial.getc(); + //Blink(2); + } + + return e; + } + + // request the state of GUI element i + +int Stampdock::GetValue(int i) + { + int e = 0, ready = 0, cnt = 0; + char v; + //StringBuffer buf=new StringBuffer(12); + + // DEBUG "?i",DEC x,";" 'get state of gui element x + // SERIN 16, Baud, [s] '16468 + // PAUSE 1 ' millisecs + + //serial.printf("?i"); // query for event + //serial.printf(i); + //serial.printf(";"); + + //buf.clear(); + //buf.append("?i"); + //buf.append( i ); + //buf.append(";"); + //System.out.print(buf.toString()); + + serial.printf("?i%d;", i ); + + //wait(0.1); //CPU.delay(1); // ?? + do { + if (serial.readable()){ + //v = Serial.read(); + v = serial.getc(); + + e = v; + if (e < 0) e += 256; // signed char to int ? + + //e = (255-v) + 1; // 2's complement + ready = 1; + }else{ + wait(0.0001); + cnt++; + if (cnt == 1000) ready = 1; + } + //CPU.delay(10); + }while(!ready); + return e; + } + + // set the state (v) of gui element i + + void Stampdock::SetValue(int i, int v) + { + //StringBuffer buf=new StringBuffer(16); + + // DEBUG "?i",DEC x,";" 'get state of gui element x + // SERIN 16, Baud, [s] '16468 + // PAUSE 1 ' millisecs + + //serial.printf("!i"); // set value + //serial.printf(i); + //serial.printf(",") + //serial.printf(v); + //serial.printf(";"); + + //buf.clear(); // slow ascii method to allow values > 255 + if (i <= 255){ + //buf.append("!ib"); // fast binary way + //buf.append((char) 2 ); // write 2 bytes + //buf.append((char) i ); // write id + //buf.append((char) v ); // always smaller als 256 + + serial.printf("!ib%c%c%c;", 2 , i , v ); + }else{ + //buf.append("!i"); // slow ascii way + //buf.append( i ); // in case ID greater as 255 + //buf.append(","); + //buf.append( v ); + + serial.printf("!i%d,%d;", i, v); + } + //buf.append(";"); + //System.out.print(buf.toString()); + + //CPU.delay(1); // ?? + } + + +char Stampdock::ReadByte(void) + { + char v = 0, ready = 0, cnt = 0; + + //wait(0.1); + do { + if (serial.readable()){ + //v = Serial.read(); + v = serial.getc(); + + //e = v; + //if (e < 0) e += 256; // signed char to int ? + ready = 1; + }else{ + wait(0.0001); + cnt++; + if (cnt == 1000) ready = 1; + } + }while(!ready); + return v; + } + + +void Stampdock::SetColor(int r, int g, int b) + { + // StringBuffer buf=new StringBuffer(12); + + if (r == 0 && g == 0 && b == 0){ + serial.printf("!s;"); // black + }else{ + //buf.clear(); + //buf.append("!sb"); // fast binary method .. so values <= 255 + //buf.append((char) 3 ); // write 3 bytes + //buf.append((char) r ); + //buf.append((char) g ); + //buf.append((char) b ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!sb%c%c%c%c;", 3, r, g, b ); + } + //CPU.delay(1); // ?? + } + + +void Stampdock::SetGrey(int g) + { + // StringBuffer buf=new StringBuffer(12); + + // DEBUG "!fb", 1, dat, ";" + + if (g == 0){ + //System.out.print("!f;"); // black + serial.printf("!f;"); // black + }else{ + //buf.clear(); + //buf.append("!fb"); // fast binary method .. so values <= 255 + //buf.append((char) 1 ); // write 3 bytes + //buf.append((char) g ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + + serial.printf("!sf%c%c;", 1, g ); + } + //CPU.delay(1); // ?? + } + + + +void Stampdock::SetLED(int i, int r, int g, int b) + { + // StringBuffer buf=new StringBuffer(12); + + //buf.clear(); + //buf.append("!jb"); // fast binary method .. so values <= 255 + //buf.append((char) 4 ); // write 4 bytes + //buf.append((char) i ); + //buf.append((char) r ); + //buf.append((char) g ); + //buf.append((char) b ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!jb%c%c%c%c%c;", 4, i, r, g, b ); + + //CPU.delay(1); // ?? + } + +void Stampdock::DrawLine(int x1, int y1, int x2, int y2) + { + //StringBuffer buf=new StringBuffer(36); + + //if (x1 < 0) x1 = 0; + //if (y1 < 0) y1 = 0; + //if (x2 < 0) x2 = 0; + //if (y2 < 0) y2 = 0; + + //buf.clear(); + if (x1 >= 0 && x1 <= 255 && y1 >= 0 && y1 <= 255 && x2 >= 0 && x2 <= 255 && y2 + +>= 0 && x2 <= 255){ + //buf.append("!lb"); // fast binary method + //buf.append((char) 4 ); // write 4 bytes + //buf.append((char) x1 ); + //buf.append((char) y1 ); + //buf.append((char) x2 ); + //buf.append((char) y2 ); + + serial.printf("!lb%c%c%c%c%c;", 4, x1, y1, x2, y2 ); + }else{ + //buf.append("!l"); // slow method .. so values > 255 + //buf.append( x1 ); + //buf.append("," ); + //buf.append( y1 ); + //buf.append("," ); + //buf.append( x2 ); + //buf.append("," ); + //buf.append( y2 ); + + serial.printf("!l%d,%d,%d,%d;", x1, y1, x2, y2); + } + //buf.append(";" ); + //System.out.print(buf.toString()); + + //CPU.delay(1); // ?? + } + +void Stampdock::Plot(int x, int y) + { + //StringBuffer buf=new StringBuffer(16); + + //if (x < 0) x = 0; + //if (y < 0) y = 0; + + //buf.clear(); + if (x >= 0 && x <= 255 && y >= 0 && y <= 255){ + //buf.append("!pb"); // fast method .. so values <= 255 + //buf.append((char) 2 ); // write 2 bytes + //buf.append((char) x ); + //buf.append((char) y ); + + serial.printf("!pb%c%c%c;", 2, x, y); + }else{ + //buf.append("!p"); // slow method .. so values > 255 + //buf.append( x ); + //buf.append("," ); + //buf.append( y ); + + serial.printf("!p%d,%d;", x, y); + } + //buf.append(";" ); + //System.out.print(buf.toString()); + + //CPU.delay(1); // ?? + } + + +void Stampdock::DrawGrid(int a, int b, int c, int d, int e, int f) + { + //StringBuffer buf=new StringBuffer(36); + + //buf.clear(); + //buf.append("!ab"); // fast binary method + //buf.append((char) 6 ); // write 6 bytes + //buf.append((char) a ); // xspace + //buf.append((char) b ); // yspace + //buf.append((char) c ); // xlines + //buf.append((char) d ); // ylines + //buf.append((char) e ); // xoffset + //buf.append((char) f ); // yoffset + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f ); + + //CPU.delay(1); // ?? + } + +void Stampdock::ClearScreen(void) + { + serial.printf("!c;"); + } + + // shortcut: Cmd("!c;"); or Cmd("?O;"); + +void Stampdock::Cmd(char *p) + { + serial.printf(p); + } + + // for "!nSpeech;" or "!Llog file;" + +void Stampdock::CmdStr(char cmd, char *p ) + { + //buf.clear(); + //buf.append("!"); + //buf.append( cmd ); + //buf.append( p ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!%c%s;", cmd, p); + } + + // cmd with no argument so Cmd0('s'); = "!s;" + +void Stampdock::Cmd0(char cmd ) + { + //buf.clear(); + //buf.append("!"); + //buf.append( cmd ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!%c;", cmd); + } + + // request with no arguments + // Req0( 'm' ); = "?m;" + + void Stampdock::Req0(char req ) + { + //buf.clear(); + //buf.append("?"); + //buf.append( req ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("?%c;", req ); + } + + // cmd with 1 arg Cmd1('a' , 1 ); = "!a1;" + +void Stampdock::Cmd1(char cmd, int arg1 ) + { + //buf.clear(); + //buf.append("!"); + //buf.append( cmd ); + if (arg1 < 256){ + //buf.append( 'b' ); // binary mode + //buf.append((char) 1 ); // 1 argument + //buf.append((char) arg1 ); + + serial.printf("!%cb%c%c;", cmd, 1, arg1 ); + }else{ + //buf.append( arg1 ); // slow ascii mode + + serial.printf("!%c%d;", cmd, arg1 ); + } + //buf.append(";" ); + //System.out.print(buf.toString()); + } + + // cmd with 2 args Cmd2('G', 20, 1); = "!G20,1;" + // plot = Cmd2( 'p', x, y ); + +void Stampdock::Cmd2(char cmd, int arg1, int arg2 ) + { + //buf.clear(); + //buf.append("!" ); // ! + //buf.append( cmd ); + if (arg1 < 255 && arg2 < 255){ + //buf.append( 'b' ); // binary mode + //buf.append((char) 2 ); // 2 arguments + //buf.append((char) arg1 ); + //buf.append((char) arg2 ); + + serial.printf("!%cb%c%c%c;", cmd, 2, arg1, arg2 ); + }else{ + //buf.append( arg1 ); // slow ascii mode + //buf.append("," ); + //buf.append( arg2 ); + + serial.printf("!%c%d,%d;", cmd, arg1, arg2 ); + } + //buf.append(";" ); + //System.out.print(buf.toString()); + } + + // cmd with 3 args + // setcolor = Cmd3( 's', r, g, b ); + + void Stampdock::Cmd3(char cmd, int arg1, int arg2, int arg3 ) + { + //buf.clear(); + //buf.append("!" ); // ! + //buf.append( cmd ); + if (arg1 < 255 && arg2 < 255 && arg3 < 255){ + //buf.append( 'b' ); // binary mode + //buf.append((char) 3 ); // 3 arguments + //buf.append((char) arg1 ); + //buf.append((char) arg2 ); + //buf.append((char) arg3 ); + + serial.printf("!%cb%c%c%c%c;", cmd, 3, arg1, arg2, arg3 ); + }else{ + //buf.append( arg1 ); // slow ascii mode + //buf.append("," ); + //buf.append( arg2 ); + //buf.append("," ); + //buf.append( arg3 ); + + serial.printf("!%c%d,%d,%d;", cmd, arg1, arg2, arg3 ); + } + //buf.append(";" ); + //System.out.print(buf.toString()); + } + + // cmd with 4 args + // line = Cmd4( 'l', x1, y1, x2, y2); + +void Stampdock::Cmd4(char cmd, int arg1, int arg2, int arg3, int arg4 ) + { + //buf.clear(); + //buf.append("!" ); // ! + //buf.append( cmd ); + if (arg1 < 255 && arg2 < 255 && arg3 < 255 && arg4 < 255){ + //buf.append( 'b' ); // binary mode + //buf.append((char) 4 ); // 4 arguments + //buf.append((char) arg1 ); + //buf.append((char) arg2 ); + //buf.append((char) arg3 ); + //buf.append((char) arg4 ); + + serial.printf("!%cb%c%c%c%c%c;", cmd, 4, arg1, arg2, arg3, arg4 ); + }else{ + //buf.append( arg1 ); // slow ascii mode + //buf.append("," ); + //buf.append( arg2 ); + //buf.append("," ); + //buf.append( arg3 ); + //buf.append("," ); + //buf.append( arg4 ); + + serial.printf("!%c%d,%d,%d,%d;", cmd, arg1, arg2, arg3, arg4 ); + } + //buf.append(";" ); + //System.out.print(buf.toString()); + } + + // play video, mp3 or picture + +void Stampdock::Media(char *p) + { + //buf.clear(); + //buf.append("!V"); + //buf.append( p ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!V%s;", p); + } + +void Stampdock::Speech(char *p) + { + //buf.clear(); + //buf.append("!n"); + //buf.append( p ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!n%s;", p); + } + +void Stampdock::Log(char *p) + { + //buf.clear(); + //buf.append("!L"); + //buf.append( p ); + //buf.append(";" ); + //System.out.print(buf.toString()); + + serial.printf("!L%s;", p); + } + + void Stampdock::ScrollLeft() + { + serial.printf("!G20,1;"); + } + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stampdock.h Tue Nov 02 15:28:35 2010 +0000 @@ -0,0 +1,82 @@ + + + + +#ifndef STAMPDOCK_H +#define STAMPDOCK_H + +#include "mbed.h" + +// #define qarduino 1 +#define qmbed 1 + +class Stampdock { +public: + Stampdock(void); + ~Stampdock(void); + + int init(void); + + int print(char *p); + int printf(char *fmt, ... ); + + int GetEvent(void); + + // request the state of GUI element i + int GetValue(int i); + + // set the state (v) of gui element i + void SetValue(int i, int v); + + char ReadByte(void); + + void SetColor(int r, int g, int b); + + void SetGrey(int g); + + void SetLED(int i, int r, int g, int b); + + void DrawLine(int x1, int y1, int x2, int y2); + + void Plot(int x, int y); + + void DrawGrid(int a, int b, int c, int d, int e, int f); + + void ClearScreen(void); + + void Cmd(char *p); + + void CmdStr(char cmd, char *p ); + + void Cmd0(char cmd ); + + void Req0(char req ); + + void Cmd1(char cmd, int arg1 ); + + void Cmd2(char cmd, int arg1, int arg2 ); + + void Cmd3(char cmd, int arg1, int arg2, int arg3 ); + + void Cmd4(char cmd, int arg1, int arg2, int arg3, int arg4 ); + + void Media(char *p); + + void Speech(char *p); + + void Log(char *p); + + void ScrollLeft(void); + + +private: + + //static stampdock *instance; + //Serial _serial; + +}; + + + + +#endif \ No newline at end of file