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:
Sun Apr 28 07:41:27 2013 +0000
Revision:
1:c7659c8af0d3
Parent:
0:65606abcae36
Child:
2:fc7d151593f1
4/28/2013 arLCD

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 //Serial pc(USBTX, USBRX);
codeman 1:c7659c8af0d3 10 // Circular buffers for serial TX and RX data - used by interrupt routines
codeman 1:c7659c8af0d3 11 const int buffer_size = 64;
codeman 1:c7659c8af0d3 12 // might need to increase buffer size for high baud rates
codeman 1:c7659c8af0d3 13 char tx_buffer[buffer_size];
codeman 1:c7659c8af0d3 14 char rx_buffer[buffer_size];
codeman 1:c7659c8af0d3 15 // Circular buffer pointers
codeman 1:c7659c8af0d3 16 // volatile makes read-modify-write atomic
codeman 1:c7659c8af0d3 17 volatile int tx_in=0;
codeman 1:c7659c8af0d3 18 volatile int tx_out=0;
codeman 1:c7659c8af0d3 19 volatile int rx_in=0;
codeman 1:c7659c8af0d3 20 volatile int rx_out=0;
codeman 1:c7659c8af0d3 21 // Line buffers for sprintf and sscanf
codeman 1:c7659c8af0d3 22 char tx_line[80];
codeman 1:c7659c8af0d3 23 char rx_line[80];
codeman 1:c7659c8af0d3 24
codeman 1:c7659c8af0d3 25 char buf[64];
codeman 1:c7659c8af0d3 26
codeman 0:65606abcae36 27 ezLCD3::ezLCD3(PinName tx, PinName rx) : Stream("ezLCD3") , _ser(tx, rx)
codeman 0:65606abcae36 28 {
codeman 0:65606abcae36 29 _ser.baud(115200); // default baud rate
codeman 1:c7659c8af0d3 30 _ser.attach(this,&ezLCD3::Rx_interrupt, Serial::RxIrq);
codeman 0:65606abcae36 31 }
codeman 0:65606abcae36 32
codeman 1:c7659c8af0d3 33 void ezLCD3::Rx_interrupt( void )
codeman 1:c7659c8af0d3 34 {
codeman 1:c7659c8af0d3 35 // Loop just in case more than one character is in UART's receive FIFO buffer
codeman 1:c7659c8af0d3 36 // Stop if buffer full
codeman 1:c7659c8af0d3 37 while ((_ser.readable()) || (((rx_in + 1) % buffer_size) == rx_out)) {
codeman 1:c7659c8af0d3 38 rx_buffer[rx_in] = _ser.getc();
codeman 1:c7659c8af0d3 39 // Uncomment to Echo to USB serial to watch data flow
codeman 1:c7659c8af0d3 40 // monitor_device.putc(rx_buffer[rx_in]);
codeman 1:c7659c8af0d3 41 rx_in = (rx_in + 1) % buffer_size;
codeman 1:c7659c8af0d3 42 }
codeman 1:c7659c8af0d3 43 return;
codeman 1:c7659c8af0d3 44 }
codeman 0:65606abcae36 45
codeman 0:65606abcae36 46 /* itoa: convert n to characters in s */
codeman 0:65606abcae36 47 void ezLCD3::itoa(int value, char *sp, int radix)
codeman 0:65606abcae36 48 {
codeman 0:65606abcae36 49 char tmp[16];// be careful with the length of the buffer
codeman 0:65606abcae36 50 char *tp = tmp;
codeman 0:65606abcae36 51 int i;
codeman 0:65606abcae36 52 unsigned v;
codeman 0:65606abcae36 53 int sign;
codeman 0:65606abcae36 54
codeman 0:65606abcae36 55 sign = (radix == 10 && value < 0);
codeman 0:65606abcae36 56 if (sign) v = -value;
codeman 0:65606abcae36 57 else v = (unsigned)value;
codeman 0:65606abcae36 58
codeman 0:65606abcae36 59 while (v || tp == tmp) {
codeman 0:65606abcae36 60 i = v % radix;
codeman 0:65606abcae36 61 v /= radix; // v/=radix uses less CPU clocks than v=v/radix does
codeman 0:65606abcae36 62 if (i < 10)
codeman 0:65606abcae36 63 *tp++ = i+'0';
codeman 0:65606abcae36 64 else
codeman 0:65606abcae36 65 *tp++ = i + 'a' - 10;
codeman 0:65606abcae36 66 }
codeman 0:65606abcae36 67
codeman 0:65606abcae36 68 if (sign)
codeman 0:65606abcae36 69 *sp++ = '-';
codeman 0:65606abcae36 70 while (tp > tmp)
codeman 0:65606abcae36 71 *sp++ = *--tp;
codeman 0:65606abcae36 72 }
codeman 1:c7659c8af0d3 73
codeman 1:c7659c8af0d3 74 bool ezLCD3::sync( void )
codeman 1:c7659c8af0d3 75 {
codeman 1:c7659c8af0d3 76 rx_in=0;
codeman 1:c7659c8af0d3 77 rx_out=0;
codeman 1:c7659c8af0d3 78 _ser.putc('\r');
codeman 1:c7659c8af0d3 79 if(waitForCR())
codeman 1:c7659c8af0d3 80 return true;
codeman 1:c7659c8af0d3 81 else
codeman 1:c7659c8af0d3 82 return false;
codeman 1:c7659c8af0d3 83
codeman 1:c7659c8af0d3 84 }
codeman 0:65606abcae36 85 void ezLCD3::sendInt( int i )
codeman 0:65606abcae36 86 {
codeman 0:65606abcae36 87 char value[5]= {0, 0, 0, 0, 0};
codeman 0:65606abcae36 88 itoa(i, value, 10);
codeman 1:c7659c8af0d3 89 if(value[0]) _ser.putc(value[0]);
codeman 1:c7659c8af0d3 90 if(value[1]) _ser.putc(value[1]);
codeman 1:c7659c8af0d3 91 if(value[2]) _ser.putc(value[2]);
codeman 1:c7659c8af0d3 92 if(value[3]) _ser.putc(value[3]);
codeman 1:c7659c8af0d3 93 if(value[4]) _ser.putc(value[4]);
codeman 0:65606abcae36 94 }
codeman 1:c7659c8af0d3 95
codeman 1:c7659c8af0d3 96 void ezLCD3::stripSpace(char* str)
codeman 1:c7659c8af0d3 97 {
codeman 1:c7659c8af0d3 98 char* i = str;
codeman 1:c7659c8af0d3 99 char* j = str;
codeman 1:c7659c8af0d3 100 while(*j != 0)
codeman 1:c7659c8af0d3 101 {
codeman 1:c7659c8af0d3 102 *i = *j++;
codeman 1:c7659c8af0d3 103 if(*i != ' ')
codeman 1:c7659c8af0d3 104 i++;
codeman 1:c7659c8af0d3 105 }
codeman 1:c7659c8af0d3 106 *i = 0;
codeman 1:c7659c8af0d3 107 }
codeman 1:c7659c8af0d3 108
codeman 0:65606abcae36 109 int ezLCD3::getInt( char *str )
codeman 0:65606abcae36 110 {
codeman 1:c7659c8af0d3 111 stripSpace(str);
codeman 1:c7659c8af0d3 112 return atoi(str );
codeman 0:65606abcae36 113 }
codeman 1:c7659c8af0d3 114
codeman 0:65606abcae36 115 void ezLCD3::getString( char *str )
codeman 0:65606abcae36 116 {
codeman 1:c7659c8af0d3 117 char c=0;
codeman 1:c7659c8af0d3 118 unsigned long timeOut=0;
codeman 1:c7659c8af0d3 119 do {
codeman 1:c7659c8af0d3 120 if(rx_in != rx_out) {
codeman 1:c7659c8af0d3 121 c=rx_buffer[rx_out];
codeman 1:c7659c8af0d3 122 rx_out = (rx_out + 1) % buffer_size;
codeman 1:c7659c8af0d3 123 *str++ = c;
codeman 1:c7659c8af0d3 124 }
codeman 1:c7659c8af0d3 125 timeOut++;
codeman 1:c7659c8af0d3 126 } while(c!='\r' && timeOut != 0xfffff);
codeman 1:c7659c8af0d3 127 *str--;
codeman 1:c7659c8af0d3 128 *str = 0;
codeman 0:65606abcae36 129 }
codeman 1:c7659c8af0d3 130
codeman 0:65606abcae36 131 bool ezLCD3::waitForCR( void )
codeman 0:65606abcae36 132 {
codeman 1:c7659c8af0d3 133 char c=0;
codeman 1:c7659c8af0d3 134 unsigned long timeOut=0;
codeman 1:c7659c8af0d3 135 while(rx_in == rx_out) {
codeman 1:c7659c8af0d3 136 if(timeOut++ > 0xfffff) return false;
codeman 1:c7659c8af0d3 137 }
codeman 1:c7659c8af0d3 138 c=rx_buffer[rx_out];
codeman 1:c7659c8af0d3 139 rx_out = (rx_out + 1) % buffer_size;
codeman 1:c7659c8af0d3 140 if(c == '\r') {
codeman 0:65606abcae36 141 return true;
codeman 1:c7659c8af0d3 142 } else {
codeman 0:65606abcae36 143 return false;
codeman 1:c7659c8af0d3 144 }
codeman 0:65606abcae36 145 }
codeman 0:65606abcae36 146
codeman 0:65606abcae36 147 void ezLCD3::cls()
codeman 0:65606abcae36 148 {
codeman 0:65606abcae36 149 sendInt(Clr_Screen);
codeman 0:65606abcae36 150 _ser.putc('\r');
codeman 0:65606abcae36 151 waitForCR();
codeman 0:65606abcae36 152 }
codeman 0:65606abcae36 153
codeman 0:65606abcae36 154 void ezLCD3::cls(int bColor)
codeman 0:65606abcae36 155 {
codeman 0:65606abcae36 156 sendInt(Clr_Screen);
codeman 0:65606abcae36 157 _ser.putc(' ');
codeman 0:65606abcae36 158 sendInt(bColor);
codeman 0:65606abcae36 159 _ser.putc('\r');
codeman 0:65606abcae36 160 waitForCR();
codeman 0:65606abcae36 161 }
codeman 0:65606abcae36 162
codeman 0:65606abcae36 163 void ezLCD3::cls(int bColor, int fColor)
codeman 0:65606abcae36 164 {
codeman 0:65606abcae36 165 sendInt(Clr_Screen);
codeman 0:65606abcae36 166 _ser.putc(' ');
codeman 0:65606abcae36 167 sendInt(bColor);
codeman 0:65606abcae36 168 _ser.putc(' ');
codeman 0:65606abcae36 169 sendInt(fColor);
codeman 0:65606abcae36 170 _ser.putc('\r');
codeman 0:65606abcae36 171 waitForCR();
codeman 0:65606abcae36 172 }
codeman 0:65606abcae36 173 void ezLCD3::color(int fColor)
codeman 0:65606abcae36 174 {
codeman 1:c7659c8af0d3 175 //pc.printf("color");
codeman 0:65606abcae36 176 sendInt(Color);
codeman 0:65606abcae36 177 _ser.putc(' ');
codeman 0:65606abcae36 178 sendInt(fColor);
codeman 0:65606abcae36 179 _ser.putc('\r');
codeman 0:65606abcae36 180 waitForCR();
codeman 0:65606abcae36 181 }
codeman 0:65606abcae36 182
codeman 0:65606abcae36 183 void ezLCD3::pos(int col, int row)
codeman 0:65606abcae36 184 {
codeman 0:65606abcae36 185 //posXY(XSIZE*col, (YSIZE*row));
codeman 0:65606abcae36 186 }
codeman 0:65606abcae36 187
codeman 0:65606abcae36 188 void ezLCD3::xy(int x, int y)
codeman 0:65606abcae36 189 {
codeman 0:65606abcae36 190 sendInt(XY);
codeman 0:65606abcae36 191 _ser.putc(' ');
codeman 0:65606abcae36 192 sendInt(x);
codeman 0:65606abcae36 193 _ser.putc(' ');
codeman 0:65606abcae36 194 sendInt(y);
codeman 0:65606abcae36 195 _ser.putc('\r');
codeman 1:c7659c8af0d3 196 waitForCR();
codeman 0:65606abcae36 197 }
codeman 0:65606abcae36 198
codeman 0:65606abcae36 199 void ezLCD3::plot( void )
codeman 0:65606abcae36 200 {
codeman 0:65606abcae36 201 sendInt(Plot);
codeman 0:65606abcae36 202 _ser.putc('\r');
codeman 0:65606abcae36 203 waitForCR();
codeman 0:65606abcae36 204 }
codeman 0:65606abcae36 205
codeman 0:65606abcae36 206 void ezLCD3::plot( int x, int y )
codeman 0:65606abcae36 207 {
codeman 0:65606abcae36 208 sendInt(Plot);
codeman 0:65606abcae36 209 _ser.putc(' ');
codeman 0:65606abcae36 210 sendInt(x);
codeman 0:65606abcae36 211 _ser.putc(' ');
codeman 0:65606abcae36 212 sendInt(y);
codeman 0:65606abcae36 213 _ser.putc('\r');
codeman 0:65606abcae36 214 waitForCR();
codeman 0:65606abcae36 215 }
codeman 0:65606abcae36 216 void ezLCD3::line(int x, int y )
codeman 0:65606abcae36 217 {
codeman 0:65606abcae36 218 sendInt(Line);
codeman 0:65606abcae36 219 _ser.putc(' ');
codeman 0:65606abcae36 220 sendInt(x);
codeman 0:65606abcae36 221 _ser.putc(' ');
codeman 0:65606abcae36 222 sendInt(y);
codeman 0:65606abcae36 223 _ser.putc('\r');
codeman 0:65606abcae36 224 waitForCR();
codeman 0:65606abcae36 225 }
codeman 0:65606abcae36 226
codeman 0:65606abcae36 227 void ezLCD3::circle(int radius, bool filled)
codeman 0:65606abcae36 228 {
codeman 0:65606abcae36 229 sendInt(Circle);
codeman 0:65606abcae36 230 _ser.putc(' ');
codeman 0:65606abcae36 231 sendInt(radius);
codeman 0:65606abcae36 232 if(filled) {
codeman 0:65606abcae36 233 _ser.putc(' ');
codeman 0:65606abcae36 234 _ser.putc('f');
codeman 0:65606abcae36 235 }
codeman 0:65606abcae36 236 _ser.putc('\r');
codeman 0:65606abcae36 237 waitForCR();
codeman 0:65606abcae36 238 }
codeman 0:65606abcae36 239
codeman 0:65606abcae36 240 void ezLCD3::box(int x, int y, bool filled)
codeman 0:65606abcae36 241 {
codeman 0:65606abcae36 242 sendInt(Box);
codeman 0:65606abcae36 243 _ser.putc(' ');
codeman 0:65606abcae36 244 sendInt(x);
codeman 0:65606abcae36 245 _ser.putc(' ');
codeman 0:65606abcae36 246 sendInt(y);
codeman 0:65606abcae36 247 if(filled) {
codeman 0:65606abcae36 248 _ser.putc(' ');
codeman 0:65606abcae36 249 _ser.putc('f');
codeman 0:65606abcae36 250 }
codeman 0:65606abcae36 251 _ser.putc('\r');
codeman 0:65606abcae36 252 waitForCR();
codeman 0:65606abcae36 253 }
codeman 0:65606abcae36 254
codeman 0:65606abcae36 255 void ezLCD3::light(int i)
codeman 0:65606abcae36 256 {
codeman 1:c7659c8af0d3 257 //pc.printf("light");
codeman 0:65606abcae36 258 if (i >= 0 && i <= 100) {
codeman 0:65606abcae36 259 sendInt(Light);
codeman 0:65606abcae36 260 putc(' ');
codeman 0:65606abcae36 261 sendInt( i );
codeman 0:65606abcae36 262 putc('\r');
codeman 0:65606abcae36 263 waitForCR();
codeman 0:65606abcae36 264 }
codeman 0:65606abcae36 265 }
codeman 1:c7659c8af0d3 266
codeman 1:c7659c8af0d3 267 int ezLCD3::getXmax( void )
codeman 0:65606abcae36 268 {
codeman 0:65606abcae36 269 sendInt(Xmax);
codeman 1:c7659c8af0d3 270 _ser.putc('\r');
codeman 1:c7659c8af0d3 271 getString( buf );
codeman 1:c7659c8af0d3 272 return getInt( buf );
codeman 0:65606abcae36 273 }
codeman 1:c7659c8af0d3 274 int ezLCD3::getYmax( void )
codeman 0:65606abcae36 275 {
codeman 0:65606abcae36 276 sendInt(Ymax);
codeman 1:c7659c8af0d3 277 _ser.putc('\r');
codeman 1:c7659c8af0d3 278 getString( buf );
codeman 1:c7659c8af0d3 279 return getInt( buf );
codeman 1:c7659c8af0d3 280 }
codeman 1:c7659c8af0d3 281
codeman 1:c7659c8af0d3 282 void ezLCD3::setStringID( int ID, char *str )
codeman 1:c7659c8af0d3 283 {
codeman 1:c7659c8af0d3 284 unsigned char c;
codeman 1:c7659c8af0d3 285 sendInt(StringID);
codeman 1:c7659c8af0d3 286 _ser.putc(' ');
codeman 1:c7659c8af0d3 287 sendInt(ID);
codeman 1:c7659c8af0d3 288 _ser.putc(' ');
codeman 1:c7659c8af0d3 289 _ser.putc('\"');
codeman 1:c7659c8af0d3 290 while( (c = *str++) )
codeman 1:c7659c8af0d3 291 _ser.putc(c);
codeman 1:c7659c8af0d3 292 _ser.putc('\"');
codeman 1:c7659c8af0d3 293 _ser.putc('\r');
codeman 0:65606abcae36 294 waitForCR();
codeman 0:65606abcae36 295 }
codeman 0:65606abcae36 296
codeman 1:c7659c8af0d3 297 void ezLCD3::getStringID( int ID , char *str)
codeman 1:c7659c8af0d3 298 {
codeman 1:c7659c8af0d3 299 sendInt(StringID);
codeman 1:c7659c8af0d3 300 _ser.putc(' ');
codeman 1:c7659c8af0d3 301 sendInt(ID);
codeman 1:c7659c8af0d3 302 _ser.putc('\r');
codeman 1:c7659c8af0d3 303 getString(str);
codeman 0:65606abcae36 304 }
codeman 0:65606abcae36 305
codeman 0:65606abcae36 306 void ezLCD3::reverseMode()
codeman 0:65606abcae36 307 {
codeman 0:65606abcae36 308 putc(0x7c);
codeman 0:65606abcae36 309 putc(0x12);
codeman 0:65606abcae36 310 }
codeman 0:65606abcae36 311
codeman 0:65606abcae36 312 void ezLCD3::resolution(int type)
codeman 0:65606abcae36 313 {
codeman 1:c7659c8af0d3 314
codeman 0:65606abcae36 315 }
codeman 0:65606abcae36 316
codeman 0:65606abcae36 317 void ezLCD3::print( char *str )
codeman 0:65606abcae36 318 {
codeman 0:65606abcae36 319 unsigned char c;
codeman 0:65606abcae36 320 sendInt(Print);
codeman 0:65606abcae36 321 _ser.putc(' ');
codeman 0:65606abcae36 322 _ser.putc('\"');
codeman 0:65606abcae36 323 while( (c = *str++) )
codeman 0:65606abcae36 324 _ser.putc(c);
codeman 0:65606abcae36 325 _ser.putc('\"');
codeman 0:65606abcae36 326 _ser.putc('\r');
codeman 0:65606abcae36 327 waitForCR();
codeman 0:65606abcae36 328 }
codeman 0:65606abcae36 329
codeman 0:65606abcae36 330 void ezLCD3::resolution(int x, int y)
codeman 0:65606abcae36 331 {
codeman 0:65606abcae36 332 _xMax = x;
codeman 0:65606abcae36 333 _yMax = y;
codeman 0:65606abcae36 334 }
codeman 0:65606abcae36 335
codeman 1:c7659c8af0d3 336 //ameter [ID][x][y][width][height][options][value][min][max][theme][stringID][type]
codeman 1:c7659c8af0d3 337 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 338 {
codeman 1:c7659c8af0d3 339 sendInt(Set_AMeter);
codeman 1:c7659c8af0d3 340 _ser.putc(' ');
codeman 1:c7659c8af0d3 341 sendInt(ID);
codeman 1:c7659c8af0d3 342 _ser.putc(' ');
codeman 1:c7659c8af0d3 343 sendInt(x);
codeman 1:c7659c8af0d3 344 _ser.putc(' ');
codeman 1:c7659c8af0d3 345 sendInt(y);
codeman 1:c7659c8af0d3 346 _ser.putc(' ');
codeman 1:c7659c8af0d3 347 sendInt(w);
codeman 1:c7659c8af0d3 348 _ser.putc(' ');
codeman 1:c7659c8af0d3 349 sendInt(h);
codeman 1:c7659c8af0d3 350 _ser.putc(' ');
codeman 1:c7659c8af0d3 351 sendInt(options);
codeman 1:c7659c8af0d3 352 _ser.putc(' ');
codeman 1:c7659c8af0d3 353 sendInt(value);
codeman 1:c7659c8af0d3 354 _ser.putc(' ');
codeman 1:c7659c8af0d3 355 sendInt(min);
codeman 1:c7659c8af0d3 356 _ser.putc(' ');
codeman 1:c7659c8af0d3 357 sendInt(max);
codeman 1:c7659c8af0d3 358 _ser.putc(' ');
codeman 1:c7659c8af0d3 359 sendInt(theme);
codeman 1:c7659c8af0d3 360 _ser.putc(' ');
codeman 1:c7659c8af0d3 361 sendInt(stringID);
codeman 1:c7659c8af0d3 362 _ser.putc(' ');
codeman 1:c7659c8af0d3 363 sendInt(type);
codeman 1:c7659c8af0d3 364 _ser.putc('\r');
codeman 1:c7659c8af0d3 365 waitForCR();
codeman 1:c7659c8af0d3 366 }
codeman 1:c7659c8af0d3 367
codeman 1:c7659c8af0d3 368 void ezLCD3::touchZone( int ID, int x, int y, int w, int h, bool option)
codeman 1:c7659c8af0d3 369 {
codeman 1:c7659c8af0d3 370 sendInt(Set_TouchZone);
codeman 1:c7659c8af0d3 371 _ser.putc(' ');
codeman 1:c7659c8af0d3 372 sendInt(ID);
codeman 1:c7659c8af0d3 373 _ser.putc(' ');
codeman 1:c7659c8af0d3 374 sendInt(x);
codeman 1:c7659c8af0d3 375 _ser.putc(' ');
codeman 1:c7659c8af0d3 376 sendInt(y);
codeman 1:c7659c8af0d3 377 _ser.putc(' ');
codeman 1:c7659c8af0d3 378 sendInt(w);
codeman 1:c7659c8af0d3 379 _ser.putc(' ');
codeman 1:c7659c8af0d3 380 sendInt(h);
codeman 1:c7659c8af0d3 381 _ser.putc(' ');
codeman 1:c7659c8af0d3 382 if(option)
codeman 1:c7659c8af0d3 383 sendInt('1');
codeman 1:c7659c8af0d3 384 else
codeman 1:c7659c8af0d3 385 sendInt('0');
codeman 1:c7659c8af0d3 386 _ser.putc('\r');
codeman 1:c7659c8af0d3 387 waitForCR();
codeman 1:c7659c8af0d3 388 }
codeman 1:c7659c8af0d3 389
codeman 1:c7659c8af0d3 390 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 391 {
codeman 1:c7659c8af0d3 392 sendInt(Set_Button);
codeman 1:c7659c8af0d3 393 _ser.putc(' ');
codeman 1:c7659c8af0d3 394 sendInt(ID);
codeman 1:c7659c8af0d3 395 _ser.putc(' ');
codeman 1:c7659c8af0d3 396 sendInt(x);
codeman 1:c7659c8af0d3 397 _ser.putc(' ');
codeman 1:c7659c8af0d3 398 sendInt(y);
codeman 1:c7659c8af0d3 399 _ser.putc(' ');
codeman 1:c7659c8af0d3 400 sendInt(w);
codeman 1:c7659c8af0d3 401 _ser.putc(' ');
codeman 1:c7659c8af0d3 402 sendInt(h);
codeman 1:c7659c8af0d3 403 _ser.putc(' ');
codeman 1:c7659c8af0d3 404 sendInt(option);
codeman 1:c7659c8af0d3 405 _ser.putc(' ');
codeman 1:c7659c8af0d3 406 sendInt(align);
codeman 1:c7659c8af0d3 407 _ser.putc(' ');
codeman 1:c7659c8af0d3 408 sendInt(radius);
codeman 1:c7659c8af0d3 409 _ser.putc(' ');
codeman 1:c7659c8af0d3 410 sendInt(theme);
codeman 1:c7659c8af0d3 411 _ser.putc(' ');
codeman 1:c7659c8af0d3 412 sendInt(stringID);
codeman 1:c7659c8af0d3 413 _ser.putc('\r');
codeman 1:c7659c8af0d3 414 waitForCR();
codeman 1:c7659c8af0d3 415 }
codeman 1:c7659c8af0d3 416
codeman 1:c7659c8af0d3 417 unsigned int ezLCD3::wstack( int type )
codeman 1:c7659c8af0d3 418 {
codeman 1:c7659c8af0d3 419 sendInt( Wstack );
codeman 1:c7659c8af0d3 420 _ser.putc(' ');
codeman 1:c7659c8af0d3 421 sendInt( type );
codeman 1:c7659c8af0d3 422 _ser.putc('\r');
codeman 1:c7659c8af0d3 423 getString( buf );
codeman 1:c7659c8af0d3 424 return getInt( buf );
codeman 1:c7659c8af0d3 425 }
codeman 0:65606abcae36 426 int ezLCD3::_putc( int c)
codeman 0:65606abcae36 427 {
codeman 0:65606abcae36 428 _ser.putc('2');
codeman 0:65606abcae36 429 _ser.putc('5');
codeman 0:65606abcae36 430 _ser.putc(' ');
codeman 0:65606abcae36 431 _ser.putc('\"');
codeman 0:65606abcae36 432 _ser.putc(c);
codeman 0:65606abcae36 433 _ser.putc('\"');
codeman 0:65606abcae36 434 _ser.putc('\r');
codeman 0:65606abcae36 435 waitForCR();
codeman 0:65606abcae36 436 return (c);
codeman 0:65606abcae36 437 }
codeman 0:65606abcae36 438
codeman 0:65606abcae36 439 int ezLCD3::_getc(void)
codeman 0:65606abcae36 440 {
codeman 0:65606abcae36 441 char r = 0;
codeman 0:65606abcae36 442 return(r);
codeman 0:65606abcae36 443 }
codeman 0:65606abcae36 444
codeman 0:65606abcae36 445 int ezLCD3::putc ( int c )
codeman 0:65606abcae36 446 {
codeman 0:65606abcae36 447 return(_ser.putc(c));
codeman 0:65606abcae36 448 }
codeman 0:65606abcae36 449
codeman 0:65606abcae36 450 int ezLCD3::getc (void)
codeman 0:65606abcae36 451 {
codeman 0:65606abcae36 452 return(_ser.getc());
codeman 0:65606abcae36 453 }
codeman 0:65606abcae36 454
codeman 0:65606abcae36 455 void ezLCD3::lcdbaud(int b)
codeman 0:65606abcae36 456 {
codeman 0:65606abcae36 457 if (b > 0 && b < 7) {
codeman 0:65606abcae36 458 putc(0x7c);
codeman 0:65606abcae36 459 putc(0x07);
codeman 0:65606abcae36 460 putc(b+'0');
codeman 0:65606abcae36 461 }
codeman 0:65606abcae36 462 }
codeman 0:65606abcae36 463