Dependencies:   mbed

Committer:
apspijkerman
Date:
Thu Jul 28 11:08:04 2011 +0000
Revision:
0:5b5830ede960

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apspijkerman 0:5b5830ede960 1
apspijkerman 0:5b5830ede960 2 #include "mbed.h"
apspijkerman 0:5b5830ede960 3 #include "stampdock.h"
apspijkerman 0:5b5830ede960 4 #include <stdarg.h> // var_args
apspijkerman 0:5b5830ede960 5
apspijkerman 0:5b5830ede960 6 Serial serial(USBTX, USBRX); // tx, rx default 9600 8N1
apspijkerman 0:5b5830ede960 7
apspijkerman 0:5b5830ede960 8 //stampdock *stampdock::instance;
apspijkerman 0:5b5830ede960 9
apspijkerman 0:5b5830ede960 10 // millisecs
apspijkerman 0:5b5830ede960 11
apspijkerman 0:5b5830ede960 12 void qwait(int v)
apspijkerman 0:5b5830ede960 13 {
apspijkerman 0:5b5830ede960 14 #ifdef qmbed
apspijkerman 0:5b5830ede960 15 // wait(1000*v); // 0.001
apspijkerman 0:5b5830ede960 16 wait_ms(v);
apspijkerman 0:5b5830ede960 17 #endif
apspijkerman 0:5b5830ede960 18 #ifdef qarduino
apspijkerman 0:5b5830ede960 19
apspijkerman 0:5b5830ede960 20 #endif
apspijkerman 0:5b5830ede960 21 #ifdef qlpcxpresso
apspijkerman 0:5b5830ede960 22 vTaskDelay(configTICK_RATE_HZ * v / 1000);
apspijkerman 0:5b5830ede960 23 #endif
apspijkerman 0:5b5830ede960 24 }
apspijkerman 0:5b5830ede960 25
apspijkerman 0:5b5830ede960 26
apspijkerman 0:5b5830ede960 27 // pinhigh, pinlow, togglepin
apspijkerman 0:5b5830ede960 28 // pinin, pinout, readpin
apspijkerman 0:5b5830ede960 29 // AnalogIn()
apspijkerman 0:5b5830ede960 30
apspijkerman 0:5b5830ede960 31 Stampdock::Stampdock(void)
apspijkerman 0:5b5830ede960 32 {
apspijkerman 0:5b5830ede960 33
apspijkerman 0:5b5830ede960 34 #ifdef qmbed
apspijkerman 0:5b5830ede960 35 //serial.baud(9600); // causes error
apspijkerman 0:5b5830ede960 36 //serial.baud(19200);
apspijkerman 0:5b5830ede960 37 //serial.baud(38400);
apspijkerman 0:5b5830ede960 38 //serial.baud(57600);
apspijkerman 0:5b5830ede960 39 //serial.baud(115200);
apspijkerman 0:5b5830ede960 40 //serial.format(8,None,1);
apspijkerman 0:5b5830ede960 41 #endif
apspijkerman 0:5b5830ede960 42 #ifdef qarduino
apspijkerman 0:5b5830ede960 43 serial.begin( 9600 );
apspijkerman 0:5b5830ede960 44 #endif
apspijkerman 0:5b5830ede960 45
apspijkerman 0:5b5830ede960 46 }
apspijkerman 0:5b5830ede960 47
apspijkerman 0:5b5830ede960 48 Stampdock::~Stampdock(void)
apspijkerman 0:5b5830ede960 49 {
apspijkerman 0:5b5830ede960 50
apspijkerman 0:5b5830ede960 51 }
apspijkerman 0:5b5830ede960 52
apspijkerman 0:5b5830ede960 53
apspijkerman 0:5b5830ede960 54 int Stampdock::init(void)
apspijkerman 0:5b5830ede960 55 {
apspijkerman 0:5b5830ede960 56 // set baud ?
apspijkerman 0:5b5830ede960 57 return 0;
apspijkerman 0:5b5830ede960 58 }
apspijkerman 0:5b5830ede960 59
apspijkerman 0:5b5830ede960 60 int Stampdock::print(char *str)
apspijkerman 0:5b5830ede960 61 {
apspijkerman 0:5b5830ede960 62 /*
apspijkerman 0:5b5830ede960 63 while (!serial.writeable()){
apspijkerman 0:5b5830ede960 64 wait(0.001);
apspijkerman 0:5b5830ede960 65 }
apspijkerman 0:5b5830ede960 66
apspijkerman 0:5b5830ede960 67 serial.printf("%s", str);
apspijkerman 0:5b5830ede960 68 */
apspijkerman 0:5b5830ede960 69 unsigned char *p;
apspijkerman 0:5b5830ede960 70 int c, t, len, ready;
apspijkerman 0:5b5830ede960 71
apspijkerman 0:5b5830ede960 72 len = strlen(str);
apspijkerman 0:5b5830ede960 73
apspijkerman 0:5b5830ede960 74 p = (unsigned char *) &str[0];
apspijkerman 0:5b5830ede960 75 //p = buffer;
apspijkerman 0:5b5830ede960 76 t = 0;
apspijkerman 0:5b5830ede960 77 ready = 0;
apspijkerman 0:5b5830ede960 78
apspijkerman 0:5b5830ede960 79 if (len == 0) ready = 1;
apspijkerman 0:5b5830ede960 80
apspijkerman 0:5b5830ede960 81 while (!ready){
apspijkerman 0:5b5830ede960 82 if (!serial.writeable()){
apspijkerman 0:5b5830ede960 83 wait(0.001);
apspijkerman 0:5b5830ede960 84 }else{
apspijkerman 0:5b5830ede960 85 c = *p++; // (int) (char) ?
apspijkerman 0:5b5830ede960 86 //if (c < 0) c += 256;
apspijkerman 0:5b5830ede960 87 serial.putc( c );
apspijkerman 0:5b5830ede960 88 t++;
apspijkerman 0:5b5830ede960 89 if (t == len) ready = 1;
apspijkerman 0:5b5830ede960 90 }
apspijkerman 0:5b5830ede960 91 }
apspijkerman 0:5b5830ede960 92
apspijkerman 0:5b5830ede960 93 return len;
apspijkerman 0:5b5830ede960 94 }
apspijkerman 0:5b5830ede960 95
apspijkerman 0:5b5830ede960 96 int qprint(char *str);
apspijkerman 0:5b5830ede960 97 int qprint(char *str)
apspijkerman 0:5b5830ede960 98 {
apspijkerman 0:5b5830ede960 99 /*
apspijkerman 0:5b5830ede960 100 while (!serial.writeable()){
apspijkerman 0:5b5830ede960 101 wait(0.001);
apspijkerman 0:5b5830ede960 102 }
apspijkerman 0:5b5830ede960 103
apspijkerman 0:5b5830ede960 104 serial.printf("%s", str);
apspijkerman 0:5b5830ede960 105 */
apspijkerman 0:5b5830ede960 106 unsigned char *p;
apspijkerman 0:5b5830ede960 107 int c, t, len, ready;
apspijkerman 0:5b5830ede960 108
apspijkerman 0:5b5830ede960 109 len = strlen(str);
apspijkerman 0:5b5830ede960 110
apspijkerman 0:5b5830ede960 111 p = (unsigned char *) &str[0];
apspijkerman 0:5b5830ede960 112 //p = buffer;
apspijkerman 0:5b5830ede960 113 t = 0;
apspijkerman 0:5b5830ede960 114 ready = 0;
apspijkerman 0:5b5830ede960 115
apspijkerman 0:5b5830ede960 116 if (len == 0) ready = 1;
apspijkerman 0:5b5830ede960 117
apspijkerman 0:5b5830ede960 118 while (!ready){
apspijkerman 0:5b5830ede960 119 if (!serial.writeable()){
apspijkerman 0:5b5830ede960 120 wait(0.001);
apspijkerman 0:5b5830ede960 121 }else{
apspijkerman 0:5b5830ede960 122 c = *p++; // (int) (char) ?
apspijkerman 0:5b5830ede960 123 //if (c < 0) c += 256;
apspijkerman 0:5b5830ede960 124 serial.putc( c );
apspijkerman 0:5b5830ede960 125 t++;
apspijkerman 0:5b5830ede960 126 if (t == len) ready = 1;
apspijkerman 0:5b5830ede960 127 }
apspijkerman 0:5b5830ede960 128 }
apspijkerman 0:5b5830ede960 129
apspijkerman 0:5b5830ede960 130 return len;
apspijkerman 0:5b5830ede960 131 }
apspijkerman 0:5b5830ede960 132
apspijkerman 0:5b5830ede960 133 int Stampdock::printf(const char *fmt, ... )
apspijkerman 0:5b5830ede960 134 {
apspijkerman 0:5b5830ede960 135 va_list var_args;
apspijkerman 0:5b5830ede960 136 char string[80]; // char string[256];
apspijkerman 0:5b5830ede960 137 unsigned char *p;
apspijkerman 0:5b5830ede960 138 int len = 0, t, c, ready;
apspijkerman 0:5b5830ede960 139
apspijkerman 0:5b5830ede960 140 va_start(var_args, fmt);
apspijkerman 0:5b5830ede960 141 len = vsprintf(string, fmt, var_args);
apspijkerman 0:5b5830ede960 142 //len = vsprintf(buffer, fmt, var_args);
apspijkerman 0:5b5830ede960 143 va_end(var_args);
apspijkerman 0:5b5830ede960 144
apspijkerman 0:5b5830ede960 145 while (!serial.writeable()){
apspijkerman 0:5b5830ede960 146 wait(0.001);
apspijkerman 0:5b5830ede960 147 }
apspijkerman 0:5b5830ede960 148
apspijkerman 0:5b5830ede960 149 //serial.printf( string );
apspijkerman 0:5b5830ede960 150 //serial.printf( buffer );
apspijkerman 0:5b5830ede960 151 //serial.printf( "%s", string );
apspijkerman 0:5b5830ede960 152 //serial.printf( "%s", buffer );
apspijkerman 0:5b5830ede960 153 //wait(0.01);
apspijkerman 0:5b5830ede960 154
apspijkerman 0:5b5830ede960 155
apspijkerman 0:5b5830ede960 156 p = (unsigned char *) &string[0];
apspijkerman 0:5b5830ede960 157 //p = buffer;
apspijkerman 0:5b5830ede960 158 t = 0;
apspijkerman 0:5b5830ede960 159 ready = 0;
apspijkerman 0:5b5830ede960 160
apspijkerman 0:5b5830ede960 161 if (len == 0) ready = 1;
apspijkerman 0:5b5830ede960 162
apspijkerman 0:5b5830ede960 163 while (!ready){
apspijkerman 0:5b5830ede960 164 if (!serial.writeable()){
apspijkerman 0:5b5830ede960 165 wait(0.001);
apspijkerman 0:5b5830ede960 166 }else{
apspijkerman 0:5b5830ede960 167 c = *p++; // (int) (char) ?
apspijkerman 0:5b5830ede960 168 //if (c < 0) c += 256;
apspijkerman 0:5b5830ede960 169 serial.putc( c );
apspijkerman 0:5b5830ede960 170 t++;
apspijkerman 0:5b5830ede960 171 if (t == len) ready = 1;
apspijkerman 0:5b5830ede960 172 }
apspijkerman 0:5b5830ede960 173 }
apspijkerman 0:5b5830ede960 174
apspijkerman 0:5b5830ede960 175 //if (len > 60) serial.printf("-=%d.=-", len );
apspijkerman 0:5b5830ede960 176
apspijkerman 0:5b5830ede960 177 return len;
apspijkerman 0:5b5830ede960 178 }
apspijkerman 0:5b5830ede960 179
apspijkerman 0:5b5830ede960 180 int qprintf(const char *fmt, ... );
apspijkerman 0:5b5830ede960 181 int qprintf(const char *fmt, ... )
apspijkerman 0:5b5830ede960 182 {
apspijkerman 0:5b5830ede960 183 va_list var_args;
apspijkerman 0:5b5830ede960 184 char string[80]; // char string[256];
apspijkerman 0:5b5830ede960 185 unsigned char *p;
apspijkerman 0:5b5830ede960 186 int len = 0, t, c, ready;
apspijkerman 0:5b5830ede960 187
apspijkerman 0:5b5830ede960 188 va_start(var_args, fmt);
apspijkerman 0:5b5830ede960 189 len = vsprintf(string, fmt, var_args);
apspijkerman 0:5b5830ede960 190 //len = vsprintf(buffer, fmt, var_args);
apspijkerman 0:5b5830ede960 191 va_end(var_args);
apspijkerman 0:5b5830ede960 192
apspijkerman 0:5b5830ede960 193 while (!serial.writeable()){
apspijkerman 0:5b5830ede960 194 wait(0.001);
apspijkerman 0:5b5830ede960 195 }
apspijkerman 0:5b5830ede960 196
apspijkerman 0:5b5830ede960 197 //serial.printf( string );
apspijkerman 0:5b5830ede960 198 //serial.printf( buffer );
apspijkerman 0:5b5830ede960 199 //serial.printf( "%s", string );
apspijkerman 0:5b5830ede960 200 //serial.printf( "%s", buffer );
apspijkerman 0:5b5830ede960 201 //wait(0.01);
apspijkerman 0:5b5830ede960 202
apspijkerman 0:5b5830ede960 203
apspijkerman 0:5b5830ede960 204 p = (unsigned char *) &string[0];
apspijkerman 0:5b5830ede960 205 //p = buffer;
apspijkerman 0:5b5830ede960 206 t = 0;
apspijkerman 0:5b5830ede960 207 ready = 0;
apspijkerman 0:5b5830ede960 208
apspijkerman 0:5b5830ede960 209 if (len == 0) ready = 1;
apspijkerman 0:5b5830ede960 210
apspijkerman 0:5b5830ede960 211 while (!ready){
apspijkerman 0:5b5830ede960 212 if (!serial.writeable()){
apspijkerman 0:5b5830ede960 213 wait(0.001);
apspijkerman 0:5b5830ede960 214 }else{
apspijkerman 0:5b5830ede960 215 c = *p++; // (int) (char) ?
apspijkerman 0:5b5830ede960 216 //if (c < 0) c += 256;
apspijkerman 0:5b5830ede960 217 serial.putc( c );
apspijkerman 0:5b5830ede960 218 t++;
apspijkerman 0:5b5830ede960 219 if (t == len) ready = 1;
apspijkerman 0:5b5830ede960 220 }
apspijkerman 0:5b5830ede960 221 }
apspijkerman 0:5b5830ede960 222
apspijkerman 0:5b5830ede960 223 //if (len > 60) serial.printf("-=%d.=-", len );
apspijkerman 0:5b5830ede960 224
apspijkerman 0:5b5830ede960 225 return len;
apspijkerman 0:5b5830ede960 226 }
apspijkerman 0:5b5830ede960 227
apspijkerman 0:5b5830ede960 228
apspijkerman 0:5b5830ede960 229 int Stampdock::GetEvent(void)
apspijkerman 0:5b5830ede960 230 {
apspijkerman 0:5b5830ede960 231 int e = 0, c, ready = 0, cnt = 0;
apspijkerman 0:5b5830ede960 232 char v;
apspijkerman 0:5b5830ede960 233 // DEBUG "?Q;" 'query for events .. also sync with PC
apspijkerman 0:5b5830ede960 234 // SERIN 16, Baud, [x] '16468
apspijkerman 0:5b5830ede960 235 // PAUSE 1 ' millisecs .. let serial bus settle
apspijkerman 0:5b5830ede960 236
apspijkerman 0:5b5830ede960 237 //serial.printf("?Q;"); // query for event .. also sync with PC
apspijkerman 0:5b5830ede960 238 qprint("?Q;"); // query for event .. also sync with PC
apspijkerman 0:5b5830ede960 239 // qprint(" "); // fix
apspijkerman 0:5b5830ede960 240 //wait_ms(175);
apspijkerman 0:5b5830ede960 241
apspijkerman 0:5b5830ede960 242 //qprint("?i1;");
apspijkerman 0:5b5830ede960 243
apspijkerman 0:5b5830ede960 244 do{
apspijkerman 0:5b5830ede960 245 if (serial.readable()){
apspijkerman 0:5b5830ede960 246 //v = Serial.read();
apspijkerman 0:5b5830ede960 247 /*
apspijkerman 0:5b5830ede960 248 v = serial.getc();
apspijkerman 0:5b5830ede960 249 e = v;
apspijkerman 0:5b5830ede960 250 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:5b5830ede960 251 //e = (255-v) + 1; // 2's complement
apspijkerman 0:5b5830ede960 252 */
apspijkerman 0:5b5830ede960 253 e = serial.getc();
apspijkerman 0:5b5830ede960 254 if (e != 0) qprintf(".ID:%d.", e);
apspijkerman 0:5b5830ede960 255
apspijkerman 0:5b5830ede960 256 //serial.printf("EVENT:");
apspijkerman 0:5b5830ede960 257 //serial.printf(e);
apspijkerman 0:5b5830ede960 258 //serial.printf("<-");
apspijkerman 0:5b5830ede960 259 ready = 1;
apspijkerman 0:5b5830ede960 260 }else{
apspijkerman 0:5b5830ede960 261 //serial.printf("no event");
apspijkerman 0:5b5830ede960 262 wait(0.0001);
apspijkerman 0:5b5830ede960 263 cnt++;
apspijkerman 0:5b5830ede960 264 if (cnt == 1000) ready = 1;
apspijkerman 0:5b5830ede960 265 //Blink(0);
apspijkerman 0:5b5830ede960 266 }
apspijkerman 0:5b5830ede960 267 }while(!ready);
apspijkerman 0:5b5830ede960 268 //CPU.delay(10);
apspijkerman 0:5b5830ede960 269
apspijkerman 0:5b5830ede960 270 // .. flush out of sync events ..
apspijkerman 0:5b5830ede960 271 //while (serial.readable()){
apspijkerman 0:5b5830ede960 272 if (serial.readable()){
apspijkerman 0:5b5830ede960 273 // Serial.read();
apspijkerman 0:5b5830ede960 274 c = serial.getc();
apspijkerman 0:5b5830ede960 275 if (e == 0 && c != 0) e = c;
apspijkerman 0:5b5830ede960 276 if (e != 0) qprintf(".ID2:%d.", e);
apspijkerman 0:5b5830ede960 277 //Blink(1);
apspijkerman 0:5b5830ede960 278 }
apspijkerman 0:5b5830ede960 279
apspijkerman 0:5b5830ede960 280 if (serial.readable()){
apspijkerman 0:5b5830ede960 281 // Serial.read();
apspijkerman 0:5b5830ede960 282 c = serial.getc();
apspijkerman 0:5b5830ede960 283 if (e == 0 && c != 0) e = c;
apspijkerman 0:5b5830ede960 284 if (e != 0) qprintf(".ID3:%d.", e);
apspijkerman 0:5b5830ede960 285 //Blink(2);
apspijkerman 0:5b5830ede960 286 }
apspijkerman 0:5b5830ede960 287
apspijkerman 0:5b5830ede960 288 qprint(" "); // fix
apspijkerman 0:5b5830ede960 289 //wait_ms(175);
apspijkerman 0:5b5830ede960 290 return e;
apspijkerman 0:5b5830ede960 291 }
apspijkerman 0:5b5830ede960 292
apspijkerman 0:5b5830ede960 293 // request the state of GUI element i
apspijkerman 0:5b5830ede960 294
apspijkerman 0:5b5830ede960 295 int Stampdock::GetValue(int i)
apspijkerman 0:5b5830ede960 296 {
apspijkerman 0:5b5830ede960 297 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:5b5830ede960 298 char v;
apspijkerman 0:5b5830ede960 299 //StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5b5830ede960 300
apspijkerman 0:5b5830ede960 301 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:5b5830ede960 302 // SERIN 16, Baud, [s] '16468
apspijkerman 0:5b5830ede960 303 // PAUSE 1 ' millisecs
apspijkerman 0:5b5830ede960 304
apspijkerman 0:5b5830ede960 305 //serial.printf("?i"); // query for event
apspijkerman 0:5b5830ede960 306 //serial.printf(i);
apspijkerman 0:5b5830ede960 307 //serial.printf(";");
apspijkerman 0:5b5830ede960 308
apspijkerman 0:5b5830ede960 309 //buf.clear();
apspijkerman 0:5b5830ede960 310 //buf.append("?i");
apspijkerman 0:5b5830ede960 311 //buf.append( i );
apspijkerman 0:5b5830ede960 312 //buf.append(";");
apspijkerman 0:5b5830ede960 313 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 314
apspijkerman 0:5b5830ede960 315 //serial.printf("?i%d;", i );
apspijkerman 0:5b5830ede960 316 qprintf("?i%d;", i );
apspijkerman 0:5b5830ede960 317
apspijkerman 0:5b5830ede960 318 //wait(0.1); //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 319 do {
apspijkerman 0:5b5830ede960 320 if (serial.readable()){
apspijkerman 0:5b5830ede960 321 //v = Serial.read();
apspijkerman 0:5b5830ede960 322 /*
apspijkerman 0:5b5830ede960 323 v = serial.getc();
apspijkerman 0:5b5830ede960 324 e = v;
apspijkerman 0:5b5830ede960 325 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:5b5830ede960 326 //e = (255-v) + 1; // 2's complement
apspijkerman 0:5b5830ede960 327 */
apspijkerman 0:5b5830ede960 328 e = serial.getc();
apspijkerman 0:5b5830ede960 329
apspijkerman 0:5b5830ede960 330 ready = 1;
apspijkerman 0:5b5830ede960 331 }else{
apspijkerman 0:5b5830ede960 332 wait(0.0001);
apspijkerman 0:5b5830ede960 333 cnt++;
apspijkerman 0:5b5830ede960 334 if (cnt == 1000) ready = 1;
apspijkerman 0:5b5830ede960 335 }
apspijkerman 0:5b5830ede960 336 //CPU.delay(10);
apspijkerman 0:5b5830ede960 337 }while(!ready);
apspijkerman 0:5b5830ede960 338
apspijkerman 0:5b5830ede960 339 qprint(" "); // fix
apspijkerman 0:5b5830ede960 340
apspijkerman 0:5b5830ede960 341 return e;
apspijkerman 0:5b5830ede960 342 }
apspijkerman 0:5b5830ede960 343
apspijkerman 0:5b5830ede960 344 // set the state (v) of gui element i
apspijkerman 0:5b5830ede960 345
apspijkerman 0:5b5830ede960 346 void Stampdock::SetValue(int i, int v)
apspijkerman 0:5b5830ede960 347 {
apspijkerman 0:5b5830ede960 348 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:5b5830ede960 349
apspijkerman 0:5b5830ede960 350 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:5b5830ede960 351 // SERIN 16, Baud, [s] '16468
apspijkerman 0:5b5830ede960 352 // PAUSE 1 ' millisecs
apspijkerman 0:5b5830ede960 353
apspijkerman 0:5b5830ede960 354 //serial.printf("!i"); // set value
apspijkerman 0:5b5830ede960 355 //serial.printf(i);
apspijkerman 0:5b5830ede960 356 //serial.printf(",")
apspijkerman 0:5b5830ede960 357 //serial.printf(v);
apspijkerman 0:5b5830ede960 358 //serial.printf(";");
apspijkerman 0:5b5830ede960 359
apspijkerman 0:5b5830ede960 360 //buf.clear(); // slow ascii method to allow values > 255
apspijkerman 0:5b5830ede960 361 if (i <= 255){
apspijkerman 0:5b5830ede960 362 //buf.append("!ib"); // fast binary way
apspijkerman 0:5b5830ede960 363 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:5b5830ede960 364 //buf.append((char) i ); // write id
apspijkerman 0:5b5830ede960 365 //buf.append((char) v ); // always smaller als 256
apspijkerman 0:5b5830ede960 366
apspijkerman 0:5b5830ede960 367 //serial.printf("!ib%c%c%c;", 2 , i , v );
apspijkerman 0:5b5830ede960 368 qprintf("!ib%c%c%c;", 2 , i , v );
apspijkerman 0:5b5830ede960 369 }else{
apspijkerman 0:5b5830ede960 370 //buf.append("!i"); // slow ascii way
apspijkerman 0:5b5830ede960 371 //buf.append( i ); // in case ID greater as 255
apspijkerman 0:5b5830ede960 372 //buf.append(",");
apspijkerman 0:5b5830ede960 373 //buf.append( v );
apspijkerman 0:5b5830ede960 374
apspijkerman 0:5b5830ede960 375 //serial.printf("!i%d,%d;", i, v);
apspijkerman 0:5b5830ede960 376 qprintf("!i%d,%d;", i, v);
apspijkerman 0:5b5830ede960 377 }
apspijkerman 0:5b5830ede960 378 //buf.append(";");
apspijkerman 0:5b5830ede960 379 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 380
apspijkerman 0:5b5830ede960 381 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 382 }
apspijkerman 0:5b5830ede960 383
apspijkerman 0:5b5830ede960 384
apspijkerman 0:5b5830ede960 385 char Stampdock::ReadByte(void)
apspijkerman 0:5b5830ede960 386 {
apspijkerman 0:5b5830ede960 387 char v = 0, ready = 0, cnt = 0;
apspijkerman 0:5b5830ede960 388
apspijkerman 0:5b5830ede960 389 //wait(0.1);
apspijkerman 0:5b5830ede960 390 do {
apspijkerman 0:5b5830ede960 391 if (serial.readable()){
apspijkerman 0:5b5830ede960 392 //v = Serial.read();
apspijkerman 0:5b5830ede960 393 v = serial.getc();
apspijkerman 0:5b5830ede960 394
apspijkerman 0:5b5830ede960 395 //e = v;
apspijkerman 0:5b5830ede960 396 //if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:5b5830ede960 397 ready = 1;
apspijkerman 0:5b5830ede960 398 }else{
apspijkerman 0:5b5830ede960 399 wait(0.0001);
apspijkerman 0:5b5830ede960 400 cnt++;
apspijkerman 0:5b5830ede960 401 if (cnt == 1000) ready = 1;
apspijkerman 0:5b5830ede960 402 }
apspijkerman 0:5b5830ede960 403 }while(!ready);
apspijkerman 0:5b5830ede960 404 return v;
apspijkerman 0:5b5830ede960 405 }
apspijkerman 0:5b5830ede960 406
apspijkerman 0:5b5830ede960 407
apspijkerman 0:5b5830ede960 408 void Stampdock::SetColor(int r, int g, int b)
apspijkerman 0:5b5830ede960 409 {
apspijkerman 0:5b5830ede960 410 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5b5830ede960 411
apspijkerman 0:5b5830ede960 412 //serial.printf(" "); // flush test
apspijkerman 0:5b5830ede960 413
apspijkerman 0:5b5830ede960 414 //while (!serial.writeable()){
apspijkerman 0:5b5830ede960 415 // wait(0.001);
apspijkerman 0:5b5830ede960 416 //}
apspijkerman 0:5b5830ede960 417
apspijkerman 0:5b5830ede960 418 if (r == 0 && g == 0 && b == 0){
apspijkerman 0:5b5830ede960 419 //serial.printf("!s;"); // black
apspijkerman 0:5b5830ede960 420 qprint("!s;"); // black
apspijkerman 0:5b5830ede960 421 }else{
apspijkerman 0:5b5830ede960 422 //buf.clear();
apspijkerman 0:5b5830ede960 423 //buf.append("!sb"); // fast binary method .. so values <= 255
apspijkerman 0:5b5830ede960 424 //buf.append((char) 3 ); // write 3 bytes
apspijkerman 0:5b5830ede960 425 //buf.append((char) r );
apspijkerman 0:5b5830ede960 426 //buf.append((char) g );
apspijkerman 0:5b5830ede960 427 //buf.append((char) b );
apspijkerman 0:5b5830ede960 428 //buf.append(";" );
apspijkerman 0:5b5830ede960 429 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 430
apspijkerman 0:5b5830ede960 431 //serial.printf("!s%d,%d,%d;", r, g, b ); // slow ascii
apspijkerman 0:5b5830ede960 432 //serial.printf("!sb%c%c%c%c;", 3, r, g, b ); // fast binary
apspijkerman 0:5b5830ede960 433 qprintf("!sb%c%c%c%c;", 3, r, g, b ); // fast binary
apspijkerman 0:5b5830ede960 434 }
apspijkerman 0:5b5830ede960 435 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 436 }
apspijkerman 0:5b5830ede960 437
apspijkerman 0:5b5830ede960 438
apspijkerman 0:5b5830ede960 439 void Stampdock::SetGrey(int g)
apspijkerman 0:5b5830ede960 440 {
apspijkerman 0:5b5830ede960 441 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5b5830ede960 442
apspijkerman 0:5b5830ede960 443 // DEBUG "!fb", 1, dat, ";"
apspijkerman 0:5b5830ede960 444
apspijkerman 0:5b5830ede960 445 if (g == 0){
apspijkerman 0:5b5830ede960 446 //System.out.print("!f;"); // black
apspijkerman 0:5b5830ede960 447 //serial.printf("!f;"); // black
apspijkerman 0:5b5830ede960 448 qprint("!f;"); // black
apspijkerman 0:5b5830ede960 449 }else{
apspijkerman 0:5b5830ede960 450 //buf.clear();
apspijkerman 0:5b5830ede960 451 //buf.append("!fb"); // fast binary method .. so values <= 255
apspijkerman 0:5b5830ede960 452 //buf.append((char) 1 ); // write 3 bytes
apspijkerman 0:5b5830ede960 453 //buf.append((char) g );
apspijkerman 0:5b5830ede960 454 //buf.append(";" );
apspijkerman 0:5b5830ede960 455 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 456
apspijkerman 0:5b5830ede960 457 //serial.printf("!fb%c%c;", 1, g );
apspijkerman 0:5b5830ede960 458 qprintf("!fb%c%c;", 1, g );
apspijkerman 0:5b5830ede960 459 }
apspijkerman 0:5b5830ede960 460 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 461 }
apspijkerman 0:5b5830ede960 462
apspijkerman 0:5b5830ede960 463
apspijkerman 0:5b5830ede960 464
apspijkerman 0:5b5830ede960 465 void Stampdock::SetLED(int i, int r, int g, int b)
apspijkerman 0:5b5830ede960 466 {
apspijkerman 0:5b5830ede960 467 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:5b5830ede960 468
apspijkerman 0:5b5830ede960 469 //buf.clear();
apspijkerman 0:5b5830ede960 470 //buf.append("!jb"); // fast binary method .. so values <= 255
apspijkerman 0:5b5830ede960 471 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:5b5830ede960 472 //buf.append((char) i );
apspijkerman 0:5b5830ede960 473 //buf.append((char) r );
apspijkerman 0:5b5830ede960 474 //buf.append((char) g );
apspijkerman 0:5b5830ede960 475 //buf.append((char) b );
apspijkerman 0:5b5830ede960 476 //buf.append(";" );
apspijkerman 0:5b5830ede960 477 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 478
apspijkerman 0:5b5830ede960 479 //serial.printf("!jb%c%c%c%c%c;", 4, i, r, g, b );
apspijkerman 0:5b5830ede960 480 qprintf("!jb%c%c%c%c%c;", 4, i, r, g, b );
apspijkerman 0:5b5830ede960 481
apspijkerman 0:5b5830ede960 482 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 483 }
apspijkerman 0:5b5830ede960 484
apspijkerman 0:5b5830ede960 485 void Stampdock::DrawLine(int x1, int y1, int x2, int y2)
apspijkerman 0:5b5830ede960 486 {
apspijkerman 0:5b5830ede960 487 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:5b5830ede960 488
apspijkerman 0:5b5830ede960 489 //if (x1 < 0) x1 = 0;
apspijkerman 0:5b5830ede960 490 //if (y1 < 0) y1 = 0;
apspijkerman 0:5b5830ede960 491 //if (x2 < 0) x2 = 0;
apspijkerman 0:5b5830ede960 492 //if (y2 < 0) y2 = 0;
apspijkerman 0:5b5830ede960 493
apspijkerman 0:5b5830ede960 494 //buf.clear();
apspijkerman 0:5b5830ede960 495 if (x1 >= 0 && x1 <= 255 && y1 >= 0 && y1 <= 255 && x2 >= 0 && x2 <= 255 && y2
apspijkerman 0:5b5830ede960 496
apspijkerman 0:5b5830ede960 497 >= 0 && x2 <= 255){
apspijkerman 0:5b5830ede960 498 //buf.append("!lb"); // fast binary method
apspijkerman 0:5b5830ede960 499 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:5b5830ede960 500 //buf.append((char) x1 );
apspijkerman 0:5b5830ede960 501 //buf.append((char) y1 );
apspijkerman 0:5b5830ede960 502 //buf.append((char) x2 );
apspijkerman 0:5b5830ede960 503 //buf.append((char) y2 );
apspijkerman 0:5b5830ede960 504
apspijkerman 0:5b5830ede960 505 //serial.printf("!lb%c%c%c%c%c;", 4, x1, y1, x2, y2 );
apspijkerman 0:5b5830ede960 506 qprintf("!lb%c%c%c%c%c;", 4, x1, y1, x2, y2 );
apspijkerman 0:5b5830ede960 507 }else{
apspijkerman 0:5b5830ede960 508 //buf.append("!l"); // slow method .. so values > 255
apspijkerman 0:5b5830ede960 509 //buf.append( x1 );
apspijkerman 0:5b5830ede960 510 //buf.append("," );
apspijkerman 0:5b5830ede960 511 //buf.append( y1 );
apspijkerman 0:5b5830ede960 512 //buf.append("," );
apspijkerman 0:5b5830ede960 513 //buf.append( x2 );
apspijkerman 0:5b5830ede960 514 //buf.append("," );
apspijkerman 0:5b5830ede960 515 //buf.append( y2 );
apspijkerman 0:5b5830ede960 516
apspijkerman 0:5b5830ede960 517 //serial.printf("!l%d,%d,%d,%d;", x1, y1, x2, y2);
apspijkerman 0:5b5830ede960 518 qprintf("!l%d,%d,%d,%d;", x1, y1, x2, y2);
apspijkerman 0:5b5830ede960 519 }
apspijkerman 0:5b5830ede960 520 //buf.append(";" );
apspijkerman 0:5b5830ede960 521 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 522
apspijkerman 0:5b5830ede960 523 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 524 }
apspijkerman 0:5b5830ede960 525
apspijkerman 0:5b5830ede960 526 void Stampdock::Plot(int x, int y)
apspijkerman 0:5b5830ede960 527 {
apspijkerman 0:5b5830ede960 528 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:5b5830ede960 529
apspijkerman 0:5b5830ede960 530 //if (x < 0) x = 0;
apspijkerman 0:5b5830ede960 531 //if (y < 0) y = 0;
apspijkerman 0:5b5830ede960 532
apspijkerman 0:5b5830ede960 533 //buf.clear();
apspijkerman 0:5b5830ede960 534 if (x >= 0 && x <= 255 && y >= 0 && y <= 255){
apspijkerman 0:5b5830ede960 535 //buf.append("!pb"); // fast method .. so values <= 255
apspijkerman 0:5b5830ede960 536 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:5b5830ede960 537 //buf.append((char) x );
apspijkerman 0:5b5830ede960 538 //buf.append((char) y );
apspijkerman 0:5b5830ede960 539
apspijkerman 0:5b5830ede960 540 //serial.printf("!pb%c%c%c;", 2, x, y);
apspijkerman 0:5b5830ede960 541 qprintf("!pb%c%c%c;", 2, x, y);
apspijkerman 0:5b5830ede960 542 }else{
apspijkerman 0:5b5830ede960 543 //buf.append("!p"); // slow method .. so values > 255
apspijkerman 0:5b5830ede960 544 //buf.append( x );
apspijkerman 0:5b5830ede960 545 //buf.append("," );
apspijkerman 0:5b5830ede960 546 //buf.append( y );
apspijkerman 0:5b5830ede960 547
apspijkerman 0:5b5830ede960 548 //serial.printf("!p%d,%d;", x, y);
apspijkerman 0:5b5830ede960 549 qprintf("!p%d,%d;", x, y);
apspijkerman 0:5b5830ede960 550 }
apspijkerman 0:5b5830ede960 551 //buf.append(";" );
apspijkerman 0:5b5830ede960 552 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 553
apspijkerman 0:5b5830ede960 554 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 555 }
apspijkerman 0:5b5830ede960 556
apspijkerman 0:5b5830ede960 557
apspijkerman 0:5b5830ede960 558 void Stampdock::DrawGrid(int a, int b, int c, int d, int e, int f)
apspijkerman 0:5b5830ede960 559 {
apspijkerman 0:5b5830ede960 560 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:5b5830ede960 561
apspijkerman 0:5b5830ede960 562 //buf.clear();
apspijkerman 0:5b5830ede960 563 //buf.append("!ab"); // fast binary method
apspijkerman 0:5b5830ede960 564 //buf.append((char) 6 ); // write 6 bytes
apspijkerman 0:5b5830ede960 565 //buf.append((char) a ); // xspace
apspijkerman 0:5b5830ede960 566 //buf.append((char) b ); // yspace
apspijkerman 0:5b5830ede960 567 //buf.append((char) c ); // xlines
apspijkerman 0:5b5830ede960 568 //buf.append((char) d ); // ylines
apspijkerman 0:5b5830ede960 569 //buf.append((char) e ); // xoffset
apspijkerman 0:5b5830ede960 570 //buf.append((char) f ); // yoffset
apspijkerman 0:5b5830ede960 571 //buf.append(";" );
apspijkerman 0:5b5830ede960 572 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 573
apspijkerman 0:5b5830ede960 574 //serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:5b5830ede960 575 qprintf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:5b5830ede960 576
apspijkerman 0:5b5830ede960 577 //CPU.delay(1); // ??
apspijkerman 0:5b5830ede960 578 }
apspijkerman 0:5b5830ede960 579
apspijkerman 0:5b5830ede960 580 void Stampdock::ClearScreen(void)
apspijkerman 0:5b5830ede960 581 {
apspijkerman 0:5b5830ede960 582 //serial.printf("!c;");
apspijkerman 0:5b5830ede960 583 qprint("!c;");
apspijkerman 0:5b5830ede960 584 }
apspijkerman 0:5b5830ede960 585
apspijkerman 0:5b5830ede960 586 // shortcut: Cmd("!c;"); or Cmd("?O;");
apspijkerman 0:5b5830ede960 587
apspijkerman 0:5b5830ede960 588 void Stampdock::Cmd(char *p)
apspijkerman 0:5b5830ede960 589 {
apspijkerman 0:5b5830ede960 590 //serial.printf(p);
apspijkerman 0:5b5830ede960 591 qprintf(p);
apspijkerman 0:5b5830ede960 592 }
apspijkerman 0:5b5830ede960 593
apspijkerman 0:5b5830ede960 594 // for "!nSpeech;" or "!Llog file;"
apspijkerman 0:5b5830ede960 595
apspijkerman 0:5b5830ede960 596 void Stampdock::CmdStr(char cmd, char *p )
apspijkerman 0:5b5830ede960 597 {
apspijkerman 0:5b5830ede960 598 //buf.clear();
apspijkerman 0:5b5830ede960 599 //buf.append("!");
apspijkerman 0:5b5830ede960 600 //buf.append( cmd );
apspijkerman 0:5b5830ede960 601 //buf.append( p );
apspijkerman 0:5b5830ede960 602 //buf.append(";" );
apspijkerman 0:5b5830ede960 603 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 604
apspijkerman 0:5b5830ede960 605 //serial.printf("!%c%s;", cmd, p);
apspijkerman 0:5b5830ede960 606 qprintf("!%c%s;", cmd, p);
apspijkerman 0:5b5830ede960 607 }
apspijkerman 0:5b5830ede960 608
apspijkerman 0:5b5830ede960 609 // cmd with no argument so Cmd0('s'); = "!s;"
apspijkerman 0:5b5830ede960 610
apspijkerman 0:5b5830ede960 611 void Stampdock::Cmd0(char cmd )
apspijkerman 0:5b5830ede960 612 {
apspijkerman 0:5b5830ede960 613 //buf.clear();
apspijkerman 0:5b5830ede960 614 //buf.append("!");
apspijkerman 0:5b5830ede960 615 //buf.append( cmd );
apspijkerman 0:5b5830ede960 616 //buf.append(";" );
apspijkerman 0:5b5830ede960 617 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 618
apspijkerman 0:5b5830ede960 619 //serial.printf("!%c;", cmd);
apspijkerman 0:5b5830ede960 620 qprintf("!%c;", cmd);
apspijkerman 0:5b5830ede960 621 }
apspijkerman 0:5b5830ede960 622
apspijkerman 0:5b5830ede960 623 // request with no arguments
apspijkerman 0:5b5830ede960 624 // Req0( 'm' ); = "?m;"
apspijkerman 0:5b5830ede960 625
apspijkerman 0:5b5830ede960 626 void Stampdock::Req0(char req )
apspijkerman 0:5b5830ede960 627 {
apspijkerman 0:5b5830ede960 628 //buf.clear();
apspijkerman 0:5b5830ede960 629 //buf.append("?");
apspijkerman 0:5b5830ede960 630 //buf.append( req );
apspijkerman 0:5b5830ede960 631 //buf.append(";" );
apspijkerman 0:5b5830ede960 632 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 633
apspijkerman 0:5b5830ede960 634 //serial.printf("?%c;", req );
apspijkerman 0:5b5830ede960 635 qprintf("?%c;", req );
apspijkerman 0:5b5830ede960 636 }
apspijkerman 0:5b5830ede960 637
apspijkerman 0:5b5830ede960 638 // cmd with 1 arg Cmd1('a' , 1 ); = "!a1;"
apspijkerman 0:5b5830ede960 639
apspijkerman 0:5b5830ede960 640 void Stampdock::Cmd1(char cmd, int arg1 )
apspijkerman 0:5b5830ede960 641 {
apspijkerman 0:5b5830ede960 642 //buf.clear();
apspijkerman 0:5b5830ede960 643 //buf.append("!");
apspijkerman 0:5b5830ede960 644 //buf.append( cmd );
apspijkerman 0:5b5830ede960 645 if (arg1 < 256){
apspijkerman 0:5b5830ede960 646 //buf.append( 'b' ); // binary mode
apspijkerman 0:5b5830ede960 647 //buf.append((char) 1 ); // 1 argument
apspijkerman 0:5b5830ede960 648 //buf.append((char) arg1 );
apspijkerman 0:5b5830ede960 649
apspijkerman 0:5b5830ede960 650 //serial.printf("!%cb%c%c;", cmd, 1, arg1 );
apspijkerman 0:5b5830ede960 651 qprintf("!%cb%c%c;", cmd, 1, arg1 );
apspijkerman 0:5b5830ede960 652 }else{
apspijkerman 0:5b5830ede960 653 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5b5830ede960 654
apspijkerman 0:5b5830ede960 655 //serial.printf("!%c%d;", cmd, arg1 );
apspijkerman 0:5b5830ede960 656 qprintf("!%c%d;", cmd, arg1 );
apspijkerman 0:5b5830ede960 657 }
apspijkerman 0:5b5830ede960 658 //buf.append(";" );
apspijkerman 0:5b5830ede960 659 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 660 }
apspijkerman 0:5b5830ede960 661
apspijkerman 0:5b5830ede960 662 // cmd with 2 args Cmd2('G', 20, 1); = "!G20,1;"
apspijkerman 0:5b5830ede960 663 // plot = Cmd2( 'p', x, y );
apspijkerman 0:5b5830ede960 664
apspijkerman 0:5b5830ede960 665 void Stampdock::Cmd2(char cmd, int arg1, int arg2 )
apspijkerman 0:5b5830ede960 666 {
apspijkerman 0:5b5830ede960 667 //buf.clear();
apspijkerman 0:5b5830ede960 668 //buf.append("!" ); // !
apspijkerman 0:5b5830ede960 669 //buf.append( cmd );
apspijkerman 0:5b5830ede960 670 if (arg1 < 255 && arg2 < 255){
apspijkerman 0:5b5830ede960 671 //buf.append( 'b' ); // binary mode
apspijkerman 0:5b5830ede960 672 //buf.append((char) 2 ); // 2 arguments
apspijkerman 0:5b5830ede960 673 //buf.append((char) arg1 );
apspijkerman 0:5b5830ede960 674 //buf.append((char) arg2 );
apspijkerman 0:5b5830ede960 675
apspijkerman 0:5b5830ede960 676 //serial.printf("!%cb%c%c%c;", cmd, 2, arg1, arg2 );
apspijkerman 0:5b5830ede960 677 qprintf("!%cb%c%c%c;", cmd, 2, arg1, arg2 );
apspijkerman 0:5b5830ede960 678 }else{
apspijkerman 0:5b5830ede960 679 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5b5830ede960 680 //buf.append("," );
apspijkerman 0:5b5830ede960 681 //buf.append( arg2 );
apspijkerman 0:5b5830ede960 682
apspijkerman 0:5b5830ede960 683 //serial.printf("!%c%d,%d;", cmd, arg1, arg2 );
apspijkerman 0:5b5830ede960 684 qprintf("!%c%d,%d;", cmd, arg1, arg2 );
apspijkerman 0:5b5830ede960 685 }
apspijkerman 0:5b5830ede960 686 //buf.append(";" );
apspijkerman 0:5b5830ede960 687 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 688 }
apspijkerman 0:5b5830ede960 689
apspijkerman 0:5b5830ede960 690 // cmd with 3 args
apspijkerman 0:5b5830ede960 691 // setcolor = Cmd3( 's', r, g, b );
apspijkerman 0:5b5830ede960 692
apspijkerman 0:5b5830ede960 693 void Stampdock::Cmd3(char cmd, int arg1, int arg2, int arg3 )
apspijkerman 0:5b5830ede960 694 {
apspijkerman 0:5b5830ede960 695 //buf.clear();
apspijkerman 0:5b5830ede960 696 //buf.append("!" ); // !
apspijkerman 0:5b5830ede960 697 //buf.append( cmd );
apspijkerman 0:5b5830ede960 698 if (arg1 < 255 && arg2 < 255 && arg3 < 255){
apspijkerman 0:5b5830ede960 699 //buf.append( 'b' ); // binary mode
apspijkerman 0:5b5830ede960 700 //buf.append((char) 3 ); // 3 arguments
apspijkerman 0:5b5830ede960 701 //buf.append((char) arg1 );
apspijkerman 0:5b5830ede960 702 //buf.append((char) arg2 );
apspijkerman 0:5b5830ede960 703 //buf.append((char) arg3 );
apspijkerman 0:5b5830ede960 704
apspijkerman 0:5b5830ede960 705 //serial.printf("!%cb%c%c%c%c;", cmd, 3, arg1, arg2, arg3 );
apspijkerman 0:5b5830ede960 706 qprintf("!%cb%c%c%c%c;", cmd, 3, arg1, arg2, arg3 );
apspijkerman 0:5b5830ede960 707 }else{
apspijkerman 0:5b5830ede960 708 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5b5830ede960 709 //buf.append("," );
apspijkerman 0:5b5830ede960 710 //buf.append( arg2 );
apspijkerman 0:5b5830ede960 711 //buf.append("," );
apspijkerman 0:5b5830ede960 712 //buf.append( arg3 );
apspijkerman 0:5b5830ede960 713
apspijkerman 0:5b5830ede960 714 //serial.printf("!%c%d,%d,%d;", cmd, arg1, arg2, arg3 );
apspijkerman 0:5b5830ede960 715 qprintf("!%c%d,%d,%d;", cmd, arg1, arg2, arg3 );
apspijkerman 0:5b5830ede960 716 }
apspijkerman 0:5b5830ede960 717 //buf.append(";" );
apspijkerman 0:5b5830ede960 718 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 719 }
apspijkerman 0:5b5830ede960 720
apspijkerman 0:5b5830ede960 721 // cmd with 4 args
apspijkerman 0:5b5830ede960 722 // line = Cmd4( 'l', x1, y1, x2, y2);
apspijkerman 0:5b5830ede960 723
apspijkerman 0:5b5830ede960 724 void Stampdock::Cmd4(char cmd, int arg1, int arg2, int arg3, int arg4 )
apspijkerman 0:5b5830ede960 725 {
apspijkerman 0:5b5830ede960 726 //buf.clear();
apspijkerman 0:5b5830ede960 727 //buf.append("!" ); // !
apspijkerman 0:5b5830ede960 728 //buf.append( cmd );
apspijkerman 0:5b5830ede960 729 if (arg1 < 255 && arg2 < 255 && arg3 < 255 && arg4 < 255){
apspijkerman 0:5b5830ede960 730 //buf.append( 'b' ); // binary mode
apspijkerman 0:5b5830ede960 731 //buf.append((char) 4 ); // 4 arguments
apspijkerman 0:5b5830ede960 732 //buf.append((char) arg1 );
apspijkerman 0:5b5830ede960 733 //buf.append((char) arg2 );
apspijkerman 0:5b5830ede960 734 //buf.append((char) arg3 );
apspijkerman 0:5b5830ede960 735 //buf.append((char) arg4 );
apspijkerman 0:5b5830ede960 736
apspijkerman 0:5b5830ede960 737 //serial.printf("!%cb%c%c%c%c%c;", cmd, 4, arg1, arg2, arg3, arg4 );
apspijkerman 0:5b5830ede960 738 qprintf("!%cb%c%c%c%c%c;", cmd, 4, arg1, arg2, arg3, arg4 );
apspijkerman 0:5b5830ede960 739 }else{
apspijkerman 0:5b5830ede960 740 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:5b5830ede960 741 //buf.append("," );
apspijkerman 0:5b5830ede960 742 //buf.append( arg2 );
apspijkerman 0:5b5830ede960 743 //buf.append("," );
apspijkerman 0:5b5830ede960 744 //buf.append( arg3 );
apspijkerman 0:5b5830ede960 745 //buf.append("," );
apspijkerman 0:5b5830ede960 746 //buf.append( arg4 );
apspijkerman 0:5b5830ede960 747
apspijkerman 0:5b5830ede960 748 //serial.printf("!%c%d,%d,%d,%d;", cmd, arg1, arg2, arg3, arg4 );
apspijkerman 0:5b5830ede960 749 qprintf("!%c%d,%d,%d,%d;", cmd, arg1, arg2, arg3, arg4 );
apspijkerman 0:5b5830ede960 750 }
apspijkerman 0:5b5830ede960 751 //buf.append(";" );
apspijkerman 0:5b5830ede960 752 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 753 }
apspijkerman 0:5b5830ede960 754
apspijkerman 0:5b5830ede960 755 // play video, mp3 or picture
apspijkerman 0:5b5830ede960 756
apspijkerman 0:5b5830ede960 757 void Stampdock::Media(char *p)
apspijkerman 0:5b5830ede960 758 {
apspijkerman 0:5b5830ede960 759 //buf.clear();
apspijkerman 0:5b5830ede960 760 //buf.append("!V");
apspijkerman 0:5b5830ede960 761 //buf.append( p );
apspijkerman 0:5b5830ede960 762 //buf.append(";" );
apspijkerman 0:5b5830ede960 763 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 764
apspijkerman 0:5b5830ede960 765 //serial.printf("!V%s;", p);
apspijkerman 0:5b5830ede960 766 qprintf("!V%s;", p);
apspijkerman 0:5b5830ede960 767 }
apspijkerman 0:5b5830ede960 768
apspijkerman 0:5b5830ede960 769 void Stampdock::Speech(char *p)
apspijkerman 0:5b5830ede960 770 {
apspijkerman 0:5b5830ede960 771 //buf.clear();
apspijkerman 0:5b5830ede960 772 //buf.append("!n");
apspijkerman 0:5b5830ede960 773 //buf.append( p );
apspijkerman 0:5b5830ede960 774 //buf.append(";" );
apspijkerman 0:5b5830ede960 775 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 776
apspijkerman 0:5b5830ede960 777 //serial.printf("!n%s;", p);
apspijkerman 0:5b5830ede960 778 qprintf("!n%s;", p);
apspijkerman 0:5b5830ede960 779 }
apspijkerman 0:5b5830ede960 780
apspijkerman 0:5b5830ede960 781 void Stampdock::Log(char *p)
apspijkerman 0:5b5830ede960 782 {
apspijkerman 0:5b5830ede960 783 //buf.clear();
apspijkerman 0:5b5830ede960 784 //buf.append("!L");
apspijkerman 0:5b5830ede960 785 //buf.append( p );
apspijkerman 0:5b5830ede960 786 //buf.append(";" );
apspijkerman 0:5b5830ede960 787 //System.out.print(buf.toString());
apspijkerman 0:5b5830ede960 788
apspijkerman 0:5b5830ede960 789 //serial.printf("!L%s;", p);
apspijkerman 0:5b5830ede960 790 qprintf("!L%s;", p);
apspijkerman 0:5b5830ede960 791 }
apspijkerman 0:5b5830ede960 792
apspijkerman 0:5b5830ede960 793 void Stampdock::ScrollLeft()
apspijkerman 0:5b5830ede960 794 {
apspijkerman 0:5b5830ede960 795 //serial.printf("!G20,1;");
apspijkerman 0:5b5830ede960 796 qprintf("!G20,1;");
apspijkerman 0:5b5830ede960 797 }
apspijkerman 0:5b5830ede960 798
apspijkerman 0:5b5830ede960 799
apspijkerman 0:5b5830ede960 800
apspijkerman 0:5b5830ede960 801
apspijkerman 0:5b5830ede960 802
apspijkerman 0:5b5830ede960 803
apspijkerman 0:5b5830ede960 804
apspijkerman 0:5b5830ede960 805