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 Apr 29 03:04:13 2013 +0000
Revision:
3:28e71ce23bfd
Parent:
2:fc7d151593f1
Child:
5:4a6254e2012f
version .5 ;

Who changed what in which revision?

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