Library for EarthLCD ezLCD3xx line of products

Dependents:   ezLCDTest

/media/uploads/codeman/front.jpg /media/uploads/codeman/all.jpg /media/uploads/codeman/arlcd.jpg /media/uploads/codeman/side.jpg

Committer:
codeman
Date:
Mon May 13 18:00:23 2013 +0000
Revision:
6:83cada1140d4
Parent:
5:4a6254e2012f
Public beta version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
codeman 5:4a6254e2012f 1 /**
codeman 5:4a6254e2012f 2 *
codeman 5:4a6254e2012f 3 *
codeman 5:4a6254e2012f 4 *
codeman 5:4a6254e2012f 5 *
codeman 5:4a6254e2012f 6 *
codeman 5:4a6254e2012f 7 *
codeman 5:4a6254e2012f 8 */
codeman 5:4a6254e2012f 9
codeman 5:4a6254e2012f 10
codeman 0:65606abcae36 11 #include "mbed.h"
codeman 0:65606abcae36 12 #include "ezLCDLib.h"
codeman 0:65606abcae36 13
codeman 1:c7659c8af0d3 14 void Tx_interrupt();
codeman 1:c7659c8af0d3 15 void Rx_interrupt();
codeman 1:c7659c8af0d3 16 void send_line();
codeman 1:c7659c8af0d3 17 void read_line();
codeman 1:c7659c8af0d3 18
codeman 1:c7659c8af0d3 19 // Circular buffers for serial TX and RX data - used by interrupt routines
codeman 1:c7659c8af0d3 20 const int buffer_size = 64;
codeman 1:c7659c8af0d3 21 // might need to increase buffer size for high baud rates
codeman 1:c7659c8af0d3 22 char tx_buffer[buffer_size];
codeman 1:c7659c8af0d3 23 char rx_buffer[buffer_size];
codeman 1:c7659c8af0d3 24 // Circular buffer pointers
codeman 1:c7659c8af0d3 25 // volatile makes read-modify-write atomic
codeman 1:c7659c8af0d3 26 volatile int tx_in=0;
codeman 1:c7659c8af0d3 27 volatile int tx_out=0;
codeman 1:c7659c8af0d3 28 volatile int rx_in=0;
codeman 1:c7659c8af0d3 29 volatile int rx_out=0;
codeman 1:c7659c8af0d3 30
codeman 1:c7659c8af0d3 31 char buf[64];
codeman 1:c7659c8af0d3 32
codeman 0:65606abcae36 33 ezLCD3::ezLCD3(PinName tx, PinName rx) : Stream("ezLCD3") , _ser(tx, rx)
codeman 0:65606abcae36 34 {
codeman 0:65606abcae36 35 _ser.baud(115200); // default baud rate
codeman 1:c7659c8af0d3 36 _ser.attach(this,&ezLCD3::Rx_interrupt, Serial::RxIrq);
codeman 0:65606abcae36 37 }
codeman 0:65606abcae36 38
codeman 1:c7659c8af0d3 39 void ezLCD3::Rx_interrupt( void )
codeman 1:c7659c8af0d3 40 {
codeman 1:c7659c8af0d3 41 // Loop just in case more than one character is in UART's receive FIFO buffer
codeman 1:c7659c8af0d3 42 // Stop if buffer full
codeman 1:c7659c8af0d3 43 while ((_ser.readable()) || (((rx_in + 1) % buffer_size) == rx_out)) {
codeman 1:c7659c8af0d3 44 rx_buffer[rx_in] = _ser.getc();
codeman 1:c7659c8af0d3 45 rx_in = (rx_in + 1) % buffer_size;
codeman 1:c7659c8af0d3 46 }
codeman 1:c7659c8af0d3 47 return;
codeman 1:c7659c8af0d3 48 }
codeman 0:65606abcae36 49
codeman 0:65606abcae36 50 /* itoa: convert n to characters in s */
codeman 0:65606abcae36 51 void ezLCD3::itoa(int value, char *sp, int radix)
codeman 0:65606abcae36 52 {
codeman 0:65606abcae36 53 char tmp[16];// be careful with the length of the buffer
codeman 0:65606abcae36 54 char *tp = tmp;
codeman 0:65606abcae36 55 int i;
codeman 0:65606abcae36 56 unsigned v;
codeman 0:65606abcae36 57 int sign;
codeman 0:65606abcae36 58
codeman 0:65606abcae36 59 sign = (radix == 10 && value < 0);
codeman 0:65606abcae36 60 if (sign) v = -value;
codeman 0:65606abcae36 61 else v = (unsigned)value;
codeman 0:65606abcae36 62
codeman 0:65606abcae36 63 while (v || tp == tmp) {
codeman 0:65606abcae36 64 i = v % radix;
codeman 0:65606abcae36 65 v /= radix; // v/=radix uses less CPU clocks than v=v/radix does
codeman 0:65606abcae36 66 if (i < 10)
codeman 0:65606abcae36 67 *tp++ = i+'0';
codeman 0:65606abcae36 68 else
codeman 0:65606abcae36 69 *tp++ = i + 'a' - 10;
codeman 0:65606abcae36 70 }
codeman 0:65606abcae36 71
codeman 0:65606abcae36 72 if (sign)
codeman 0:65606abcae36 73 *sp++ = '-';
codeman 0:65606abcae36 74 while (tp > tmp)
codeman 0:65606abcae36 75 *sp++ = *--tp;
codeman 0:65606abcae36 76 }
codeman 1:c7659c8af0d3 77
codeman 1:c7659c8af0d3 78 bool ezLCD3::sync( void )
codeman 1:c7659c8af0d3 79 {
codeman 1:c7659c8af0d3 80 rx_in=0;
codeman 1:c7659c8af0d3 81 rx_out=0;
codeman 1:c7659c8af0d3 82 _ser.putc('\r');
codeman 1:c7659c8af0d3 83 if(waitForCR())
codeman 1:c7659c8af0d3 84 return true;
codeman 1:c7659c8af0d3 85 else
codeman 1:c7659c8af0d3 86 return false;
codeman 1:c7659c8af0d3 87
codeman 1:c7659c8af0d3 88 }
codeman 0:65606abcae36 89 void ezLCD3::sendInt( int i )
codeman 0:65606abcae36 90 {
codeman 0:65606abcae36 91 char value[5]= {0, 0, 0, 0, 0};
codeman 0:65606abcae36 92 itoa(i, value, 10);
codeman 1:c7659c8af0d3 93 if(value[0]) _ser.putc(value[0]);
codeman 1:c7659c8af0d3 94 if(value[1]) _ser.putc(value[1]);
codeman 1:c7659c8af0d3 95 if(value[2]) _ser.putc(value[2]);
codeman 1:c7659c8af0d3 96 if(value[3]) _ser.putc(value[3]);
codeman 1:c7659c8af0d3 97 if(value[4]) _ser.putc(value[4]);
codeman 0:65606abcae36 98 }
codeman 1:c7659c8af0d3 99
codeman 1:c7659c8af0d3 100 void ezLCD3::stripSpace(char* str)
codeman 1:c7659c8af0d3 101 {
codeman 3:28e71ce23bfd 102 char* i = str;
codeman 3:28e71ce23bfd 103 char* j = str;
codeman 3:28e71ce23bfd 104 while(*j != 0) {
codeman 3:28e71ce23bfd 105 *i = *j++;
codeman 3:28e71ce23bfd 106 if(*i != ' ')
codeman 3:28e71ce23bfd 107 i++;
codeman 3:28e71ce23bfd 108 }
codeman 3:28e71ce23bfd 109 *i = 0;
codeman 1:c7659c8af0d3 110 }
codeman 1:c7659c8af0d3 111
codeman 0:65606abcae36 112 int ezLCD3::getInt( char *str )
codeman 0:65606abcae36 113 {
codeman 1:c7659c8af0d3 114 stripSpace(str);
codeman 1:c7659c8af0d3 115 return atoi(str );
codeman 0:65606abcae36 116 }
codeman 1:c7659c8af0d3 117
codeman 0:65606abcae36 118 void ezLCD3::getString( char *str )
codeman 0:65606abcae36 119 {
codeman 1:c7659c8af0d3 120 char c=0;
codeman 1:c7659c8af0d3 121 unsigned long timeOut=0;
codeman 1:c7659c8af0d3 122 do {
codeman 1:c7659c8af0d3 123 if(rx_in != rx_out) {
codeman 1:c7659c8af0d3 124 c=rx_buffer[rx_out];
codeman 1:c7659c8af0d3 125 rx_out = (rx_out + 1) % buffer_size;
codeman 1:c7659c8af0d3 126 *str++ = c;
codeman 1:c7659c8af0d3 127 }
codeman 1:c7659c8af0d3 128 timeOut++;
codeman 6:83cada1140d4 129 } while(c!='\r' && timeOut != 0xfffffff);
codeman 1:c7659c8af0d3 130 *str--;
codeman 1:c7659c8af0d3 131 *str = 0;
codeman 0:65606abcae36 132 }
codeman 1:c7659c8af0d3 133
codeman 0:65606abcae36 134 bool ezLCD3::waitForCR( void )
codeman 0:65606abcae36 135 {
codeman 1:c7659c8af0d3 136 char c=0;
codeman 1:c7659c8af0d3 137 unsigned long timeOut=0;
codeman 1:c7659c8af0d3 138 while(rx_in == rx_out) {
codeman 6:83cada1140d4 139 if(timeOut++ > 0xffffff) return false;
codeman 1:c7659c8af0d3 140 }
codeman 1:c7659c8af0d3 141 c=rx_buffer[rx_out];
codeman 1:c7659c8af0d3 142 rx_out = (rx_out + 1) % buffer_size;
codeman 1:c7659c8af0d3 143 if(c == '\r') {
codeman 0:65606abcae36 144 return true;
codeman 1:c7659c8af0d3 145 } else {
codeman 0:65606abcae36 146 return false;
codeman 1:c7659c8af0d3 147 }
codeman 0:65606abcae36 148 }
codeman 0:65606abcae36 149
codeman 0:65606abcae36 150 void ezLCD3::cls()
codeman 0:65606abcae36 151 {
codeman 0:65606abcae36 152 sendInt(Clr_Screen);
codeman 0:65606abcae36 153 _ser.putc('\r');
codeman 0:65606abcae36 154 waitForCR();
codeman 0:65606abcae36 155 }
codeman 0:65606abcae36 156
codeman 0:65606abcae36 157 void ezLCD3::cls(int bColor)
codeman 0:65606abcae36 158 {
codeman 0:65606abcae36 159 sendInt(Clr_Screen);
codeman 0:65606abcae36 160 _ser.putc(' ');
codeman 0:65606abcae36 161 sendInt(bColor);
codeman 0:65606abcae36 162 _ser.putc('\r');
codeman 0:65606abcae36 163 waitForCR();
codeman 0:65606abcae36 164 }
codeman 0:65606abcae36 165
codeman 0:65606abcae36 166 void ezLCD3::cls(int bColor, int fColor)
codeman 0:65606abcae36 167 {
codeman 0:65606abcae36 168 sendInt(Clr_Screen);
codeman 0:65606abcae36 169 _ser.putc(' ');
codeman 0:65606abcae36 170 sendInt(bColor);
codeman 0:65606abcae36 171 _ser.putc(' ');
codeman 0:65606abcae36 172 sendInt(fColor);
codeman 0:65606abcae36 173 _ser.putc('\r');
codeman 0:65606abcae36 174 waitForCR();
codeman 0:65606abcae36 175 }
codeman 0:65606abcae36 176 void ezLCD3::color(int fColor)
codeman 0:65606abcae36 177 {
codeman 0:65606abcae36 178 sendInt(Color);
codeman 0:65606abcae36 179 _ser.putc(' ');
codeman 0:65606abcae36 180 sendInt(fColor);
codeman 0:65606abcae36 181 _ser.putc('\r');
codeman 0:65606abcae36 182 waitForCR();
codeman 0:65606abcae36 183 }
codeman 0:65606abcae36 184
codeman 0:65606abcae36 185 void ezLCD3::xy(int x, int y)
codeman 0:65606abcae36 186 {
codeman 0:65606abcae36 187 sendInt(XY);
codeman 0:65606abcae36 188 _ser.putc(' ');
codeman 0:65606abcae36 189 sendInt(x);
codeman 0:65606abcae36 190 _ser.putc(' ');
codeman 0:65606abcae36 191 sendInt(y);
codeman 0:65606abcae36 192 _ser.putc('\r');
codeman 1:c7659c8af0d3 193 waitForCR();
codeman 0:65606abcae36 194 }
codeman 0:65606abcae36 195
codeman 0:65606abcae36 196 void ezLCD3::plot( void )
codeman 0:65606abcae36 197 {
codeman 0:65606abcae36 198 sendInt(Plot);
codeman 0:65606abcae36 199 _ser.putc('\r');
codeman 0:65606abcae36 200 waitForCR();
codeman 0:65606abcae36 201 }
codeman 0:65606abcae36 202
codeman 0:65606abcae36 203 void ezLCD3::plot( int x, int y )
codeman 0:65606abcae36 204 {
codeman 0:65606abcae36 205 sendInt(Plot);
codeman 0:65606abcae36 206 _ser.putc(' ');
codeman 0:65606abcae36 207 sendInt(x);
codeman 0:65606abcae36 208 _ser.putc(' ');
codeman 0:65606abcae36 209 sendInt(y);
codeman 0:65606abcae36 210 _ser.putc('\r');
codeman 0:65606abcae36 211 waitForCR();
codeman 0:65606abcae36 212 }
codeman 0:65606abcae36 213 void ezLCD3::line(int x, int y )
codeman 0:65606abcae36 214 {
codeman 0:65606abcae36 215 sendInt(Line);
codeman 0:65606abcae36 216 _ser.putc(' ');
codeman 0:65606abcae36 217 sendInt(x);
codeman 0:65606abcae36 218 _ser.putc(' ');
codeman 0:65606abcae36 219 sendInt(y);
codeman 0:65606abcae36 220 _ser.putc('\r');
codeman 0:65606abcae36 221 waitForCR();
codeman 0:65606abcae36 222 }
codeman 5:4a6254e2012f 223 void ezLCD3::lineType( int type )
codeman 5:4a6254e2012f 224 {
codeman 5:4a6254e2012f 225 sendInt(Line_Type);
codeman 5:4a6254e2012f 226 _ser.putc(' ');
codeman 5:4a6254e2012f 227 sendInt(type);
codeman 5:4a6254e2012f 228 _ser.putc('\r');
codeman 5:4a6254e2012f 229 waitForCR();
codeman 5:4a6254e2012f 230 }
codeman 5:4a6254e2012f 231 void ezLCD3::lineWidth( int width )
codeman 5:4a6254e2012f 232 {
codeman 5:4a6254e2012f 233 sendInt(Line_Width);
codeman 5:4a6254e2012f 234 _ser.putc(' ');
codeman 5:4a6254e2012f 235 sendInt(width);
codeman 5:4a6254e2012f 236 _ser.putc('\r');
codeman 5:4a6254e2012f 237 waitForCR();
codeman 5:4a6254e2012f 238 }
codeman 0:65606abcae36 239 void ezLCD3::circle(int radius, bool filled)
codeman 0:65606abcae36 240 {
codeman 0:65606abcae36 241 sendInt(Circle);
codeman 0:65606abcae36 242 _ser.putc(' ');
codeman 0:65606abcae36 243 sendInt(radius);
codeman 0:65606abcae36 244 if(filled) {
codeman 0:65606abcae36 245 _ser.putc(' ');
codeman 0:65606abcae36 246 _ser.putc('f');
codeman 0:65606abcae36 247 }
codeman 0:65606abcae36 248 _ser.putc('\r');
codeman 0:65606abcae36 249 waitForCR();
codeman 0:65606abcae36 250 }
codeman 0:65606abcae36 251
codeman 6:83cada1140d4 252 void ezLCD3::box(int width, int heigth, bool filled)
codeman 0:65606abcae36 253 {
codeman 0:65606abcae36 254 sendInt(Box);
codeman 0:65606abcae36 255 _ser.putc(' ');
codeman 6:83cada1140d4 256 sendInt(width);
codeman 0:65606abcae36 257 _ser.putc(' ');
codeman 6:83cada1140d4 258 sendInt(heigth);
codeman 0:65606abcae36 259 if(filled) {
codeman 0:65606abcae36 260 _ser.putc(' ');
codeman 0:65606abcae36 261 _ser.putc('f');
codeman 0:65606abcae36 262 }
codeman 0:65606abcae36 263 _ser.putc('\r');
codeman 0:65606abcae36 264 waitForCR();
codeman 0:65606abcae36 265 }
codeman 0:65606abcae36 266
codeman 6:83cada1140d4 267 void ezLCD3::light(int level)
codeman 0:65606abcae36 268 {
codeman 6:83cada1140d4 269 sendInt( Light );
codeman 0:65606abcae36 270 putc(' ');
codeman 6:83cada1140d4 271 sendInt( level );
codeman 0:65606abcae36 272 putc('\r');
codeman 0:65606abcae36 273 waitForCR();
codeman 0:65606abcae36 274 }
codeman 1:c7659c8af0d3 275
codeman 1:c7659c8af0d3 276 int ezLCD3::getXmax( void )
codeman 0:65606abcae36 277 {
codeman 0:65606abcae36 278 sendInt(Xmax);
codeman 1:c7659c8af0d3 279 _ser.putc('\r');
codeman 1:c7659c8af0d3 280 getString( buf );
codeman 1:c7659c8af0d3 281 return getInt( buf );
codeman 0:65606abcae36 282 }
codeman 1:c7659c8af0d3 283 int ezLCD3::getYmax( void )
codeman 0:65606abcae36 284 {
codeman 0:65606abcae36 285 sendInt(Ymax);
codeman 1:c7659c8af0d3 286 _ser.putc('\r');
codeman 1:c7659c8af0d3 287 getString( buf );
codeman 1:c7659c8af0d3 288 return getInt( buf );
codeman 1:c7659c8af0d3 289 }
codeman 1:c7659c8af0d3 290
codeman 3:28e71ce23bfd 291 void ezLCD3::sendString( char *str )
codeman 3:28e71ce23bfd 292 {
codeman 3:28e71ce23bfd 293 unsigned char c;
codeman 3:28e71ce23bfd 294 while( (c = *str++) )
codeman 3:28e71ce23bfd 295 _ser.putc(c);
codeman 3:28e71ce23bfd 296 }
codeman 3:28e71ce23bfd 297
codeman 1:c7659c8af0d3 298 void ezLCD3::setStringID( int ID, char *str )
codeman 1:c7659c8af0d3 299 {
codeman 1:c7659c8af0d3 300 sendInt(StringID);
codeman 1:c7659c8af0d3 301 _ser.putc(' ');
codeman 1:c7659c8af0d3 302 sendInt(ID);
codeman 1:c7659c8af0d3 303 _ser.putc(' ');
codeman 1:c7659c8af0d3 304 _ser.putc('\"');
codeman 3:28e71ce23bfd 305 sendString(str);
codeman 1:c7659c8af0d3 306 _ser.putc('\"');
codeman 1:c7659c8af0d3 307 _ser.putc('\r');
codeman 0:65606abcae36 308 waitForCR();
codeman 0:65606abcae36 309 }
codeman 0:65606abcae36 310
codeman 1:c7659c8af0d3 311 void ezLCD3::getStringID( int ID , char *str)
codeman 1:c7659c8af0d3 312 {
codeman 1:c7659c8af0d3 313 sendInt(StringID);
codeman 1:c7659c8af0d3 314 _ser.putc(' ');
codeman 1:c7659c8af0d3 315 sendInt(ID);
codeman 1:c7659c8af0d3 316 _ser.putc('\r');
codeman 1:c7659c8af0d3 317 getString(str);
codeman 0:65606abcae36 318 }
codeman 0:65606abcae36 319
codeman 0:65606abcae36 320 void ezLCD3::print( char *str )
codeman 0:65606abcae36 321 {
codeman 0:65606abcae36 322 sendInt(Print);
codeman 0:65606abcae36 323 _ser.putc(' ');
codeman 0:65606abcae36 324 _ser.putc('\"');
codeman 3:28e71ce23bfd 325 sendString(str);
codeman 3:28e71ce23bfd 326 _ser.putc('\"');
codeman 3:28e71ce23bfd 327 _ser.putc('\r');
codeman 3:28e71ce23bfd 328 waitForCR();
codeman 3:28e71ce23bfd 329 }
codeman 3:28e71ce23bfd 330 void ezLCD3::fontw( int ID, char *str)
codeman 3:28e71ce23bfd 331 {
codeman 3:28e71ce23bfd 332 sendInt(Fontw);
codeman 3:28e71ce23bfd 333 _ser.putc(' ');
codeman 3:28e71ce23bfd 334 sendInt(ID);
codeman 3:28e71ce23bfd 335 _ser.putc(' ');
codeman 3:28e71ce23bfd 336 _ser.putc('\"');
codeman 3:28e71ce23bfd 337 sendString(str);
codeman 0:65606abcae36 338 _ser.putc('\"');
codeman 0:65606abcae36 339 _ser.putc('\r');
codeman 0:65606abcae36 340 waitForCR();
codeman 0:65606abcae36 341 }
codeman 0:65606abcae36 342
codeman 6:83cada1140d4 343 void ezLCD3::fontw( int ID, int font)
codeman 6:83cada1140d4 344 {
codeman 6:83cada1140d4 345 sendInt(Fontw);
codeman 6:83cada1140d4 346 _ser.putc(' ');
codeman 6:83cada1140d4 347 sendInt(ID);
codeman 6:83cada1140d4 348 _ser.putc(' ');
codeman 6:83cada1140d4 349 sendInt(font);
codeman 6:83cada1140d4 350 _ser.putc('\r');
codeman 6:83cada1140d4 351 waitForCR();
codeman 6:83cada1140d4 352 }
codeman 6:83cada1140d4 353
codeman 5:4a6254e2012f 354 void ezLCD3::font( char *str)
codeman 5:4a6254e2012f 355 {
codeman 5:4a6254e2012f 356 sendInt(Font);
codeman 5:4a6254e2012f 357 _ser.putc(' ');
codeman 5:4a6254e2012f 358 sendString(str);
codeman 5:4a6254e2012f 359 _ser.putc('\r');
codeman 5:4a6254e2012f 360 waitForCR();
codeman 5:4a6254e2012f 361 }
codeman 5:4a6254e2012f 362
codeman 5:4a6254e2012f 363 void ezLCD3::fontO( bool dir )
codeman 5:4a6254e2012f 364 {
codeman 5:4a6254e2012f 365 sendInt(Font_Orient);
codeman 5:4a6254e2012f 366 _ser.putc(' ');
codeman 5:4a6254e2012f 367 if(dir)
codeman 5:4a6254e2012f 368 _ser.putc('1');
codeman 5:4a6254e2012f 369 else
codeman 5:4a6254e2012f 370 _ser.putc('0');
codeman 5:4a6254e2012f 371 _ser.putc('\r');
codeman 5:4a6254e2012f 372 waitForCR();
codeman 5:4a6254e2012f 373 }
codeman 5:4a6254e2012f 374
codeman 5:4a6254e2012f 375 void ezLCD3::clipArea( int l, int t, int r, int b)
codeman 5:4a6254e2012f 376 {
codeman 5:4a6254e2012f 377 sendInt(ClipArea);
codeman 5:4a6254e2012f 378 _ser.putc(' ');
codeman 5:4a6254e2012f 379 sendInt(l);
codeman 5:4a6254e2012f 380 _ser.putc(' ');
codeman 5:4a6254e2012f 381 sendInt(t);
codeman 5:4a6254e2012f 382 _ser.putc(' ');
codeman 5:4a6254e2012f 383 sendInt(r);
codeman 5:4a6254e2012f 384 _ser.putc(' ');
codeman 5:4a6254e2012f 385 sendInt(b);
codeman 5:4a6254e2012f 386 _ser.putc(' ');
codeman 5:4a6254e2012f 387 _ser.putc('\r');
codeman 5:4a6254e2012f 388 waitForCR();
codeman 5:4a6254e2012f 389 }
codeman 5:4a6254e2012f 390 void ezLCD3::clipEnable( bool enable)
codeman 5:4a6254e2012f 391 {
codeman 5:4a6254e2012f 392 sendInt(ClipEnable);
codeman 5:4a6254e2012f 393 _ser.putc(' ');
codeman 5:4a6254e2012f 394 if(enable)
codeman 5:4a6254e2012f 395 _ser.putc('1');
codeman 5:4a6254e2012f 396 else
codeman 5:4a6254e2012f 397 _ser.putc('0');
codeman 5:4a6254e2012f 398 _ser.putc('\r');
codeman 5:4a6254e2012f 399
codeman 5:4a6254e2012f 400 }
codeman 3:28e71ce23bfd 401 void ezLCD3::theme(int ID, int EmbossDkColor, int EmbossLtColor, int TextColor0, int TextColor1, int TextColorDisabled, int Color0, int Color1, int ColorDisabled, int CommonBkColor, int Fontw)
codeman 0:65606abcae36 402 {
codeman 3:28e71ce23bfd 403 sendInt(Widget_Theme);
codeman 3:28e71ce23bfd 404 _ser.putc(' ');
codeman 3:28e71ce23bfd 405 sendInt(ID);
codeman 3:28e71ce23bfd 406 _ser.putc(' ');
codeman 3:28e71ce23bfd 407 sendInt(EmbossDkColor);
codeman 3:28e71ce23bfd 408 _ser.putc(' ');
codeman 3:28e71ce23bfd 409 sendInt(EmbossLtColor);
codeman 3:28e71ce23bfd 410 _ser.putc(' ');
codeman 3:28e71ce23bfd 411 sendInt(TextColor0);
codeman 3:28e71ce23bfd 412 _ser.putc(' ');
codeman 3:28e71ce23bfd 413 sendInt(TextColor1);
codeman 3:28e71ce23bfd 414 _ser.putc(' ');
codeman 3:28e71ce23bfd 415 sendInt(TextColorDisabled);
codeman 3:28e71ce23bfd 416 _ser.putc(' ');
codeman 3:28e71ce23bfd 417 sendInt(Color0);
codeman 3:28e71ce23bfd 418 _ser.putc(' ');
codeman 3:28e71ce23bfd 419 sendInt(Color1);
codeman 3:28e71ce23bfd 420 _ser.putc(' ');
codeman 3:28e71ce23bfd 421 sendInt(ColorDisabled);
codeman 3:28e71ce23bfd 422 _ser.putc(' ');
codeman 3:28e71ce23bfd 423 sendInt(CommonBkColor);
codeman 3:28e71ce23bfd 424 _ser.putc(' ');
codeman 3:28e71ce23bfd 425 sendInt(Fontw);
codeman 3:28e71ce23bfd 426 _ser.putc('\r');
codeman 3:28e71ce23bfd 427 waitForCR();
codeman 0:65606abcae36 428 }
codeman 5:4a6254e2012f 429 void ezLCD3::groupBox( int ID, int x, int y, int w, int h, int options, int theme, int stringID)
codeman 5:4a6254e2012f 430 {
codeman 5:4a6254e2012f 431 sendInt(Set_Gbox);
codeman 5:4a6254e2012f 432 _ser.putc(' ');
codeman 5:4a6254e2012f 433 sendInt(ID);
codeman 5:4a6254e2012f 434 _ser.putc(' ');
codeman 5:4a6254e2012f 435 sendInt(x);
codeman 5:4a6254e2012f 436 _ser.putc(' ');
codeman 5:4a6254e2012f 437 sendInt(y);
codeman 5:4a6254e2012f 438 _ser.putc(' ');
codeman 5:4a6254e2012f 439 sendInt(w);
codeman 5:4a6254e2012f 440 _ser.putc(' ');
codeman 5:4a6254e2012f 441 sendInt(h);
codeman 5:4a6254e2012f 442 _ser.putc(' ');
codeman 5:4a6254e2012f 443 sendInt(options);
codeman 5:4a6254e2012f 444 _ser.putc(' ');
codeman 5:4a6254e2012f 445 sendInt(theme);
codeman 5:4a6254e2012f 446 _ser.putc(' ');
codeman 5:4a6254e2012f 447 sendInt(stringID);
codeman 5:4a6254e2012f 448 _ser.putc('\r');
codeman 5:4a6254e2012f 449 waitForCR();
codeman 5:4a6254e2012f 450 }
codeman 0:65606abcae36 451
codeman 1:c7659c8af0d3 452 void ezLCD3::ameter( int ID, int x, int y, int w, int h, int options, int value, int min, int max, int theme, int stringID, int type)
codeman 1:c7659c8af0d3 453 {
codeman 1:c7659c8af0d3 454 sendInt(Set_AMeter);
codeman 1:c7659c8af0d3 455 _ser.putc(' ');
codeman 1:c7659c8af0d3 456 sendInt(ID);
codeman 1:c7659c8af0d3 457 _ser.putc(' ');
codeman 1:c7659c8af0d3 458 sendInt(x);
codeman 1:c7659c8af0d3 459 _ser.putc(' ');
codeman 1:c7659c8af0d3 460 sendInt(y);
codeman 1:c7659c8af0d3 461 _ser.putc(' ');
codeman 1:c7659c8af0d3 462 sendInt(w);
codeman 1:c7659c8af0d3 463 _ser.putc(' ');
codeman 1:c7659c8af0d3 464 sendInt(h);
codeman 1:c7659c8af0d3 465 _ser.putc(' ');
codeman 1:c7659c8af0d3 466 sendInt(options);
codeman 1:c7659c8af0d3 467 _ser.putc(' ');
codeman 1:c7659c8af0d3 468 sendInt(value);
codeman 1:c7659c8af0d3 469 _ser.putc(' ');
codeman 1:c7659c8af0d3 470 sendInt(min);
codeman 1:c7659c8af0d3 471 _ser.putc(' ');
codeman 1:c7659c8af0d3 472 sendInt(max);
codeman 1:c7659c8af0d3 473 _ser.putc(' ');
codeman 1:c7659c8af0d3 474 sendInt(theme);
codeman 1:c7659c8af0d3 475 _ser.putc(' ');
codeman 1:c7659c8af0d3 476 sendInt(stringID);
codeman 1:c7659c8af0d3 477 _ser.putc(' ');
codeman 1:c7659c8af0d3 478 sendInt(type);
codeman 1:c7659c8af0d3 479 _ser.putc('\r');
codeman 1:c7659c8af0d3 480 waitForCR();
codeman 1:c7659c8af0d3 481 }
codeman 1:c7659c8af0d3 482
codeman 1:c7659c8af0d3 483 void ezLCD3::touchZone( int ID, int x, int y, int w, int h, bool option)
codeman 1:c7659c8af0d3 484 {
codeman 1:c7659c8af0d3 485 sendInt(Set_TouchZone);
codeman 1:c7659c8af0d3 486 _ser.putc(' ');
codeman 1:c7659c8af0d3 487 sendInt(ID);
codeman 1:c7659c8af0d3 488 _ser.putc(' ');
codeman 1:c7659c8af0d3 489 sendInt(x);
codeman 1:c7659c8af0d3 490 _ser.putc(' ');
codeman 1:c7659c8af0d3 491 sendInt(y);
codeman 1:c7659c8af0d3 492 _ser.putc(' ');
codeman 1:c7659c8af0d3 493 sendInt(w);
codeman 1:c7659c8af0d3 494 _ser.putc(' ');
codeman 1:c7659c8af0d3 495 sendInt(h);
codeman 1:c7659c8af0d3 496 _ser.putc(' ');
codeman 1:c7659c8af0d3 497 if(option)
codeman 1:c7659c8af0d3 498 sendInt('1');
codeman 1:c7659c8af0d3 499 else
codeman 1:c7659c8af0d3 500 sendInt('0');
codeman 1:c7659c8af0d3 501 _ser.putc('\r');
codeman 1:c7659c8af0d3 502 waitForCR();
codeman 1:c7659c8af0d3 503 }
codeman 1:c7659c8af0d3 504
codeman 1:c7659c8af0d3 505 void ezLCD3::button( int ID, int x, int y, int w, int h, int option, int align, int radius, int theme, int stringID )
codeman 1:c7659c8af0d3 506 {
codeman 1:c7659c8af0d3 507 sendInt(Set_Button);
codeman 1:c7659c8af0d3 508 _ser.putc(' ');
codeman 1:c7659c8af0d3 509 sendInt(ID);
codeman 1:c7659c8af0d3 510 _ser.putc(' ');
codeman 1:c7659c8af0d3 511 sendInt(x);
codeman 1:c7659c8af0d3 512 _ser.putc(' ');
codeman 1:c7659c8af0d3 513 sendInt(y);
codeman 1:c7659c8af0d3 514 _ser.putc(' ');
codeman 1:c7659c8af0d3 515 sendInt(w);
codeman 1:c7659c8af0d3 516 _ser.putc(' ');
codeman 1:c7659c8af0d3 517 sendInt(h);
codeman 1:c7659c8af0d3 518 _ser.putc(' ');
codeman 1:c7659c8af0d3 519 sendInt(option);
codeman 1:c7659c8af0d3 520 _ser.putc(' ');
codeman 1:c7659c8af0d3 521 sendInt(align);
codeman 1:c7659c8af0d3 522 _ser.putc(' ');
codeman 1:c7659c8af0d3 523 sendInt(radius);
codeman 1:c7659c8af0d3 524 _ser.putc(' ');
codeman 1:c7659c8af0d3 525 sendInt(theme);
codeman 1:c7659c8af0d3 526 _ser.putc(' ');
codeman 1:c7659c8af0d3 527 sendInt(stringID);
codeman 1:c7659c8af0d3 528 _ser.putc('\r');
codeman 1:c7659c8af0d3 529 waitForCR();
codeman 1:c7659c8af0d3 530 }
codeman 3:28e71ce23bfd 531 void ezLCD3::image( char *str )
codeman 3:28e71ce23bfd 532 {
codeman 3:28e71ce23bfd 533 sendInt(Picture);
codeman 3:28e71ce23bfd 534 _ser.putc(' ');
codeman 3:28e71ce23bfd 535 _ser.putc('\"');
codeman 3:28e71ce23bfd 536 sendString(str);
codeman 3:28e71ce23bfd 537 _ser.putc('\"');
codeman 3:28e71ce23bfd 538 _ser.putc('\r');
codeman 3:28e71ce23bfd 539 waitForCR();
codeman 3:28e71ce23bfd 540 }
codeman 3:28e71ce23bfd 541
codeman 3:28e71ce23bfd 542 void ezLCD3::progressBar(int ID, int x, int y, int w, int h, int option, int value, int max, int theme, int stringID)
codeman 3:28e71ce23bfd 543 {
codeman 3:28e71ce23bfd 544 sendInt(Set_Progress);
codeman 3:28e71ce23bfd 545 _ser.putc(' ');
codeman 3:28e71ce23bfd 546 sendInt(ID);
codeman 3:28e71ce23bfd 547 _ser.putc(' ');
codeman 3:28e71ce23bfd 548 sendInt(x);
codeman 3:28e71ce23bfd 549 _ser.putc(' ');
codeman 3:28e71ce23bfd 550 sendInt(y);
codeman 3:28e71ce23bfd 551 _ser.putc(' ');
codeman 3:28e71ce23bfd 552 sendInt(w);
codeman 3:28e71ce23bfd 553 _ser.putc(' ');
codeman 3:28e71ce23bfd 554 sendInt(h);
codeman 3:28e71ce23bfd 555 _ser.putc(' ');
codeman 3:28e71ce23bfd 556 sendInt(option);
codeman 3:28e71ce23bfd 557 _ser.putc(' ');
codeman 3:28e71ce23bfd 558 sendInt(value);
codeman 3:28e71ce23bfd 559 _ser.putc(' ');
codeman 3:28e71ce23bfd 560 sendInt(max);
codeman 3:28e71ce23bfd 561 _ser.putc(' ');
codeman 3:28e71ce23bfd 562 sendInt(theme);
codeman 3:28e71ce23bfd 563 _ser.putc(' ');
codeman 3:28e71ce23bfd 564 sendInt(stringID);
codeman 3:28e71ce23bfd 565 _ser.putc('\r');
codeman 3:28e71ce23bfd 566 waitForCR();
codeman 3:28e71ce23bfd 567 }
codeman 3:28e71ce23bfd 568
codeman 5:4a6254e2012f 569 void ezLCD3::slider(int ID, int x, int y, int w, int h, int option, int range, int res, int value, int theme)
codeman 5:4a6254e2012f 570 {
codeman 5:4a6254e2012f 571 sendInt(Set_Slider);
codeman 5:4a6254e2012f 572 _ser.putc(' ');
codeman 5:4a6254e2012f 573 sendInt(ID);
codeman 5:4a6254e2012f 574 _ser.putc(' ');
codeman 5:4a6254e2012f 575 sendInt(x);
codeman 5:4a6254e2012f 576 _ser.putc(' ');
codeman 5:4a6254e2012f 577 sendInt(y);
codeman 5:4a6254e2012f 578 _ser.putc(' ');
codeman 5:4a6254e2012f 579 sendInt(w);
codeman 5:4a6254e2012f 580 _ser.putc(' ');
codeman 5:4a6254e2012f 581 sendInt(h);
codeman 5:4a6254e2012f 582 _ser.putc(' ');
codeman 5:4a6254e2012f 583 sendInt(option);
codeman 5:4a6254e2012f 584 _ser.putc(' ');
codeman 5:4a6254e2012f 585 sendInt(range);
codeman 5:4a6254e2012f 586 _ser.putc(' ');
codeman 5:4a6254e2012f 587 sendInt(res);
codeman 5:4a6254e2012f 588 _ser.putc(' ');
codeman 5:4a6254e2012f 589 sendInt(value);
codeman 5:4a6254e2012f 590 _ser.putc(' ');
codeman 5:4a6254e2012f 591 sendInt(theme);
codeman 5:4a6254e2012f 592 _ser.putc('\r');
codeman 5:4a6254e2012f 593 waitForCR();
codeman 5:4a6254e2012f 594 }
codeman 5:4a6254e2012f 595
codeman 3:28e71ce23bfd 596 void ezLCD3::image( int x, int y, char *str )
codeman 3:28e71ce23bfd 597 {
codeman 3:28e71ce23bfd 598 sendInt(Picture);
codeman 3:28e71ce23bfd 599 _ser.putc(' ');
codeman 3:28e71ce23bfd 600 sendInt(x);
codeman 3:28e71ce23bfd 601 _ser.putc(' ');
codeman 3:28e71ce23bfd 602 sendInt(y);
codeman 3:28e71ce23bfd 603 _ser.putc(' ');
codeman 3:28e71ce23bfd 604 _ser.putc('\"');
codeman 3:28e71ce23bfd 605 sendString(str);
codeman 3:28e71ce23bfd 606 _ser.putc('\"');
codeman 3:28e71ce23bfd 607 _ser.putc('\r');
codeman 3:28e71ce23bfd 608 waitForCR();
codeman 3:28e71ce23bfd 609 }
codeman 3:28e71ce23bfd 610 void ezLCD3::staticText( int ID, int x, int y, int w, int h, int option, int theme, int stringID)
codeman 3:28e71ce23bfd 611 {
codeman 3:28e71ce23bfd 612 sendInt(Set_StaticText);
codeman 3:28e71ce23bfd 613 _ser.putc(' ');
codeman 3:28e71ce23bfd 614 sendInt(ID);
codeman 3:28e71ce23bfd 615 _ser.putc(' ');
codeman 3:28e71ce23bfd 616 sendInt(x);
codeman 3:28e71ce23bfd 617 _ser.putc(' ');
codeman 3:28e71ce23bfd 618 sendInt(y);
codeman 3:28e71ce23bfd 619 _ser.putc(' ');
codeman 3:28e71ce23bfd 620 sendInt(w);
codeman 3:28e71ce23bfd 621 _ser.putc(' ');
codeman 3:28e71ce23bfd 622 sendInt(h);
codeman 3:28e71ce23bfd 623 _ser.putc(' ');
codeman 3:28e71ce23bfd 624 sendInt(option);
codeman 3:28e71ce23bfd 625 _ser.putc(' ');
codeman 3:28e71ce23bfd 626 sendInt(theme);
codeman 3:28e71ce23bfd 627 _ser.putc(' ');
codeman 3:28e71ce23bfd 628 sendInt(stringID);
codeman 3:28e71ce23bfd 629 _ser.putc('\r');
codeman 3:28e71ce23bfd 630 waitForCR();
codeman 3:28e71ce23bfd 631 }
codeman 1:c7659c8af0d3 632
codeman 1:c7659c8af0d3 633 unsigned int ezLCD3::wstack( int type )
codeman 1:c7659c8af0d3 634 {
codeman 1:c7659c8af0d3 635 sendInt( Wstack );
codeman 1:c7659c8af0d3 636 _ser.putc(' ');
codeman 1:c7659c8af0d3 637 sendInt( type );
codeman 1:c7659c8af0d3 638 _ser.putc('\r');
codeman 1:c7659c8af0d3 639 getString( buf );
codeman 1:c7659c8af0d3 640 return getInt( buf );
codeman 1:c7659c8af0d3 641 }
codeman 3:28e71ce23bfd 642 void ezLCD3::wvalue( int ID, int value)
codeman 3:28e71ce23bfd 643 {
codeman 3:28e71ce23bfd 644 sendInt( Widget_Values );
codeman 3:28e71ce23bfd 645 _ser.putc(' ');
codeman 3:28e71ce23bfd 646 sendInt( ID );
codeman 3:28e71ce23bfd 647 _ser.putc(' ');
codeman 3:28e71ce23bfd 648 sendInt( value );
codeman 3:28e71ce23bfd 649 _ser.putc('\r');
codeman 3:28e71ce23bfd 650 waitForCR();
codeman 3:28e71ce23bfd 651 }
codeman 3:28e71ce23bfd 652 void ezLCD3::wstate( int ID, int option )
codeman 3:28e71ce23bfd 653 {
codeman 3:28e71ce23bfd 654 sendInt( Widget_State );
codeman 3:28e71ce23bfd 655 _ser.putc(' ');
codeman 3:28e71ce23bfd 656 sendInt( ID );
codeman 3:28e71ce23bfd 657 _ser.putc(' ');
codeman 3:28e71ce23bfd 658 sendInt( option );
codeman 3:28e71ce23bfd 659 _ser.putc('\r');
codeman 3:28e71ce23bfd 660 waitForCR();
codeman 3:28e71ce23bfd 661 }
codeman 3:28e71ce23bfd 662
codeman 3:28e71ce23bfd 663 void ezLCD3::sendCommand(char *str)
codeman 3:28e71ce23bfd 664 {
codeman 3:28e71ce23bfd 665 sendString(str);
codeman 3:28e71ce23bfd 666 _ser.putc('\r');
codeman 3:28e71ce23bfd 667 waitForCR();
codeman 3:28e71ce23bfd 668 }
codeman 3:28e71ce23bfd 669
codeman 0:65606abcae36 670 int ezLCD3::_putc( int c)
codeman 0:65606abcae36 671 {
codeman 3:28e71ce23bfd 672 sendInt(Print);
codeman 0:65606abcae36 673 _ser.putc(' ');
codeman 0:65606abcae36 674 _ser.putc('\"');
codeman 0:65606abcae36 675 _ser.putc(c);
codeman 0:65606abcae36 676 _ser.putc('\"');
codeman 0:65606abcae36 677 _ser.putc('\r');
codeman 0:65606abcae36 678 waitForCR();
codeman 0:65606abcae36 679 return (c);
codeman 0:65606abcae36 680 }
codeman 0:65606abcae36 681
codeman 0:65606abcae36 682 int ezLCD3::_getc(void)
codeman 0:65606abcae36 683 {
codeman 0:65606abcae36 684 char r = 0;
codeman 0:65606abcae36 685 return(r);
codeman 0:65606abcae36 686 }
codeman 0:65606abcae36 687
codeman 0:65606abcae36 688 int ezLCD3::putc ( int c )
codeman 0:65606abcae36 689 {
codeman 0:65606abcae36 690 return(_ser.putc(c));
codeman 0:65606abcae36 691 }
codeman 0:65606abcae36 692
codeman 0:65606abcae36 693 int ezLCD3::getc (void)
codeman 0:65606abcae36 694 {
codeman 0:65606abcae36 695 return(_ser.getc());
codeman 0:65606abcae36 696 }
codeman 0:65606abcae36 697
codeman 0:65606abcae36 698
codeman 3:28e71ce23bfd 699