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:
Thu May 02 02:32:26 2013 +0000
Revision:
5:4a6254e2012f
Parent:
3:28e71ce23bfd
Child:
6:83cada1140d4
pre 1.0;

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 1:c7659c8af0d3 129 } while(c!='\r' && timeOut != 0xfffff);
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 1:c7659c8af0d3 139 if(timeOut++ > 0xfffff) 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 0:65606abcae36 252 void ezLCD3::box(int x, int y, bool filled)
codeman 0:65606abcae36 253 {
codeman 0:65606abcae36 254 sendInt(Box);
codeman 0:65606abcae36 255 _ser.putc(' ');
codeman 0:65606abcae36 256 sendInt(x);
codeman 0:65606abcae36 257 _ser.putc(' ');
codeman 0:65606abcae36 258 sendInt(y);
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 0:65606abcae36 267 void ezLCD3::light(int i)
codeman 0:65606abcae36 268 {
codeman 0:65606abcae36 269 if (i >= 0 && i <= 100) {
codeman 0:65606abcae36 270 sendInt(Light);
codeman 0:65606abcae36 271 putc(' ');
codeman 0:65606abcae36 272 sendInt( i );
codeman 0:65606abcae36 273 putc('\r');
codeman 0:65606abcae36 274 waitForCR();
codeman 0:65606abcae36 275 }
codeman 0:65606abcae36 276 }
codeman 1:c7659c8af0d3 277
codeman 1:c7659c8af0d3 278 int ezLCD3::getXmax( void )
codeman 0:65606abcae36 279 {
codeman 0:65606abcae36 280 sendInt(Xmax);
codeman 1:c7659c8af0d3 281 _ser.putc('\r');
codeman 1:c7659c8af0d3 282 getString( buf );
codeman 1:c7659c8af0d3 283 return getInt( buf );
codeman 0:65606abcae36 284 }
codeman 1:c7659c8af0d3 285 int ezLCD3::getYmax( void )
codeman 0:65606abcae36 286 {
codeman 0:65606abcae36 287 sendInt(Ymax);
codeman 1:c7659c8af0d3 288 _ser.putc('\r');
codeman 1:c7659c8af0d3 289 getString( buf );
codeman 1:c7659c8af0d3 290 return getInt( buf );
codeman 1:c7659c8af0d3 291 }
codeman 1:c7659c8af0d3 292
codeman 3:28e71ce23bfd 293 void ezLCD3::sendString( char *str )
codeman 3:28e71ce23bfd 294 {
codeman 3:28e71ce23bfd 295 unsigned char c;
codeman 3:28e71ce23bfd 296 while( (c = *str++) )
codeman 3:28e71ce23bfd 297 _ser.putc(c);
codeman 3:28e71ce23bfd 298 }
codeman 3:28e71ce23bfd 299
codeman 1:c7659c8af0d3 300 void ezLCD3::setStringID( int ID, char *str )
codeman 1:c7659c8af0d3 301 {
codeman 1:c7659c8af0d3 302 sendInt(StringID);
codeman 1:c7659c8af0d3 303 _ser.putc(' ');
codeman 1:c7659c8af0d3 304 sendInt(ID);
codeman 1:c7659c8af0d3 305 _ser.putc(' ');
codeman 1:c7659c8af0d3 306 _ser.putc('\"');
codeman 3:28e71ce23bfd 307 sendString(str);
codeman 1:c7659c8af0d3 308 _ser.putc('\"');
codeman 1:c7659c8af0d3 309 _ser.putc('\r');
codeman 0:65606abcae36 310 waitForCR();
codeman 0:65606abcae36 311 }
codeman 0:65606abcae36 312
codeman 1:c7659c8af0d3 313 void ezLCD3::getStringID( int ID , char *str)
codeman 1:c7659c8af0d3 314 {
codeman 1:c7659c8af0d3 315 sendInt(StringID);
codeman 1:c7659c8af0d3 316 _ser.putc(' ');
codeman 1:c7659c8af0d3 317 sendInt(ID);
codeman 1:c7659c8af0d3 318 _ser.putc('\r');
codeman 1:c7659c8af0d3 319 getString(str);
codeman 0:65606abcae36 320 }
codeman 0:65606abcae36 321
codeman 0:65606abcae36 322 void ezLCD3::print( char *str )
codeman 0:65606abcae36 323 {
codeman 0:65606abcae36 324 sendInt(Print);
codeman 0:65606abcae36 325 _ser.putc(' ');
codeman 0:65606abcae36 326 _ser.putc('\"');
codeman 3:28e71ce23bfd 327 sendString(str);
codeman 3:28e71ce23bfd 328 _ser.putc('\"');
codeman 3:28e71ce23bfd 329 _ser.putc('\r');
codeman 3:28e71ce23bfd 330 waitForCR();
codeman 3:28e71ce23bfd 331 }
codeman 3:28e71ce23bfd 332 void ezLCD3::fontw( int ID, char *str)
codeman 3:28e71ce23bfd 333 {
codeman 3:28e71ce23bfd 334 sendInt(Fontw);
codeman 3:28e71ce23bfd 335 _ser.putc(' ');
codeman 3:28e71ce23bfd 336 sendInt(ID);
codeman 3:28e71ce23bfd 337 _ser.putc(' ');
codeman 3:28e71ce23bfd 338 _ser.putc('\"');
codeman 3:28e71ce23bfd 339 sendString(str);
codeman 0:65606abcae36 340 _ser.putc('\"');
codeman 0:65606abcae36 341 _ser.putc('\r');
codeman 0:65606abcae36 342 waitForCR();
codeman 0:65606abcae36 343 }
codeman 0:65606abcae36 344
codeman 5:4a6254e2012f 345 void ezLCD3::font( char *str)
codeman 5:4a6254e2012f 346 {
codeman 5:4a6254e2012f 347 sendInt(Font);
codeman 5:4a6254e2012f 348 _ser.putc(' ');
codeman 5:4a6254e2012f 349 sendString(str);
codeman 5:4a6254e2012f 350 _ser.putc('\r');
codeman 5:4a6254e2012f 351 waitForCR();
codeman 5:4a6254e2012f 352 }
codeman 5:4a6254e2012f 353
codeman 5:4a6254e2012f 354 void ezLCD3::fontO( bool dir )
codeman 5:4a6254e2012f 355 {
codeman 5:4a6254e2012f 356 sendInt(Font_Orient);
codeman 5:4a6254e2012f 357 _ser.putc(' ');
codeman 5:4a6254e2012f 358 if(dir)
codeman 5:4a6254e2012f 359 _ser.putc('1');
codeman 5:4a6254e2012f 360 else
codeman 5:4a6254e2012f 361 _ser.putc('0');
codeman 5:4a6254e2012f 362 _ser.putc('\r');
codeman 5:4a6254e2012f 363 waitForCR();
codeman 5:4a6254e2012f 364 }
codeman 5:4a6254e2012f 365
codeman 5:4a6254e2012f 366 void ezLCD3::clipArea( int l, int t, int r, int b)
codeman 5:4a6254e2012f 367 {
codeman 5:4a6254e2012f 368 sendInt(ClipArea);
codeman 5:4a6254e2012f 369 _ser.putc(' ');
codeman 5:4a6254e2012f 370 sendInt(l);
codeman 5:4a6254e2012f 371 _ser.putc(' ');
codeman 5:4a6254e2012f 372 sendInt(t);
codeman 5:4a6254e2012f 373 _ser.putc(' ');
codeman 5:4a6254e2012f 374 sendInt(r);
codeman 5:4a6254e2012f 375 _ser.putc(' ');
codeman 5:4a6254e2012f 376 sendInt(b);
codeman 5:4a6254e2012f 377 _ser.putc(' ');
codeman 5:4a6254e2012f 378 _ser.putc('\r');
codeman 5:4a6254e2012f 379 waitForCR();
codeman 5:4a6254e2012f 380 }
codeman 5:4a6254e2012f 381 void ezLCD3::clipEnable( bool enable)
codeman 5:4a6254e2012f 382 {
codeman 5:4a6254e2012f 383 sendInt(ClipEnable);
codeman 5:4a6254e2012f 384 _ser.putc(' ');
codeman 5:4a6254e2012f 385 if(enable)
codeman 5:4a6254e2012f 386 _ser.putc('1');
codeman 5:4a6254e2012f 387 else
codeman 5:4a6254e2012f 388 _ser.putc('0');
codeman 5:4a6254e2012f 389 _ser.putc('\r');
codeman 5:4a6254e2012f 390
codeman 5:4a6254e2012f 391 }
codeman 3:28e71ce23bfd 392 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 393 {
codeman 3:28e71ce23bfd 394 sendInt(Widget_Theme);
codeman 3:28e71ce23bfd 395 _ser.putc(' ');
codeman 3:28e71ce23bfd 396 sendInt(ID);
codeman 3:28e71ce23bfd 397 _ser.putc(' ');
codeman 3:28e71ce23bfd 398 sendInt(EmbossDkColor);
codeman 3:28e71ce23bfd 399 _ser.putc(' ');
codeman 3:28e71ce23bfd 400 sendInt(EmbossLtColor);
codeman 3:28e71ce23bfd 401 _ser.putc(' ');
codeman 3:28e71ce23bfd 402 sendInt(TextColor0);
codeman 3:28e71ce23bfd 403 _ser.putc(' ');
codeman 3:28e71ce23bfd 404 sendInt(TextColor1);
codeman 3:28e71ce23bfd 405 _ser.putc(' ');
codeman 3:28e71ce23bfd 406 sendInt(TextColorDisabled);
codeman 3:28e71ce23bfd 407 _ser.putc(' ');
codeman 3:28e71ce23bfd 408 sendInt(Color0);
codeman 3:28e71ce23bfd 409 _ser.putc(' ');
codeman 3:28e71ce23bfd 410 sendInt(Color1);
codeman 3:28e71ce23bfd 411 _ser.putc(' ');
codeman 3:28e71ce23bfd 412 sendInt(ColorDisabled);
codeman 3:28e71ce23bfd 413 _ser.putc(' ');
codeman 3:28e71ce23bfd 414 sendInt(CommonBkColor);
codeman 3:28e71ce23bfd 415 _ser.putc(' ');
codeman 3:28e71ce23bfd 416 sendInt(Fontw);
codeman 3:28e71ce23bfd 417 _ser.putc('\r');
codeman 3:28e71ce23bfd 418 waitForCR();
codeman 0:65606abcae36 419 }
codeman 5:4a6254e2012f 420 void ezLCD3::groupBox( int ID, int x, int y, int w, int h, int options, int theme, int stringID)
codeman 5:4a6254e2012f 421 {
codeman 5:4a6254e2012f 422 sendInt(Set_Gbox);
codeman 5:4a6254e2012f 423 _ser.putc(' ');
codeman 5:4a6254e2012f 424 sendInt(ID);
codeman 5:4a6254e2012f 425 _ser.putc(' ');
codeman 5:4a6254e2012f 426 sendInt(x);
codeman 5:4a6254e2012f 427 _ser.putc(' ');
codeman 5:4a6254e2012f 428 sendInt(y);
codeman 5:4a6254e2012f 429 _ser.putc(' ');
codeman 5:4a6254e2012f 430 sendInt(w);
codeman 5:4a6254e2012f 431 _ser.putc(' ');
codeman 5:4a6254e2012f 432 sendInt(h);
codeman 5:4a6254e2012f 433 _ser.putc(' ');
codeman 5:4a6254e2012f 434 sendInt(options);
codeman 5:4a6254e2012f 435 _ser.putc(' ');
codeman 5:4a6254e2012f 436 sendInt(theme);
codeman 5:4a6254e2012f 437 _ser.putc(' ');
codeman 5:4a6254e2012f 438 sendInt(stringID);
codeman 5:4a6254e2012f 439 _ser.putc('\r');
codeman 5:4a6254e2012f 440 waitForCR();
codeman 5:4a6254e2012f 441 }
codeman 0:65606abcae36 442
codeman 1:c7659c8af0d3 443 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 444 {
codeman 1:c7659c8af0d3 445 sendInt(Set_AMeter);
codeman 1:c7659c8af0d3 446 _ser.putc(' ');
codeman 1:c7659c8af0d3 447 sendInt(ID);
codeman 1:c7659c8af0d3 448 _ser.putc(' ');
codeman 1:c7659c8af0d3 449 sendInt(x);
codeman 1:c7659c8af0d3 450 _ser.putc(' ');
codeman 1:c7659c8af0d3 451 sendInt(y);
codeman 1:c7659c8af0d3 452 _ser.putc(' ');
codeman 1:c7659c8af0d3 453 sendInt(w);
codeman 1:c7659c8af0d3 454 _ser.putc(' ');
codeman 1:c7659c8af0d3 455 sendInt(h);
codeman 1:c7659c8af0d3 456 _ser.putc(' ');
codeman 1:c7659c8af0d3 457 sendInt(options);
codeman 1:c7659c8af0d3 458 _ser.putc(' ');
codeman 1:c7659c8af0d3 459 sendInt(value);
codeman 1:c7659c8af0d3 460 _ser.putc(' ');
codeman 1:c7659c8af0d3 461 sendInt(min);
codeman 1:c7659c8af0d3 462 _ser.putc(' ');
codeman 1:c7659c8af0d3 463 sendInt(max);
codeman 1:c7659c8af0d3 464 _ser.putc(' ');
codeman 1:c7659c8af0d3 465 sendInt(theme);
codeman 1:c7659c8af0d3 466 _ser.putc(' ');
codeman 1:c7659c8af0d3 467 sendInt(stringID);
codeman 1:c7659c8af0d3 468 _ser.putc(' ');
codeman 1:c7659c8af0d3 469 sendInt(type);
codeman 1:c7659c8af0d3 470 _ser.putc('\r');
codeman 1:c7659c8af0d3 471 waitForCR();
codeman 1:c7659c8af0d3 472 }
codeman 1:c7659c8af0d3 473
codeman 1:c7659c8af0d3 474 void ezLCD3::touchZone( int ID, int x, int y, int w, int h, bool option)
codeman 1:c7659c8af0d3 475 {
codeman 1:c7659c8af0d3 476 sendInt(Set_TouchZone);
codeman 1:c7659c8af0d3 477 _ser.putc(' ');
codeman 1:c7659c8af0d3 478 sendInt(ID);
codeman 1:c7659c8af0d3 479 _ser.putc(' ');
codeman 1:c7659c8af0d3 480 sendInt(x);
codeman 1:c7659c8af0d3 481 _ser.putc(' ');
codeman 1:c7659c8af0d3 482 sendInt(y);
codeman 1:c7659c8af0d3 483 _ser.putc(' ');
codeman 1:c7659c8af0d3 484 sendInt(w);
codeman 1:c7659c8af0d3 485 _ser.putc(' ');
codeman 1:c7659c8af0d3 486 sendInt(h);
codeman 1:c7659c8af0d3 487 _ser.putc(' ');
codeman 1:c7659c8af0d3 488 if(option)
codeman 1:c7659c8af0d3 489 sendInt('1');
codeman 1:c7659c8af0d3 490 else
codeman 1:c7659c8af0d3 491 sendInt('0');
codeman 1:c7659c8af0d3 492 _ser.putc('\r');
codeman 1:c7659c8af0d3 493 waitForCR();
codeman 1:c7659c8af0d3 494 }
codeman 1:c7659c8af0d3 495
codeman 1:c7659c8af0d3 496 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 497 {
codeman 1:c7659c8af0d3 498 sendInt(Set_Button);
codeman 1:c7659c8af0d3 499 _ser.putc(' ');
codeman 1:c7659c8af0d3 500 sendInt(ID);
codeman 1:c7659c8af0d3 501 _ser.putc(' ');
codeman 1:c7659c8af0d3 502 sendInt(x);
codeman 1:c7659c8af0d3 503 _ser.putc(' ');
codeman 1:c7659c8af0d3 504 sendInt(y);
codeman 1:c7659c8af0d3 505 _ser.putc(' ');
codeman 1:c7659c8af0d3 506 sendInt(w);
codeman 1:c7659c8af0d3 507 _ser.putc(' ');
codeman 1:c7659c8af0d3 508 sendInt(h);
codeman 1:c7659c8af0d3 509 _ser.putc(' ');
codeman 1:c7659c8af0d3 510 sendInt(option);
codeman 1:c7659c8af0d3 511 _ser.putc(' ');
codeman 1:c7659c8af0d3 512 sendInt(align);
codeman 1:c7659c8af0d3 513 _ser.putc(' ');
codeman 1:c7659c8af0d3 514 sendInt(radius);
codeman 1:c7659c8af0d3 515 _ser.putc(' ');
codeman 1:c7659c8af0d3 516 sendInt(theme);
codeman 1:c7659c8af0d3 517 _ser.putc(' ');
codeman 1:c7659c8af0d3 518 sendInt(stringID);
codeman 1:c7659c8af0d3 519 _ser.putc('\r');
codeman 1:c7659c8af0d3 520 waitForCR();
codeman 1:c7659c8af0d3 521 }
codeman 3:28e71ce23bfd 522 void ezLCD3::image( char *str )
codeman 3:28e71ce23bfd 523 {
codeman 3:28e71ce23bfd 524 sendInt(Picture);
codeman 3:28e71ce23bfd 525 _ser.putc(' ');
codeman 3:28e71ce23bfd 526 _ser.putc('\"');
codeman 3:28e71ce23bfd 527 sendString(str);
codeman 3:28e71ce23bfd 528 _ser.putc('\"');
codeman 3:28e71ce23bfd 529 _ser.putc('\r');
codeman 3:28e71ce23bfd 530 waitForCR();
codeman 3:28e71ce23bfd 531 }
codeman 3:28e71ce23bfd 532
codeman 3:28e71ce23bfd 533 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 534 {
codeman 3:28e71ce23bfd 535 sendInt(Set_Progress);
codeman 3:28e71ce23bfd 536 _ser.putc(' ');
codeman 3:28e71ce23bfd 537 sendInt(ID);
codeman 3:28e71ce23bfd 538 _ser.putc(' ');
codeman 3:28e71ce23bfd 539 sendInt(x);
codeman 3:28e71ce23bfd 540 _ser.putc(' ');
codeman 3:28e71ce23bfd 541 sendInt(y);
codeman 3:28e71ce23bfd 542 _ser.putc(' ');
codeman 3:28e71ce23bfd 543 sendInt(w);
codeman 3:28e71ce23bfd 544 _ser.putc(' ');
codeman 3:28e71ce23bfd 545 sendInt(h);
codeman 3:28e71ce23bfd 546 _ser.putc(' ');
codeman 3:28e71ce23bfd 547 sendInt(option);
codeman 3:28e71ce23bfd 548 _ser.putc(' ');
codeman 3:28e71ce23bfd 549 sendInt(value);
codeman 3:28e71ce23bfd 550 _ser.putc(' ');
codeman 3:28e71ce23bfd 551 sendInt(max);
codeman 3:28e71ce23bfd 552 _ser.putc(' ');
codeman 3:28e71ce23bfd 553 sendInt(theme);
codeman 3:28e71ce23bfd 554 _ser.putc(' ');
codeman 3:28e71ce23bfd 555 sendInt(stringID);
codeman 3:28e71ce23bfd 556 _ser.putc('\r');
codeman 3:28e71ce23bfd 557 waitForCR();
codeman 3:28e71ce23bfd 558 }
codeman 3:28e71ce23bfd 559
codeman 5:4a6254e2012f 560 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 561 {
codeman 5:4a6254e2012f 562 sendInt(Set_Slider);
codeman 5:4a6254e2012f 563 _ser.putc(' ');
codeman 5:4a6254e2012f 564 sendInt(ID);
codeman 5:4a6254e2012f 565 _ser.putc(' ');
codeman 5:4a6254e2012f 566 sendInt(x);
codeman 5:4a6254e2012f 567 _ser.putc(' ');
codeman 5:4a6254e2012f 568 sendInt(y);
codeman 5:4a6254e2012f 569 _ser.putc(' ');
codeman 5:4a6254e2012f 570 sendInt(w);
codeman 5:4a6254e2012f 571 _ser.putc(' ');
codeman 5:4a6254e2012f 572 sendInt(h);
codeman 5:4a6254e2012f 573 _ser.putc(' ');
codeman 5:4a6254e2012f 574 sendInt(option);
codeman 5:4a6254e2012f 575 _ser.putc(' ');
codeman 5:4a6254e2012f 576 sendInt(range);
codeman 5:4a6254e2012f 577 _ser.putc(' ');
codeman 5:4a6254e2012f 578 sendInt(res);
codeman 5:4a6254e2012f 579 _ser.putc(' ');
codeman 5:4a6254e2012f 580 sendInt(value);
codeman 5:4a6254e2012f 581 _ser.putc(' ');
codeman 5:4a6254e2012f 582 sendInt(theme);
codeman 5:4a6254e2012f 583 _ser.putc('\r');
codeman 5:4a6254e2012f 584 waitForCR();
codeman 5:4a6254e2012f 585 }
codeman 5:4a6254e2012f 586
codeman 3:28e71ce23bfd 587 void ezLCD3::image( int x, int y, char *str )
codeman 3:28e71ce23bfd 588 {
codeman 3:28e71ce23bfd 589 sendInt(Picture);
codeman 3:28e71ce23bfd 590 _ser.putc(' ');
codeman 3:28e71ce23bfd 591 sendInt(x);
codeman 3:28e71ce23bfd 592 _ser.putc(' ');
codeman 3:28e71ce23bfd 593 sendInt(y);
codeman 3:28e71ce23bfd 594 _ser.putc(' ');
codeman 3:28e71ce23bfd 595 _ser.putc('\"');
codeman 3:28e71ce23bfd 596 sendString(str);
codeman 3:28e71ce23bfd 597 _ser.putc('\"');
codeman 3:28e71ce23bfd 598 _ser.putc('\r');
codeman 3:28e71ce23bfd 599 waitForCR();
codeman 3:28e71ce23bfd 600 }
codeman 3:28e71ce23bfd 601 void ezLCD3::staticText( int ID, int x, int y, int w, int h, int option, int theme, int stringID)
codeman 3:28e71ce23bfd 602 {
codeman 3:28e71ce23bfd 603 sendInt(Set_StaticText);
codeman 3:28e71ce23bfd 604 _ser.putc(' ');
codeman 3:28e71ce23bfd 605 sendInt(ID);
codeman 3:28e71ce23bfd 606 _ser.putc(' ');
codeman 3:28e71ce23bfd 607 sendInt(x);
codeman 3:28e71ce23bfd 608 _ser.putc(' ');
codeman 3:28e71ce23bfd 609 sendInt(y);
codeman 3:28e71ce23bfd 610 _ser.putc(' ');
codeman 3:28e71ce23bfd 611 sendInt(w);
codeman 3:28e71ce23bfd 612 _ser.putc(' ');
codeman 3:28e71ce23bfd 613 sendInt(h);
codeman 3:28e71ce23bfd 614 _ser.putc(' ');
codeman 3:28e71ce23bfd 615 sendInt(option);
codeman 3:28e71ce23bfd 616 _ser.putc(' ');
codeman 3:28e71ce23bfd 617 sendInt(theme);
codeman 3:28e71ce23bfd 618 _ser.putc(' ');
codeman 3:28e71ce23bfd 619 sendInt(stringID);
codeman 3:28e71ce23bfd 620 _ser.putc('\r');
codeman 3:28e71ce23bfd 621 waitForCR();
codeman 3:28e71ce23bfd 622 }
codeman 1:c7659c8af0d3 623
codeman 1:c7659c8af0d3 624 unsigned int ezLCD3::wstack( int type )
codeman 1:c7659c8af0d3 625 {
codeman 1:c7659c8af0d3 626 sendInt( Wstack );
codeman 1:c7659c8af0d3 627 _ser.putc(' ');
codeman 1:c7659c8af0d3 628 sendInt( type );
codeman 1:c7659c8af0d3 629 _ser.putc('\r');
codeman 1:c7659c8af0d3 630 getString( buf );
codeman 1:c7659c8af0d3 631 return getInt( buf );
codeman 1:c7659c8af0d3 632 }
codeman 3:28e71ce23bfd 633 void ezLCD3::wvalue( int ID, int value)
codeman 3:28e71ce23bfd 634 {
codeman 3:28e71ce23bfd 635 sendInt( Widget_Values );
codeman 3:28e71ce23bfd 636 _ser.putc(' ');
codeman 3:28e71ce23bfd 637 sendInt( ID );
codeman 3:28e71ce23bfd 638 _ser.putc(' ');
codeman 3:28e71ce23bfd 639 sendInt( value );
codeman 3:28e71ce23bfd 640 _ser.putc('\r');
codeman 3:28e71ce23bfd 641 waitForCR();
codeman 3:28e71ce23bfd 642 }
codeman 3:28e71ce23bfd 643 void ezLCD3::wstate( int ID, int option )
codeman 3:28e71ce23bfd 644 {
codeman 3:28e71ce23bfd 645 sendInt( Widget_State );
codeman 3:28e71ce23bfd 646 _ser.putc(' ');
codeman 3:28e71ce23bfd 647 sendInt( ID );
codeman 3:28e71ce23bfd 648 _ser.putc(' ');
codeman 3:28e71ce23bfd 649 sendInt( option );
codeman 3:28e71ce23bfd 650 _ser.putc('\r');
codeman 3:28e71ce23bfd 651 waitForCR();
codeman 3:28e71ce23bfd 652 }
codeman 3:28e71ce23bfd 653
codeman 3:28e71ce23bfd 654 void ezLCD3::sendCommand(char *str)
codeman 3:28e71ce23bfd 655 {
codeman 3:28e71ce23bfd 656 sendString(str);
codeman 3:28e71ce23bfd 657 _ser.putc('\r');
codeman 3:28e71ce23bfd 658 waitForCR();
codeman 3:28e71ce23bfd 659 }
codeman 3:28e71ce23bfd 660
codeman 0:65606abcae36 661 int ezLCD3::_putc( int c)
codeman 0:65606abcae36 662 {
codeman 3:28e71ce23bfd 663 sendInt(Print);
codeman 0:65606abcae36 664 _ser.putc(' ');
codeman 0:65606abcae36 665 _ser.putc('\"');
codeman 0:65606abcae36 666 _ser.putc(c);
codeman 0:65606abcae36 667 _ser.putc('\"');
codeman 0:65606abcae36 668 _ser.putc('\r');
codeman 0:65606abcae36 669 waitForCR();
codeman 0:65606abcae36 670 return (c);
codeman 0:65606abcae36 671 }
codeman 0:65606abcae36 672
codeman 0:65606abcae36 673 int ezLCD3::_getc(void)
codeman 0:65606abcae36 674 {
codeman 0:65606abcae36 675 char r = 0;
codeman 0:65606abcae36 676 return(r);
codeman 0:65606abcae36 677 }
codeman 0:65606abcae36 678
codeman 0:65606abcae36 679 int ezLCD3::putc ( int c )
codeman 0:65606abcae36 680 {
codeman 0:65606abcae36 681 return(_ser.putc(c));
codeman 0:65606abcae36 682 }
codeman 0:65606abcae36 683
codeman 0:65606abcae36 684 int ezLCD3::getc (void)
codeman 0:65606abcae36 685 {
codeman 0:65606abcae36 686 return(_ser.getc());
codeman 0:65606abcae36 687 }
codeman 0:65606abcae36 688
codeman 0:65606abcae36 689
codeman 3:28e71ce23bfd 690