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 19:33:18 2013 +0000
Revision:
2:fc7d151593f1
Parent:
1:c7659c8af0d3
Child:
3:28e71ce23bfd
cleanup 1;

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 1:c7659c8af0d3 94 char* i = str;
codeman 1:c7659c8af0d3 95 char* j = str;
codeman 1:c7659c8af0d3 96 while(*j != 0)
codeman 1:c7659c8af0d3 97 {
codeman 1:c7659c8af0d3 98 *i = *j++;
codeman 1:c7659c8af0d3 99 if(*i != ' ')
codeman 1:c7659c8af0d3 100 i++;
codeman 1:c7659c8af0d3 101 }
codeman 1:c7659c8af0d3 102 *i = 0;
codeman 1:c7659c8af0d3 103 }
codeman 1:c7659c8af0d3 104
codeman 0:65606abcae36 105 int ezLCD3::getInt( char *str )
codeman 0:65606abcae36 106 {
codeman 1:c7659c8af0d3 107 stripSpace(str);
codeman 1:c7659c8af0d3 108 return atoi(str );
codeman 0:65606abcae36 109 }
codeman 1:c7659c8af0d3 110
codeman 0:65606abcae36 111 void ezLCD3::getString( char *str )
codeman 0:65606abcae36 112 {
codeman 1:c7659c8af0d3 113 char c=0;
codeman 1:c7659c8af0d3 114 unsigned long timeOut=0;
codeman 1:c7659c8af0d3 115 do {
codeman 1:c7659c8af0d3 116 if(rx_in != rx_out) {
codeman 1:c7659c8af0d3 117 c=rx_buffer[rx_out];
codeman 1:c7659c8af0d3 118 rx_out = (rx_out + 1) % buffer_size;
codeman 1:c7659c8af0d3 119 *str++ = c;
codeman 1:c7659c8af0d3 120 }
codeman 1:c7659c8af0d3 121 timeOut++;
codeman 1:c7659c8af0d3 122 } while(c!='\r' && timeOut != 0xfffff);
codeman 1:c7659c8af0d3 123 *str--;
codeman 1:c7659c8af0d3 124 *str = 0;
codeman 0:65606abcae36 125 }
codeman 1:c7659c8af0d3 126
codeman 0:65606abcae36 127 bool ezLCD3::waitForCR( void )
codeman 0:65606abcae36 128 {
codeman 1:c7659c8af0d3 129 char c=0;
codeman 1:c7659c8af0d3 130 unsigned long timeOut=0;
codeman 1:c7659c8af0d3 131 while(rx_in == rx_out) {
codeman 1:c7659c8af0d3 132 if(timeOut++ > 0xfffff) return false;
codeman 1:c7659c8af0d3 133 }
codeman 1:c7659c8af0d3 134 c=rx_buffer[rx_out];
codeman 1:c7659c8af0d3 135 rx_out = (rx_out + 1) % buffer_size;
codeman 1:c7659c8af0d3 136 if(c == '\r') {
codeman 0:65606abcae36 137 return true;
codeman 1:c7659c8af0d3 138 } else {
codeman 0:65606abcae36 139 return false;
codeman 1:c7659c8af0d3 140 }
codeman 0:65606abcae36 141 }
codeman 0:65606abcae36 142
codeman 0:65606abcae36 143 void ezLCD3::cls()
codeman 0:65606abcae36 144 {
codeman 0:65606abcae36 145 sendInt(Clr_Screen);
codeman 0:65606abcae36 146 _ser.putc('\r');
codeman 0:65606abcae36 147 waitForCR();
codeman 0:65606abcae36 148 }
codeman 0:65606abcae36 149
codeman 0:65606abcae36 150 void ezLCD3::cls(int bColor)
codeman 0:65606abcae36 151 {
codeman 0:65606abcae36 152 sendInt(Clr_Screen);
codeman 0:65606abcae36 153 _ser.putc(' ');
codeman 0:65606abcae36 154 sendInt(bColor);
codeman 0:65606abcae36 155 _ser.putc('\r');
codeman 0:65606abcae36 156 waitForCR();
codeman 0:65606abcae36 157 }
codeman 0:65606abcae36 158
codeman 0:65606abcae36 159 void ezLCD3::cls(int bColor, int fColor)
codeman 0:65606abcae36 160 {
codeman 0:65606abcae36 161 sendInt(Clr_Screen);
codeman 0:65606abcae36 162 _ser.putc(' ');
codeman 0:65606abcae36 163 sendInt(bColor);
codeman 0:65606abcae36 164 _ser.putc(' ');
codeman 0:65606abcae36 165 sendInt(fColor);
codeman 0:65606abcae36 166 _ser.putc('\r');
codeman 0:65606abcae36 167 waitForCR();
codeman 0:65606abcae36 168 }
codeman 0:65606abcae36 169 void ezLCD3::color(int fColor)
codeman 0:65606abcae36 170 {
codeman 1:c7659c8af0d3 171 //pc.printf("color");
codeman 0:65606abcae36 172 sendInt(Color);
codeman 0:65606abcae36 173 _ser.putc(' ');
codeman 0:65606abcae36 174 sendInt(fColor);
codeman 0:65606abcae36 175 _ser.putc('\r');
codeman 0:65606abcae36 176 waitForCR();
codeman 0:65606abcae36 177 }
codeman 0:65606abcae36 178
codeman 0:65606abcae36 179 void ezLCD3::pos(int col, int row)
codeman 0:65606abcae36 180 {
codeman 0:65606abcae36 181 //posXY(XSIZE*col, (YSIZE*row));
codeman 0:65606abcae36 182 }
codeman 0:65606abcae36 183
codeman 0:65606abcae36 184 void ezLCD3::xy(int x, int y)
codeman 0:65606abcae36 185 {
codeman 0:65606abcae36 186 sendInt(XY);
codeman 0:65606abcae36 187 _ser.putc(' ');
codeman 0:65606abcae36 188 sendInt(x);
codeman 0:65606abcae36 189 _ser.putc(' ');
codeman 0:65606abcae36 190 sendInt(y);
codeman 0:65606abcae36 191 _ser.putc('\r');
codeman 1:c7659c8af0d3 192 waitForCR();
codeman 0:65606abcae36 193 }
codeman 0:65606abcae36 194
codeman 0:65606abcae36 195 void ezLCD3::plot( void )
codeman 0:65606abcae36 196 {
codeman 0:65606abcae36 197 sendInt(Plot);
codeman 0:65606abcae36 198 _ser.putc('\r');
codeman 0:65606abcae36 199 waitForCR();
codeman 0:65606abcae36 200 }
codeman 0:65606abcae36 201
codeman 0:65606abcae36 202 void ezLCD3::plot( int x, int y )
codeman 0:65606abcae36 203 {
codeman 0:65606abcae36 204 sendInt(Plot);
codeman 0:65606abcae36 205 _ser.putc(' ');
codeman 0:65606abcae36 206 sendInt(x);
codeman 0:65606abcae36 207 _ser.putc(' ');
codeman 0:65606abcae36 208 sendInt(y);
codeman 0:65606abcae36 209 _ser.putc('\r');
codeman 0:65606abcae36 210 waitForCR();
codeman 0:65606abcae36 211 }
codeman 0:65606abcae36 212 void ezLCD3::line(int x, int y )
codeman 0:65606abcae36 213 {
codeman 0:65606abcae36 214 sendInt(Line);
codeman 0:65606abcae36 215 _ser.putc(' ');
codeman 0:65606abcae36 216 sendInt(x);
codeman 0:65606abcae36 217 _ser.putc(' ');
codeman 0:65606abcae36 218 sendInt(y);
codeman 0:65606abcae36 219 _ser.putc('\r');
codeman 0:65606abcae36 220 waitForCR();
codeman 0:65606abcae36 221 }
codeman 0:65606abcae36 222
codeman 0:65606abcae36 223 void ezLCD3::circle(int radius, bool filled)
codeman 0:65606abcae36 224 {
codeman 0:65606abcae36 225 sendInt(Circle);
codeman 0:65606abcae36 226 _ser.putc(' ');
codeman 0:65606abcae36 227 sendInt(radius);
codeman 0:65606abcae36 228 if(filled) {
codeman 0:65606abcae36 229 _ser.putc(' ');
codeman 0:65606abcae36 230 _ser.putc('f');
codeman 0:65606abcae36 231 }
codeman 0:65606abcae36 232 _ser.putc('\r');
codeman 0:65606abcae36 233 waitForCR();
codeman 0:65606abcae36 234 }
codeman 0:65606abcae36 235
codeman 0:65606abcae36 236 void ezLCD3::box(int x, int y, bool filled)
codeman 0:65606abcae36 237 {
codeman 0:65606abcae36 238 sendInt(Box);
codeman 0:65606abcae36 239 _ser.putc(' ');
codeman 0:65606abcae36 240 sendInt(x);
codeman 0:65606abcae36 241 _ser.putc(' ');
codeman 0:65606abcae36 242 sendInt(y);
codeman 0:65606abcae36 243 if(filled) {
codeman 0:65606abcae36 244 _ser.putc(' ');
codeman 0:65606abcae36 245 _ser.putc('f');
codeman 0:65606abcae36 246 }
codeman 0:65606abcae36 247 _ser.putc('\r');
codeman 0:65606abcae36 248 waitForCR();
codeman 0:65606abcae36 249 }
codeman 0:65606abcae36 250
codeman 0:65606abcae36 251 void ezLCD3::light(int i)
codeman 0:65606abcae36 252 {
codeman 1:c7659c8af0d3 253 //pc.printf("light");
codeman 0:65606abcae36 254 if (i >= 0 && i <= 100) {
codeman 0:65606abcae36 255 sendInt(Light);
codeman 0:65606abcae36 256 putc(' ');
codeman 0:65606abcae36 257 sendInt( i );
codeman 0:65606abcae36 258 putc('\r');
codeman 0:65606abcae36 259 waitForCR();
codeman 0:65606abcae36 260 }
codeman 0:65606abcae36 261 }
codeman 1:c7659c8af0d3 262
codeman 1:c7659c8af0d3 263 int ezLCD3::getXmax( void )
codeman 0:65606abcae36 264 {
codeman 0:65606abcae36 265 sendInt(Xmax);
codeman 1:c7659c8af0d3 266 _ser.putc('\r');
codeman 1:c7659c8af0d3 267 getString( buf );
codeman 1:c7659c8af0d3 268 return getInt( buf );
codeman 0:65606abcae36 269 }
codeman 1:c7659c8af0d3 270 int ezLCD3::getYmax( void )
codeman 0:65606abcae36 271 {
codeman 0:65606abcae36 272 sendInt(Ymax);
codeman 1:c7659c8af0d3 273 _ser.putc('\r');
codeman 1:c7659c8af0d3 274 getString( buf );
codeman 1:c7659c8af0d3 275 return getInt( buf );
codeman 1:c7659c8af0d3 276 }
codeman 1:c7659c8af0d3 277
codeman 1:c7659c8af0d3 278 void ezLCD3::setStringID( int ID, char *str )
codeman 1:c7659c8af0d3 279 {
codeman 1:c7659c8af0d3 280 unsigned char c;
codeman 1:c7659c8af0d3 281 sendInt(StringID);
codeman 1:c7659c8af0d3 282 _ser.putc(' ');
codeman 1:c7659c8af0d3 283 sendInt(ID);
codeman 1:c7659c8af0d3 284 _ser.putc(' ');
codeman 1:c7659c8af0d3 285 _ser.putc('\"');
codeman 1:c7659c8af0d3 286 while( (c = *str++) )
codeman 1:c7659c8af0d3 287 _ser.putc(c);
codeman 1:c7659c8af0d3 288 _ser.putc('\"');
codeman 1:c7659c8af0d3 289 _ser.putc('\r');
codeman 0:65606abcae36 290 waitForCR();
codeman 0:65606abcae36 291 }
codeman 0:65606abcae36 292
codeman 1:c7659c8af0d3 293 void ezLCD3::getStringID( int ID , char *str)
codeman 1:c7659c8af0d3 294 {
codeman 1:c7659c8af0d3 295 sendInt(StringID);
codeman 1:c7659c8af0d3 296 _ser.putc(' ');
codeman 1:c7659c8af0d3 297 sendInt(ID);
codeman 1:c7659c8af0d3 298 _ser.putc('\r');
codeman 1:c7659c8af0d3 299 getString(str);
codeman 0:65606abcae36 300 }
codeman 0:65606abcae36 301
codeman 0:65606abcae36 302 void ezLCD3::reverseMode()
codeman 0:65606abcae36 303 {
codeman 0:65606abcae36 304 putc(0x7c);
codeman 0:65606abcae36 305 putc(0x12);
codeman 0:65606abcae36 306 }
codeman 0:65606abcae36 307
codeman 0:65606abcae36 308 void ezLCD3::resolution(int type)
codeman 0:65606abcae36 309 {
codeman 1:c7659c8af0d3 310
codeman 0:65606abcae36 311 }
codeman 0:65606abcae36 312
codeman 0:65606abcae36 313 void ezLCD3::print( char *str )
codeman 0:65606abcae36 314 {
codeman 0:65606abcae36 315 unsigned char c;
codeman 0:65606abcae36 316 sendInt(Print);
codeman 0:65606abcae36 317 _ser.putc(' ');
codeman 0:65606abcae36 318 _ser.putc('\"');
codeman 0:65606abcae36 319 while( (c = *str++) )
codeman 0:65606abcae36 320 _ser.putc(c);
codeman 0:65606abcae36 321 _ser.putc('\"');
codeman 0:65606abcae36 322 _ser.putc('\r');
codeman 0:65606abcae36 323 waitForCR();
codeman 0:65606abcae36 324 }
codeman 0:65606abcae36 325
codeman 0:65606abcae36 326 void ezLCD3::resolution(int x, int y)
codeman 0:65606abcae36 327 {
codeman 0:65606abcae36 328 _xMax = x;
codeman 0:65606abcae36 329 _yMax = y;
codeman 0:65606abcae36 330 }
codeman 0:65606abcae36 331
codeman 1:c7659c8af0d3 332 //ameter [ID][x][y][width][height][options][value][min][max][theme][stringID][type]
codeman 1:c7659c8af0d3 333 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 334 {
codeman 1:c7659c8af0d3 335 sendInt(Set_AMeter);
codeman 1:c7659c8af0d3 336 _ser.putc(' ');
codeman 1:c7659c8af0d3 337 sendInt(ID);
codeman 1:c7659c8af0d3 338 _ser.putc(' ');
codeman 1:c7659c8af0d3 339 sendInt(x);
codeman 1:c7659c8af0d3 340 _ser.putc(' ');
codeman 1:c7659c8af0d3 341 sendInt(y);
codeman 1:c7659c8af0d3 342 _ser.putc(' ');
codeman 1:c7659c8af0d3 343 sendInt(w);
codeman 1:c7659c8af0d3 344 _ser.putc(' ');
codeman 1:c7659c8af0d3 345 sendInt(h);
codeman 1:c7659c8af0d3 346 _ser.putc(' ');
codeman 1:c7659c8af0d3 347 sendInt(options);
codeman 1:c7659c8af0d3 348 _ser.putc(' ');
codeman 1:c7659c8af0d3 349 sendInt(value);
codeman 1:c7659c8af0d3 350 _ser.putc(' ');
codeman 1:c7659c8af0d3 351 sendInt(min);
codeman 1:c7659c8af0d3 352 _ser.putc(' ');
codeman 1:c7659c8af0d3 353 sendInt(max);
codeman 1:c7659c8af0d3 354 _ser.putc(' ');
codeman 1:c7659c8af0d3 355 sendInt(theme);
codeman 1:c7659c8af0d3 356 _ser.putc(' ');
codeman 1:c7659c8af0d3 357 sendInt(stringID);
codeman 1:c7659c8af0d3 358 _ser.putc(' ');
codeman 1:c7659c8af0d3 359 sendInt(type);
codeman 1:c7659c8af0d3 360 _ser.putc('\r');
codeman 1:c7659c8af0d3 361 waitForCR();
codeman 1:c7659c8af0d3 362 }
codeman 1:c7659c8af0d3 363
codeman 1:c7659c8af0d3 364 void ezLCD3::touchZone( int ID, int x, int y, int w, int h, bool option)
codeman 1:c7659c8af0d3 365 {
codeman 1:c7659c8af0d3 366 sendInt(Set_TouchZone);
codeman 1:c7659c8af0d3 367 _ser.putc(' ');
codeman 1:c7659c8af0d3 368 sendInt(ID);
codeman 1:c7659c8af0d3 369 _ser.putc(' ');
codeman 1:c7659c8af0d3 370 sendInt(x);
codeman 1:c7659c8af0d3 371 _ser.putc(' ');
codeman 1:c7659c8af0d3 372 sendInt(y);
codeman 1:c7659c8af0d3 373 _ser.putc(' ');
codeman 1:c7659c8af0d3 374 sendInt(w);
codeman 1:c7659c8af0d3 375 _ser.putc(' ');
codeman 1:c7659c8af0d3 376 sendInt(h);
codeman 1:c7659c8af0d3 377 _ser.putc(' ');
codeman 1:c7659c8af0d3 378 if(option)
codeman 1:c7659c8af0d3 379 sendInt('1');
codeman 1:c7659c8af0d3 380 else
codeman 1:c7659c8af0d3 381 sendInt('0');
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::button( int ID, int x, int y, int w, int h, int option, int align, int radius, int theme, int stringID )
codeman 1:c7659c8af0d3 387 {
codeman 1:c7659c8af0d3 388 sendInt(Set_Button);
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 sendInt(option);
codeman 1:c7659c8af0d3 401 _ser.putc(' ');
codeman 1:c7659c8af0d3 402 sendInt(align);
codeman 1:c7659c8af0d3 403 _ser.putc(' ');
codeman 1:c7659c8af0d3 404 sendInt(radius);
codeman 1:c7659c8af0d3 405 _ser.putc(' ');
codeman 1:c7659c8af0d3 406 sendInt(theme);
codeman 1:c7659c8af0d3 407 _ser.putc(' ');
codeman 1:c7659c8af0d3 408 sendInt(stringID);
codeman 1:c7659c8af0d3 409 _ser.putc('\r');
codeman 1:c7659c8af0d3 410 waitForCR();
codeman 1:c7659c8af0d3 411 }
codeman 1:c7659c8af0d3 412
codeman 1:c7659c8af0d3 413 unsigned int ezLCD3::wstack( int type )
codeman 1:c7659c8af0d3 414 {
codeman 1:c7659c8af0d3 415 sendInt( Wstack );
codeman 1:c7659c8af0d3 416 _ser.putc(' ');
codeman 1:c7659c8af0d3 417 sendInt( type );
codeman 1:c7659c8af0d3 418 _ser.putc('\r');
codeman 1:c7659c8af0d3 419 getString( buf );
codeman 1:c7659c8af0d3 420 return getInt( buf );
codeman 1:c7659c8af0d3 421 }
codeman 0:65606abcae36 422 int ezLCD3::_putc( int c)
codeman 0:65606abcae36 423 {
codeman 0:65606abcae36 424 _ser.putc('2');
codeman 0:65606abcae36 425 _ser.putc('5');
codeman 0:65606abcae36 426 _ser.putc(' ');
codeman 0:65606abcae36 427 _ser.putc('\"');
codeman 0:65606abcae36 428 _ser.putc(c);
codeman 0:65606abcae36 429 _ser.putc('\"');
codeman 0:65606abcae36 430 _ser.putc('\r');
codeman 0:65606abcae36 431 waitForCR();
codeman 0:65606abcae36 432 return (c);
codeman 0:65606abcae36 433 }
codeman 0:65606abcae36 434
codeman 0:65606abcae36 435 int ezLCD3::_getc(void)
codeman 0:65606abcae36 436 {
codeman 0:65606abcae36 437 char r = 0;
codeman 0:65606abcae36 438 return(r);
codeman 0:65606abcae36 439 }
codeman 0:65606abcae36 440
codeman 0:65606abcae36 441 int ezLCD3::putc ( int c )
codeman 0:65606abcae36 442 {
codeman 0:65606abcae36 443 return(_ser.putc(c));
codeman 0:65606abcae36 444 }
codeman 0:65606abcae36 445
codeman 0:65606abcae36 446 int ezLCD3::getc (void)
codeman 0:65606abcae36 447 {
codeman 0:65606abcae36 448 return(_ser.getc());
codeman 0:65606abcae36 449 }
codeman 0:65606abcae36 450
codeman 0:65606abcae36 451 void ezLCD3::lcdbaud(int b)
codeman 0:65606abcae36 452 {
codeman 0:65606abcae36 453 if (b > 0 && b < 7) {
codeman 0:65606abcae36 454 putc(0x7c);
codeman 0:65606abcae36 455 putc(0x07);
codeman 0:65606abcae36 456 putc(b+'0');
codeman 0:65606abcae36 457 }
codeman 0:65606abcae36 458 }
codeman 0:65606abcae36 459