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

Dependencies:   mbed

Committer:
apspijkerman
Date:
Tue Nov 02 15:28:35 2010 +0000
Revision:
0:5e04d85f928a
first attempt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apspijkerman 0:5e04d85f928a 1
apspijkerman 0:5e04d85f928a 2 #include "mbed.h"
apspijkerman 0:5e04d85f928a 3 #include "stampdock.h"
apspijkerman 0:5e04d85f928a 4 #include <stdarg.h> // var_args
apspijkerman 0:5e04d85f928a 5
apspijkerman 0:5e04d85f928a 6 Serial serial(USBTX, USBRX); // tx, rx default 9600 8N1
apspijkerman 0:5e04d85f928a 7
apspijkerman 0:5e04d85f928a 8 //stampdock *stampdock::instance;
apspijkerman 0:5e04d85f928a 9
apspijkerman 0:5e04d85f928a 10 Stampdock::Stampdock(void)
apspijkerman 0:5e04d85f928a 11 {
apspijkerman 0:5e04d85f928a 12
apspijkerman 0:5e04d85f928a 13 #ifdef qmbed
apspijkerman 0:5e04d85f928a 14 //serial.baud(9600); // causes error
apspijkerman 0:5e04d85f928a 15 //serial.baud(19200);
apspijkerman 0:5e04d85f928a 16 //serial.format(8,None,1);
apspijkerman 0:5e04d85f928a 17 #endif
apspijkerman 0:5e04d85f928a 18 #ifdef qarduino
apspijkerman 0:5e04d85f928a 19 serial.begin( 9600 );
apspijkerman 0:5e04d85f928a 20 #endif
apspijkerman 0:5e04d85f928a 21
apspijkerman 0:5e04d85f928a 22 }
apspijkerman 0:5e04d85f928a 23
apspijkerman 0:5e04d85f928a 24 Stampdock::~Stampdock(void)
apspijkerman 0:5e04d85f928a 25 {
apspijkerman 0:5e04d85f928a 26
apspijkerman 0:5e04d85f928a 27 }
apspijkerman 0:5e04d85f928a 28
apspijkerman 0:5e04d85f928a 29
apspijkerman 0:5e04d85f928a 30 int Stampdock::init(void)
apspijkerman 0:5e04d85f928a 31 {
apspijkerman 0:5e04d85f928a 32 // set baud ?
apspijkerman 0:5e04d85f928a 33 return 0;
apspijkerman 0:5e04d85f928a 34 }
apspijkerman 0:5e04d85f928a 35
apspijkerman 0:5e04d85f928a 36 int Stampdock::print(char *p)
apspijkerman 0:5e04d85f928a 37 {
apspijkerman 0:5e04d85f928a 38 serial.printf("%s", p);
apspijkerman 0:5e04d85f928a 39 }
apspijkerman 0:5e04d85f928a 40
apspijkerman 0:5e04d85f928a 41 int Stampdock::printf(char *fmt, ... )
apspijkerman 0:5e04d85f928a 42 {
apspijkerman 0:5e04d85f928a 43 va_list var_args;
apspijkerman 0:5e04d85f928a 44 char string[256];
apspijkerman 0:5e04d85f928a 45 int len = 0;
apspijkerman 0:5e04d85f928a 46
apspijkerman 0:5e04d85f928a 47 va_start(var_args, fmt);
apspijkerman 0:5e04d85f928a 48
apspijkerman 0:5e04d85f928a 49 len = vsprintf(string, fmt, var_args);
apspijkerman 0:5e04d85f928a 50
apspijkerman 0:5e04d85f928a 51 va_end(var_args);
apspijkerman 0:5e04d85f928a 52
apspijkerman 0:5e04d85f928a 53 serial.printf( string );
apspijkerman 0:5e04d85f928a 54
apspijkerman 0:5e04d85f928a 55 return len;
apspijkerman 0:5e04d85f928a 56 }
apspijkerman 0:5e04d85f928a 57
apspijkerman 0:5e04d85f928a 58
apspijkerman 0:5e04d85f928a 59
apspijkerman 0:5e04d85f928a 60 int Stampdock::GetEvent(void)
apspijkerman 0:5e04d85f928a 61 {
apspijkerman 0:5e04d85f928a 62 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:5e04d85f928a 63 char v;
apspijkerman 0:5e04d85f928a 64 // DEBUG "?Q;" 'query for events .. also sync with PC
apspijkerman 0:5e04d85f928a 65 // SERIN 16, Baud, [x] '16468
apspijkerman 0:5e04d85f928a 66 // PAUSE 1 ' millisecs .. let serial bus settle
apspijkerman 0:5e04d85f928a 67
apspijkerman 0:5e04d85f928a 68 serial.printf("?Q;"); // query for event .. also sync with PC
apspijkerman 0:5e04d85f928a 69 do{
apspijkerman 0:5e04d85f928a 70 if (serial.readable()){
apspijkerman 0:5e04d85f928a 71 //v = Serial.read();
apspijkerman 0:5e04d85f928a 72 v = serial.getc();
apspijkerman 0:5e04d85f928a 73
apspijkerman 0:5e04d85f928a 74 e = v;
apspijkerman 0:5e04d85f928a 75 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:5e04d85f928a 76
apspijkerman 0:5e04d85f928a 77 //e = (255-v) + 1; // 2's complement
apspijkerman 0:5e04d85f928a 78
apspijkerman 0:5e04d85f928a 79 //serial.printf("EVENT:");
apspijkerman 0:5e04d85f928a 80 //serial.printf(e);
apspijkerman 0:5e04d85f928a 81 //serial.printf("<-");
apspijkerman 0:5e04d85f928a 82 ready = 1;
apspijkerman 0:5e04d85f928a 83 }else{
apspijkerman 0:5e04d85f928a 84 //serial.printf("no event");
apspijkerman 0:5e04d85f928a 85 wait(0.0001);
apspijkerman 0:5e04d85f928a 86 cnt++;
apspijkerman 0:5e04d85f928a 87 if (cnt == 1000) ready = 1;
apspijkerman 0:5e04d85f928a 88 //Blink(0);
apspijkerman 0:5e04d85f928a 89 }
apspijkerman 0:5e04d85f928a 90 }while(!ready);
apspijkerman 0:5e04d85f928a 91 //CPU.delay(10);
apspijkerman 0:5e04d85f928a 92
apspijkerman 0:5e04d85f928a 93 // .. flush out of sync events ..
apspijkerman 0:5e04d85f928a 94 //while (serial.readable()){
apspijkerman 0:5e04d85f928a 95 if (serial.readable()){
apspijkerman 0:5e04d85f928a 96 // Serial.read();
apspijkerman 0:5e04d85f928a 97 serial.getc();
apspijkerman 0:5e04d85f928a 98 //Blink(1);
apspijkerman 0:5e04d85f928a 99 }
apspijkerman 0:5e04d85f928a 100
apspijkerman 0:5e04d85f928a 101 if (serial.readable()){
apspijkerman 0:5e04d85f928a 102 // Serial.read();
apspijkerman 0:5e04d85f928a 103 serial.getc();
apspijkerman 0:5e04d85f928a 104 //Blink(2);
apspijkerman 0:5e04d85f928a 105 }
apspijkerman 0:5e04d85f928a 106
apspijkerman 0:5e04d85f928a 107 return e;
apspijkerman 0:5e04d85f928a 108 }
apspijkerman 0:5e04d85f928a 109
apspijkerman 0:5e04d85f928a 110 // request the state of GUI element i
apspijkerman 0:5e04d85f928a 111
apspijkerman 0:5e04d85f928a 112 int Stampdock::GetValue(int i)
apspijkerman 0:5e04d85f928a 113 {
apspijkerman 0:5e04d85f928a 114 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:5e04d85f928a 115 char v;
apspijkerman 0:5e04d85f928a 116 //StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5e04d85f928a 117
apspijkerman 0:5e04d85f928a 118 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:5e04d85f928a 119 // SERIN 16, Baud, [s] '16468
apspijkerman 0:5e04d85f928a 120 // PAUSE 1 ' millisecs
apspijkerman 0:5e04d85f928a 121
apspijkerman 0:5e04d85f928a 122 //serial.printf("?i"); // query for event
apspijkerman 0:5e04d85f928a 123 //serial.printf(i);
apspijkerman 0:5e04d85f928a 124 //serial.printf(";");
apspijkerman 0:5e04d85f928a 125
apspijkerman 0:5e04d85f928a 126 //buf.clear();
apspijkerman 0:5e04d85f928a 127 //buf.append("?i");
apspijkerman 0:5e04d85f928a 128 //buf.append( i );
apspijkerman 0:5e04d85f928a 129 //buf.append(";");
apspijkerman 0:5e04d85f928a 130 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 131
apspijkerman 0:5e04d85f928a 132 serial.printf("?i%d;", i );
apspijkerman 0:5e04d85f928a 133
apspijkerman 0:5e04d85f928a 134 //wait(0.1); //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 135 do {
apspijkerman 0:5e04d85f928a 136 if (serial.readable()){
apspijkerman 0:5e04d85f928a 137 //v = Serial.read();
apspijkerman 0:5e04d85f928a 138 v = serial.getc();
apspijkerman 0:5e04d85f928a 139
apspijkerman 0:5e04d85f928a 140 e = v;
apspijkerman 0:5e04d85f928a 141 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:5e04d85f928a 142
apspijkerman 0:5e04d85f928a 143 //e = (255-v) + 1; // 2's complement
apspijkerman 0:5e04d85f928a 144 ready = 1;
apspijkerman 0:5e04d85f928a 145 }else{
apspijkerman 0:5e04d85f928a 146 wait(0.0001);
apspijkerman 0:5e04d85f928a 147 cnt++;
apspijkerman 0:5e04d85f928a 148 if (cnt == 1000) ready = 1;
apspijkerman 0:5e04d85f928a 149 }
apspijkerman 0:5e04d85f928a 150 //CPU.delay(10);
apspijkerman 0:5e04d85f928a 151 }while(!ready);
apspijkerman 0:5e04d85f928a 152 return e;
apspijkerman 0:5e04d85f928a 153 }
apspijkerman 0:5e04d85f928a 154
apspijkerman 0:5e04d85f928a 155 // set the state (v) of gui element i
apspijkerman 0:5e04d85f928a 156
apspijkerman 0:5e04d85f928a 157 void Stampdock::SetValue(int i, int v)
apspijkerman 0:5e04d85f928a 158 {
apspijkerman 0:5e04d85f928a 159 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:5e04d85f928a 160
apspijkerman 0:5e04d85f928a 161 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:5e04d85f928a 162 // SERIN 16, Baud, [s] '16468
apspijkerman 0:5e04d85f928a 163 // PAUSE 1 ' millisecs
apspijkerman 0:5e04d85f928a 164
apspijkerman 0:5e04d85f928a 165 //serial.printf("!i"); // set value
apspijkerman 0:5e04d85f928a 166 //serial.printf(i);
apspijkerman 0:5e04d85f928a 167 //serial.printf(",")
apspijkerman 0:5e04d85f928a 168 //serial.printf(v);
apspijkerman 0:5e04d85f928a 169 //serial.printf(";");
apspijkerman 0:5e04d85f928a 170
apspijkerman 0:5e04d85f928a 171 //buf.clear(); // slow ascii method to allow values > 255
apspijkerman 0:5e04d85f928a 172 if (i <= 255){
apspijkerman 0:5e04d85f928a 173 //buf.append("!ib"); // fast binary way
apspijkerman 0:5e04d85f928a 174 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:5e04d85f928a 175 //buf.append((char) i ); // write id
apspijkerman 0:5e04d85f928a 176 //buf.append((char) v ); // always smaller als 256
apspijkerman 0:5e04d85f928a 177
apspijkerman 0:5e04d85f928a 178 serial.printf("!ib%c%c%c;", 2 , i , v );
apspijkerman 0:5e04d85f928a 179 }else{
apspijkerman 0:5e04d85f928a 180 //buf.append("!i"); // slow ascii way
apspijkerman 0:5e04d85f928a 181 //buf.append( i ); // in case ID greater as 255
apspijkerman 0:5e04d85f928a 182 //buf.append(",");
apspijkerman 0:5e04d85f928a 183 //buf.append( v );
apspijkerman 0:5e04d85f928a 184
apspijkerman 0:5e04d85f928a 185 serial.printf("!i%d,%d;", i, v);
apspijkerman 0:5e04d85f928a 186 }
apspijkerman 0:5e04d85f928a 187 //buf.append(";");
apspijkerman 0:5e04d85f928a 188 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 189
apspijkerman 0:5e04d85f928a 190 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 191 }
apspijkerman 0:5e04d85f928a 192
apspijkerman 0:5e04d85f928a 193
apspijkerman 0:5e04d85f928a 194 char Stampdock::ReadByte(void)
apspijkerman 0:5e04d85f928a 195 {
apspijkerman 0:5e04d85f928a 196 char v = 0, ready = 0, cnt = 0;
apspijkerman 0:5e04d85f928a 197
apspijkerman 0:5e04d85f928a 198 //wait(0.1);
apspijkerman 0:5e04d85f928a 199 do {
apspijkerman 0:5e04d85f928a 200 if (serial.readable()){
apspijkerman 0:5e04d85f928a 201 //v = Serial.read();
apspijkerman 0:5e04d85f928a 202 v = serial.getc();
apspijkerman 0:5e04d85f928a 203
apspijkerman 0:5e04d85f928a 204 //e = v;
apspijkerman 0:5e04d85f928a 205 //if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:5e04d85f928a 206 ready = 1;
apspijkerman 0:5e04d85f928a 207 }else{
apspijkerman 0:5e04d85f928a 208 wait(0.0001);
apspijkerman 0:5e04d85f928a 209 cnt++;
apspijkerman 0:5e04d85f928a 210 if (cnt == 1000) ready = 1;
apspijkerman 0:5e04d85f928a 211 }
apspijkerman 0:5e04d85f928a 212 }while(!ready);
apspijkerman 0:5e04d85f928a 213 return v;
apspijkerman 0:5e04d85f928a 214 }
apspijkerman 0:5e04d85f928a 215
apspijkerman 0:5e04d85f928a 216
apspijkerman 0:5e04d85f928a 217 void Stampdock::SetColor(int r, int g, int b)
apspijkerman 0:5e04d85f928a 218 {
apspijkerman 0:5e04d85f928a 219 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5e04d85f928a 220
apspijkerman 0:5e04d85f928a 221 if (r == 0 && g == 0 && b == 0){
apspijkerman 0:5e04d85f928a 222 serial.printf("!s;"); // black
apspijkerman 0:5e04d85f928a 223 }else{
apspijkerman 0:5e04d85f928a 224 //buf.clear();
apspijkerman 0:5e04d85f928a 225 //buf.append("!sb"); // fast binary method .. so values <= 255
apspijkerman 0:5e04d85f928a 226 //buf.append((char) 3 ); // write 3 bytes
apspijkerman 0:5e04d85f928a 227 //buf.append((char) r );
apspijkerman 0:5e04d85f928a 228 //buf.append((char) g );
apspijkerman 0:5e04d85f928a 229 //buf.append((char) b );
apspijkerman 0:5e04d85f928a 230 //buf.append(";" );
apspijkerman 0:5e04d85f928a 231 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 232
apspijkerman 0:5e04d85f928a 233 serial.printf("!sb%c%c%c%c;", 3, r, g, b );
apspijkerman 0:5e04d85f928a 234 }
apspijkerman 0:5e04d85f928a 235 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 236 }
apspijkerman 0:5e04d85f928a 237
apspijkerman 0:5e04d85f928a 238
apspijkerman 0:5e04d85f928a 239 void Stampdock::SetGrey(int g)
apspijkerman 0:5e04d85f928a 240 {
apspijkerman 0:5e04d85f928a 241 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5e04d85f928a 242
apspijkerman 0:5e04d85f928a 243 // DEBUG "!fb", 1, dat, ";"
apspijkerman 0:5e04d85f928a 244
apspijkerman 0:5e04d85f928a 245 if (g == 0){
apspijkerman 0:5e04d85f928a 246 //System.out.print("!f;"); // black
apspijkerman 0:5e04d85f928a 247 serial.printf("!f;"); // black
apspijkerman 0:5e04d85f928a 248 }else{
apspijkerman 0:5e04d85f928a 249 //buf.clear();
apspijkerman 0:5e04d85f928a 250 //buf.append("!fb"); // fast binary method .. so values <= 255
apspijkerman 0:5e04d85f928a 251 //buf.append((char) 1 ); // write 3 bytes
apspijkerman 0:5e04d85f928a 252 //buf.append((char) g );
apspijkerman 0:5e04d85f928a 253 //buf.append(";" );
apspijkerman 0:5e04d85f928a 254 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 255
apspijkerman 0:5e04d85f928a 256
apspijkerman 0:5e04d85f928a 257 serial.printf("!sf%c%c;", 1, g );
apspijkerman 0:5e04d85f928a 258 }
apspijkerman 0:5e04d85f928a 259 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 260 }
apspijkerman 0:5e04d85f928a 261
apspijkerman 0:5e04d85f928a 262
apspijkerman 0:5e04d85f928a 263
apspijkerman 0:5e04d85f928a 264 void Stampdock::SetLED(int i, int r, int g, int b)
apspijkerman 0:5e04d85f928a 265 {
apspijkerman 0:5e04d85f928a 266 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5e04d85f928a 267
apspijkerman 0:5e04d85f928a 268 //buf.clear();
apspijkerman 0:5e04d85f928a 269 //buf.append("!jb"); // fast binary method .. so values <= 255
apspijkerman 0:5e04d85f928a 270 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:5e04d85f928a 271 //buf.append((char) i );
apspijkerman 0:5e04d85f928a 272 //buf.append((char) r );
apspijkerman 0:5e04d85f928a 273 //buf.append((char) g );
apspijkerman 0:5e04d85f928a 274 //buf.append((char) b );
apspijkerman 0:5e04d85f928a 275 //buf.append(";" );
apspijkerman 0:5e04d85f928a 276 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 277
apspijkerman 0:5e04d85f928a 278 serial.printf("!jb%c%c%c%c%c;", 4, i, r, g, b );
apspijkerman 0:5e04d85f928a 279
apspijkerman 0:5e04d85f928a 280 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 281 }
apspijkerman 0:5e04d85f928a 282
apspijkerman 0:5e04d85f928a 283 void Stampdock::DrawLine(int x1, int y1, int x2, int y2)
apspijkerman 0:5e04d85f928a 284 {
apspijkerman 0:5e04d85f928a 285 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:5e04d85f928a 286
apspijkerman 0:5e04d85f928a 287 //if (x1 < 0) x1 = 0;
apspijkerman 0:5e04d85f928a 288 //if (y1 < 0) y1 = 0;
apspijkerman 0:5e04d85f928a 289 //if (x2 < 0) x2 = 0;
apspijkerman 0:5e04d85f928a 290 //if (y2 < 0) y2 = 0;
apspijkerman 0:5e04d85f928a 291
apspijkerman 0:5e04d85f928a 292 //buf.clear();
apspijkerman 0:5e04d85f928a 293 if (x1 >= 0 && x1 <= 255 && y1 >= 0 && y1 <= 255 && x2 >= 0 && x2 <= 255 && y2
apspijkerman 0:5e04d85f928a 294
apspijkerman 0:5e04d85f928a 295 >= 0 && x2 <= 255){
apspijkerman 0:5e04d85f928a 296 //buf.append("!lb"); // fast binary method
apspijkerman 0:5e04d85f928a 297 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:5e04d85f928a 298 //buf.append((char) x1 );
apspijkerman 0:5e04d85f928a 299 //buf.append((char) y1 );
apspijkerman 0:5e04d85f928a 300 //buf.append((char) x2 );
apspijkerman 0:5e04d85f928a 301 //buf.append((char) y2 );
apspijkerman 0:5e04d85f928a 302
apspijkerman 0:5e04d85f928a 303 serial.printf("!lb%c%c%c%c%c;", 4, x1, y1, x2, y2 );
apspijkerman 0:5e04d85f928a 304 }else{
apspijkerman 0:5e04d85f928a 305 //buf.append("!l"); // slow method .. so values > 255
apspijkerman 0:5e04d85f928a 306 //buf.append( x1 );
apspijkerman 0:5e04d85f928a 307 //buf.append("," );
apspijkerman 0:5e04d85f928a 308 //buf.append( y1 );
apspijkerman 0:5e04d85f928a 309 //buf.append("," );
apspijkerman 0:5e04d85f928a 310 //buf.append( x2 );
apspijkerman 0:5e04d85f928a 311 //buf.append("," );
apspijkerman 0:5e04d85f928a 312 //buf.append( y2 );
apspijkerman 0:5e04d85f928a 313
apspijkerman 0:5e04d85f928a 314 serial.printf("!l%d,%d,%d,%d;", x1, y1, x2, y2);
apspijkerman 0:5e04d85f928a 315 }
apspijkerman 0:5e04d85f928a 316 //buf.append(";" );
apspijkerman 0:5e04d85f928a 317 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 318
apspijkerman 0:5e04d85f928a 319 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 320 }
apspijkerman 0:5e04d85f928a 321
apspijkerman 0:5e04d85f928a 322 void Stampdock::Plot(int x, int y)
apspijkerman 0:5e04d85f928a 323 {
apspijkerman 0:5e04d85f928a 324 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:5e04d85f928a 325
apspijkerman 0:5e04d85f928a 326 //if (x < 0) x = 0;
apspijkerman 0:5e04d85f928a 327 //if (y < 0) y = 0;
apspijkerman 0:5e04d85f928a 328
apspijkerman 0:5e04d85f928a 329 //buf.clear();
apspijkerman 0:5e04d85f928a 330 if (x >= 0 && x <= 255 && y >= 0 && y <= 255){
apspijkerman 0:5e04d85f928a 331 //buf.append("!pb"); // fast method .. so values <= 255
apspijkerman 0:5e04d85f928a 332 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:5e04d85f928a 333 //buf.append((char) x );
apspijkerman 0:5e04d85f928a 334 //buf.append((char) y );
apspijkerman 0:5e04d85f928a 335
apspijkerman 0:5e04d85f928a 336 serial.printf("!pb%c%c%c;", 2, x, y);
apspijkerman 0:5e04d85f928a 337 }else{
apspijkerman 0:5e04d85f928a 338 //buf.append("!p"); // slow method .. so values > 255
apspijkerman 0:5e04d85f928a 339 //buf.append( x );
apspijkerman 0:5e04d85f928a 340 //buf.append("," );
apspijkerman 0:5e04d85f928a 341 //buf.append( y );
apspijkerman 0:5e04d85f928a 342
apspijkerman 0:5e04d85f928a 343 serial.printf("!p%d,%d;", x, y);
apspijkerman 0:5e04d85f928a 344 }
apspijkerman 0:5e04d85f928a 345 //buf.append(";" );
apspijkerman 0:5e04d85f928a 346 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 347
apspijkerman 0:5e04d85f928a 348 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 349 }
apspijkerman 0:5e04d85f928a 350
apspijkerman 0:5e04d85f928a 351
apspijkerman 0:5e04d85f928a 352 void Stampdock::DrawGrid(int a, int b, int c, int d, int e, int f)
apspijkerman 0:5e04d85f928a 353 {
apspijkerman 0:5e04d85f928a 354 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:5e04d85f928a 355
apspijkerman 0:5e04d85f928a 356 //buf.clear();
apspijkerman 0:5e04d85f928a 357 //buf.append("!ab"); // fast binary method
apspijkerman 0:5e04d85f928a 358 //buf.append((char) 6 ); // write 6 bytes
apspijkerman 0:5e04d85f928a 359 //buf.append((char) a ); // xspace
apspijkerman 0:5e04d85f928a 360 //buf.append((char) b ); // yspace
apspijkerman 0:5e04d85f928a 361 //buf.append((char) c ); // xlines
apspijkerman 0:5e04d85f928a 362 //buf.append((char) d ); // ylines
apspijkerman 0:5e04d85f928a 363 //buf.append((char) e ); // xoffset
apspijkerman 0:5e04d85f928a 364 //buf.append((char) f ); // yoffset
apspijkerman 0:5e04d85f928a 365 //buf.append(";" );
apspijkerman 0:5e04d85f928a 366 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 367
apspijkerman 0:5e04d85f928a 368 serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:5e04d85f928a 369
apspijkerman 0:5e04d85f928a 370 //CPU.delay(1); // ??
apspijkerman 0:5e04d85f928a 371 }
apspijkerman 0:5e04d85f928a 372
apspijkerman 0:5e04d85f928a 373 void Stampdock::ClearScreen(void)
apspijkerman 0:5e04d85f928a 374 {
apspijkerman 0:5e04d85f928a 375 serial.printf("!c;");
apspijkerman 0:5e04d85f928a 376 }
apspijkerman 0:5e04d85f928a 377
apspijkerman 0:5e04d85f928a 378 // shortcut: Cmd("!c;"); or Cmd("?O;");
apspijkerman 0:5e04d85f928a 379
apspijkerman 0:5e04d85f928a 380 void Stampdock::Cmd(char *p)
apspijkerman 0:5e04d85f928a 381 {
apspijkerman 0:5e04d85f928a 382 serial.printf(p);
apspijkerman 0:5e04d85f928a 383 }
apspijkerman 0:5e04d85f928a 384
apspijkerman 0:5e04d85f928a 385 // for "!nSpeech;" or "!Llog file;"
apspijkerman 0:5e04d85f928a 386
apspijkerman 0:5e04d85f928a 387 void Stampdock::CmdStr(char cmd, char *p )
apspijkerman 0:5e04d85f928a 388 {
apspijkerman 0:5e04d85f928a 389 //buf.clear();
apspijkerman 0:5e04d85f928a 390 //buf.append("!");
apspijkerman 0:5e04d85f928a 391 //buf.append( cmd );
apspijkerman 0:5e04d85f928a 392 //buf.append( p );
apspijkerman 0:5e04d85f928a 393 //buf.append(";" );
apspijkerman 0:5e04d85f928a 394 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 395
apspijkerman 0:5e04d85f928a 396 serial.printf("!%c%s;", cmd, p);
apspijkerman 0:5e04d85f928a 397 }
apspijkerman 0:5e04d85f928a 398
apspijkerman 0:5e04d85f928a 399 // cmd with no argument so Cmd0('s'); = "!s;"
apspijkerman 0:5e04d85f928a 400
apspijkerman 0:5e04d85f928a 401 void Stampdock::Cmd0(char cmd )
apspijkerman 0:5e04d85f928a 402 {
apspijkerman 0:5e04d85f928a 403 //buf.clear();
apspijkerman 0:5e04d85f928a 404 //buf.append("!");
apspijkerman 0:5e04d85f928a 405 //buf.append( cmd );
apspijkerman 0:5e04d85f928a 406 //buf.append(";" );
apspijkerman 0:5e04d85f928a 407 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 408
apspijkerman 0:5e04d85f928a 409 serial.printf("!%c;", cmd);
apspijkerman 0:5e04d85f928a 410 }
apspijkerman 0:5e04d85f928a 411
apspijkerman 0:5e04d85f928a 412 // request with no arguments
apspijkerman 0:5e04d85f928a 413 // Req0( 'm' ); = "?m;"
apspijkerman 0:5e04d85f928a 414
apspijkerman 0:5e04d85f928a 415 void Stampdock::Req0(char req )
apspijkerman 0:5e04d85f928a 416 {
apspijkerman 0:5e04d85f928a 417 //buf.clear();
apspijkerman 0:5e04d85f928a 418 //buf.append("?");
apspijkerman 0:5e04d85f928a 419 //buf.append( req );
apspijkerman 0:5e04d85f928a 420 //buf.append(";" );
apspijkerman 0:5e04d85f928a 421 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 422
apspijkerman 0:5e04d85f928a 423 serial.printf("?%c;", req );
apspijkerman 0:5e04d85f928a 424 }
apspijkerman 0:5e04d85f928a 425
apspijkerman 0:5e04d85f928a 426 // cmd with 1 arg Cmd1('a' , 1 ); = "!a1;"
apspijkerman 0:5e04d85f928a 427
apspijkerman 0:5e04d85f928a 428 void Stampdock::Cmd1(char cmd, int arg1 )
apspijkerman 0:5e04d85f928a 429 {
apspijkerman 0:5e04d85f928a 430 //buf.clear();
apspijkerman 0:5e04d85f928a 431 //buf.append("!");
apspijkerman 0:5e04d85f928a 432 //buf.append( cmd );
apspijkerman 0:5e04d85f928a 433 if (arg1 < 256){
apspijkerman 0:5e04d85f928a 434 //buf.append( 'b' ); // binary mode
apspijkerman 0:5e04d85f928a 435 //buf.append((char) 1 ); // 1 argument
apspijkerman 0:5e04d85f928a 436 //buf.append((char) arg1 );
apspijkerman 0:5e04d85f928a 437
apspijkerman 0:5e04d85f928a 438 serial.printf("!%cb%c%c;", cmd, 1, arg1 );
apspijkerman 0:5e04d85f928a 439 }else{
apspijkerman 0:5e04d85f928a 440 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5e04d85f928a 441
apspijkerman 0:5e04d85f928a 442 serial.printf("!%c%d;", cmd, arg1 );
apspijkerman 0:5e04d85f928a 443 }
apspijkerman 0:5e04d85f928a 444 //buf.append(";" );
apspijkerman 0:5e04d85f928a 445 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 446 }
apspijkerman 0:5e04d85f928a 447
apspijkerman 0:5e04d85f928a 448 // cmd with 2 args Cmd2('G', 20, 1); = "!G20,1;"
apspijkerman 0:5e04d85f928a 449 // plot = Cmd2( 'p', x, y );
apspijkerman 0:5e04d85f928a 450
apspijkerman 0:5e04d85f928a 451 void Stampdock::Cmd2(char cmd, int arg1, int arg2 )
apspijkerman 0:5e04d85f928a 452 {
apspijkerman 0:5e04d85f928a 453 //buf.clear();
apspijkerman 0:5e04d85f928a 454 //buf.append("!" ); // !
apspijkerman 0:5e04d85f928a 455 //buf.append( cmd );
apspijkerman 0:5e04d85f928a 456 if (arg1 < 255 && arg2 < 255){
apspijkerman 0:5e04d85f928a 457 //buf.append( 'b' ); // binary mode
apspijkerman 0:5e04d85f928a 458 //buf.append((char) 2 ); // 2 arguments
apspijkerman 0:5e04d85f928a 459 //buf.append((char) arg1 );
apspijkerman 0:5e04d85f928a 460 //buf.append((char) arg2 );
apspijkerman 0:5e04d85f928a 461
apspijkerman 0:5e04d85f928a 462 serial.printf("!%cb%c%c%c;", cmd, 2, arg1, arg2 );
apspijkerman 0:5e04d85f928a 463 }else{
apspijkerman 0:5e04d85f928a 464 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5e04d85f928a 465 //buf.append("," );
apspijkerman 0:5e04d85f928a 466 //buf.append( arg2 );
apspijkerman 0:5e04d85f928a 467
apspijkerman 0:5e04d85f928a 468 serial.printf("!%c%d,%d;", cmd, arg1, arg2 );
apspijkerman 0:5e04d85f928a 469 }
apspijkerman 0:5e04d85f928a 470 //buf.append(";" );
apspijkerman 0:5e04d85f928a 471 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 472 }
apspijkerman 0:5e04d85f928a 473
apspijkerman 0:5e04d85f928a 474 // cmd with 3 args
apspijkerman 0:5e04d85f928a 475 // setcolor = Cmd3( 's', r, g, b );
apspijkerman 0:5e04d85f928a 476
apspijkerman 0:5e04d85f928a 477 void Stampdock::Cmd3(char cmd, int arg1, int arg2, int arg3 )
apspijkerman 0:5e04d85f928a 478 {
apspijkerman 0:5e04d85f928a 479 //buf.clear();
apspijkerman 0:5e04d85f928a 480 //buf.append("!" ); // !
apspijkerman 0:5e04d85f928a 481 //buf.append( cmd );
apspijkerman 0:5e04d85f928a 482 if (arg1 < 255 && arg2 < 255 && arg3 < 255){
apspijkerman 0:5e04d85f928a 483 //buf.append( 'b' ); // binary mode
apspijkerman 0:5e04d85f928a 484 //buf.append((char) 3 ); // 3 arguments
apspijkerman 0:5e04d85f928a 485 //buf.append((char) arg1 );
apspijkerman 0:5e04d85f928a 486 //buf.append((char) arg2 );
apspijkerman 0:5e04d85f928a 487 //buf.append((char) arg3 );
apspijkerman 0:5e04d85f928a 488
apspijkerman 0:5e04d85f928a 489 serial.printf("!%cb%c%c%c%c;", cmd, 3, arg1, arg2, arg3 );
apspijkerman 0:5e04d85f928a 490 }else{
apspijkerman 0:5e04d85f928a 491 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5e04d85f928a 492 //buf.append("," );
apspijkerman 0:5e04d85f928a 493 //buf.append( arg2 );
apspijkerman 0:5e04d85f928a 494 //buf.append("," );
apspijkerman 0:5e04d85f928a 495 //buf.append( arg3 );
apspijkerman 0:5e04d85f928a 496
apspijkerman 0:5e04d85f928a 497 serial.printf("!%c%d,%d,%d;", cmd, arg1, arg2, arg3 );
apspijkerman 0:5e04d85f928a 498 }
apspijkerman 0:5e04d85f928a 499 //buf.append(";" );
apspijkerman 0:5e04d85f928a 500 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 501 }
apspijkerman 0:5e04d85f928a 502
apspijkerman 0:5e04d85f928a 503 // cmd with 4 args
apspijkerman 0:5e04d85f928a 504 // line = Cmd4( 'l', x1, y1, x2, y2);
apspijkerman 0:5e04d85f928a 505
apspijkerman 0:5e04d85f928a 506 void Stampdock::Cmd4(char cmd, int arg1, int arg2, int arg3, int arg4 )
apspijkerman 0:5e04d85f928a 507 {
apspijkerman 0:5e04d85f928a 508 //buf.clear();
apspijkerman 0:5e04d85f928a 509 //buf.append("!" ); // !
apspijkerman 0:5e04d85f928a 510 //buf.append( cmd );
apspijkerman 0:5e04d85f928a 511 if (arg1 < 255 && arg2 < 255 && arg3 < 255 && arg4 < 255){
apspijkerman 0:5e04d85f928a 512 //buf.append( 'b' ); // binary mode
apspijkerman 0:5e04d85f928a 513 //buf.append((char) 4 ); // 4 arguments
apspijkerman 0:5e04d85f928a 514 //buf.append((char) arg1 );
apspijkerman 0:5e04d85f928a 515 //buf.append((char) arg2 );
apspijkerman 0:5e04d85f928a 516 //buf.append((char) arg3 );
apspijkerman 0:5e04d85f928a 517 //buf.append((char) arg4 );
apspijkerman 0:5e04d85f928a 518
apspijkerman 0:5e04d85f928a 519 serial.printf("!%cb%c%c%c%c%c;", cmd, 4, arg1, arg2, arg3, arg4 );
apspijkerman 0:5e04d85f928a 520 }else{
apspijkerman 0:5e04d85f928a 521 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5e04d85f928a 522 //buf.append("," );
apspijkerman 0:5e04d85f928a 523 //buf.append( arg2 );
apspijkerman 0:5e04d85f928a 524 //buf.append("," );
apspijkerman 0:5e04d85f928a 525 //buf.append( arg3 );
apspijkerman 0:5e04d85f928a 526 //buf.append("," );
apspijkerman 0:5e04d85f928a 527 //buf.append( arg4 );
apspijkerman 0:5e04d85f928a 528
apspijkerman 0:5e04d85f928a 529 serial.printf("!%c%d,%d,%d,%d;", cmd, arg1, arg2, arg3, arg4 );
apspijkerman 0:5e04d85f928a 530 }
apspijkerman 0:5e04d85f928a 531 //buf.append(";" );
apspijkerman 0:5e04d85f928a 532 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 533 }
apspijkerman 0:5e04d85f928a 534
apspijkerman 0:5e04d85f928a 535 // play video, mp3 or picture
apspijkerman 0:5e04d85f928a 536
apspijkerman 0:5e04d85f928a 537 void Stampdock::Media(char *p)
apspijkerman 0:5e04d85f928a 538 {
apspijkerman 0:5e04d85f928a 539 //buf.clear();
apspijkerman 0:5e04d85f928a 540 //buf.append("!V");
apspijkerman 0:5e04d85f928a 541 //buf.append( p );
apspijkerman 0:5e04d85f928a 542 //buf.append(";" );
apspijkerman 0:5e04d85f928a 543 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 544
apspijkerman 0:5e04d85f928a 545 serial.printf("!V%s;", p);
apspijkerman 0:5e04d85f928a 546 }
apspijkerman 0:5e04d85f928a 547
apspijkerman 0:5e04d85f928a 548 void Stampdock::Speech(char *p)
apspijkerman 0:5e04d85f928a 549 {
apspijkerman 0:5e04d85f928a 550 //buf.clear();
apspijkerman 0:5e04d85f928a 551 //buf.append("!n");
apspijkerman 0:5e04d85f928a 552 //buf.append( p );
apspijkerman 0:5e04d85f928a 553 //buf.append(";" );
apspijkerman 0:5e04d85f928a 554 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 555
apspijkerman 0:5e04d85f928a 556 serial.printf("!n%s;", p);
apspijkerman 0:5e04d85f928a 557 }
apspijkerman 0:5e04d85f928a 558
apspijkerman 0:5e04d85f928a 559 void Stampdock::Log(char *p)
apspijkerman 0:5e04d85f928a 560 {
apspijkerman 0:5e04d85f928a 561 //buf.clear();
apspijkerman 0:5e04d85f928a 562 //buf.append("!L");
apspijkerman 0:5e04d85f928a 563 //buf.append( p );
apspijkerman 0:5e04d85f928a 564 //buf.append(";" );
apspijkerman 0:5e04d85f928a 565 //System.out.print(buf.toString());
apspijkerman 0:5e04d85f928a 566
apspijkerman 0:5e04d85f928a 567 serial.printf("!L%s;", p);
apspijkerman 0:5e04d85f928a 568 }
apspijkerman 0:5e04d85f928a 569
apspijkerman 0:5e04d85f928a 570 void Stampdock::ScrollLeft()
apspijkerman 0:5e04d85f928a 571 {
apspijkerman 0:5e04d85f928a 572 serial.printf("!G20,1;");
apspijkerman 0:5e04d85f928a 573 }
apspijkerman 0:5e04d85f928a 574
apspijkerman 0:5e04d85f928a 575
apspijkerman 0:5e04d85f928a 576
apspijkerman 0:5e04d85f928a 577
apspijkerman 0:5e04d85f928a 578
apspijkerman 0:5e04d85f928a 579
apspijkerman 0:5e04d85f928a 580
apspijkerman 0:5e04d85f928a 581