Heavily documented control library for the uOLED-96-G1 (SGC) by 4D Systems. Will likely work with any of the 4D Systems serial controlled screens. <<info>> All examples in the documentation have been tested to the best of my current abilities, but there are a few functions that I simply do not use. I have created a Lighthouse page for this library. You may submit bug reports or feature requests to [[http://mbed-uoled.lighthouseapp.com|this page]]. If you really do not wish to sign up for a Lighthouse account you may also post any bugs or requests [[/users/Nakor/notebook/uoled-bug-reports/|here]]. <</info>>

Dependents:   DS18B20 DS18B20GSM Astromed Astromed_build20121123

Committer:
Nakor
Date:
Sun Jan 09 20:24:37 2011 +0000
Revision:
31:7ad5bf258a1e
Parent:
30:41a872ad6155
Added screen copy function (save screen to uSD).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nakor 0:4f009971ac11 1 #include "uOLED.h"
Nakor 0:4f009971ac11 2 #include "mbed.h"
Nakor 0:4f009971ac11 3
Nakor 0:4f009971ac11 4
Nakor 30:41a872ad6155 5 #define OLED_INITDELAYMS 1200
Nakor 0:4f009971ac11 6
Nakor 0:4f009971ac11 7 #define OLED_ACK 0x06 // Ok
Nakor 0:4f009971ac11 8 #define OLED_NAK 0x15 // Error
Nakor 30:41a872ad6155 9 //uOLED *pSGC;
Nakor 0:4f009971ac11 10
Nakor 0:4f009971ac11 11
Nakor 0:4f009971ac11 12
Nakor 0:4f009971ac11 13 uOLED::uOLED(PinName serialTX, PinName serialRX, PinName reset) :
Nakor 0:4f009971ac11 14 _oled(serialTX, serialRX),
Nakor 0:4f009971ac11 15 _reset(reset) {
Nakor 0:4f009971ac11 16
Nakor 0:4f009971ac11 17 _oled.baud(230400);
Nakor 30:41a872ad6155 18
Nakor 30:41a872ad6155 19 //friend class uOLED_watch;
Nakor 0:4f009971ac11 20 }
Nakor 0:4f009971ac11 21
Nakor 0:4f009971ac11 22 /******************/
Nakor 0:4f009971ac11 23 /* Protected */
Nakor 0:4f009971ac11 24 /******************/
Nakor 0:4f009971ac11 25 void uOLED::resetDisplay() {
Nakor 0:4f009971ac11 26 _reset = 0;
Nakor 0:4f009971ac11 27 wait_ms(20);
Nakor 0:4f009971ac11 28 _reset = 1;
Nakor 0:4f009971ac11 29 wait_ms(20);
Nakor 0:4f009971ac11 30 }
Nakor 0:4f009971ac11 31
Nakor 0:4f009971ac11 32
Nakor 30:41a872ad6155 33
Nakor 30:41a872ad6155 34
Nakor 0:4f009971ac11 35 /******************/
Nakor 0:4f009971ac11 36 /* Public */
Nakor 0:4f009971ac11 37 /******************/
Nakor 0:4f009971ac11 38 short uOLED::getRGB(char red, char green, char blue) {
Nakor 0:4f009971ac11 39 int outR = ((red * 31) / 255);
Nakor 0:4f009971ac11 40 int outG = ((green * 63) / 255);
Nakor 0:4f009971ac11 41 int outB = ((blue * 31) / 255);
Nakor 0:4f009971ac11 42
Nakor 0:4f009971ac11 43 return (outR << 11) | (outG << 5) | outB;
Nakor 0:4f009971ac11 44 }
Nakor 0:4f009971ac11 45
Nakor 0:4f009971ac11 46 bool uOLED::addBitmappedCharacter(char character, char data[8]) {
Nakor 0:4f009971ac11 47 _oled.putc(0x41);
Nakor 0:4f009971ac11 48 _oled.putc(character);
Nakor 0:4f009971ac11 49 for (int i=0; i<8; i++) _oled.putc(data[i]);
Nakor 0:4f009971ac11 50 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 51 }
Nakor 0:4f009971ac11 52
Nakor 0:4f009971ac11 53 bool uOLED::blockCopyPaste(char sourceX, char sourceY, char destinationX, char destinationY, char width, char height) {
Nakor 0:4f009971ac11 54 _oled.putc(0x63);
Nakor 0:4f009971ac11 55 _oled.putc(sourceX);
Nakor 0:4f009971ac11 56 _oled.putc(sourceY);
Nakor 0:4f009971ac11 57 _oled.putc(destinationX);
Nakor 0:4f009971ac11 58 _oled.putc(destinationY);
Nakor 0:4f009971ac11 59 _oled.putc(width);
Nakor 0:4f009971ac11 60 _oled.putc(height);
Nakor 0:4f009971ac11 61
Nakor 0:4f009971ac11 62 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 63 }
Nakor 0:4f009971ac11 64
Nakor 31:7ad5bf258a1e 65 bool uOLED::screenCopy(char x, char y, char width, char height, char sectorHi, char sectorMid, char sectorLow)
Nakor 31:7ad5bf258a1e 66 {
Nakor 31:7ad5bf258a1e 67 _oled.putc(0x40);
Nakor 31:7ad5bf258a1e 68 _oled.putc(0x43);
Nakor 31:7ad5bf258a1e 69 _oled.putc(x);
Nakor 31:7ad5bf258a1e 70 _oled.putc(y);
Nakor 31:7ad5bf258a1e 71 _oled.putc(width);
Nakor 31:7ad5bf258a1e 72 _oled.putc(height);
Nakor 31:7ad5bf258a1e 73 _oled.putc(sectorHi);
Nakor 31:7ad5bf258a1e 74 _oled.putc(sectorMid);
Nakor 31:7ad5bf258a1e 75 _oled.putc(sectorLow);
Nakor 31:7ad5bf258a1e 76
Nakor 31:7ad5bf258a1e 77 return (_oled.getc() == OLED_ACK);
Nakor 31:7ad5bf258a1e 78 }
Nakor 31:7ad5bf258a1e 79
Nakor 17:cee1c66b3133 80 bool uOLED::displayControl(char mode, char value) {
Nakor 0:4f009971ac11 81 _oled.putc(0x59);
Nakor 0:4f009971ac11 82 _oled.putc(mode);
Nakor 17:cee1c66b3133 83 _oled.putc(value);
Nakor 0:4f009971ac11 84
Nakor 0:4f009971ac11 85 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 86 }
Nakor 0:4f009971ac11 87
Nakor 25:caf134ebfc34 88 bool uOLED::displayUserBitmappedCharacter(char character, char x, char y, short red, short green, short blue)
Nakor 25:caf134ebfc34 89 {
Nakor 25:caf134ebfc34 90 short colour = getRGB(red, green, blue);
Nakor 25:caf134ebfc34 91
Nakor 0:4f009971ac11 92 _oled.putc(0x44);
Nakor 0:4f009971ac11 93 _oled.putc(character);
Nakor 0:4f009971ac11 94 _oled.putc(x);
Nakor 0:4f009971ac11 95 _oled.putc(y);
Nakor 25:caf134ebfc34 96 _oled.putc(colour >> 8);
Nakor 25:caf134ebfc34 97 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 98
Nakor 0:4f009971ac11 99 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 100 }
Nakor 0:4f009971ac11 101
Nakor 25:caf134ebfc34 102 bool uOLED::drawCharacter(char character, char column, char row, short red, short green, short blue)
Nakor 25:caf134ebfc34 103 {
Nakor 25:caf134ebfc34 104 short colour = getRGB(red, green, blue);
Nakor 25:caf134ebfc34 105
Nakor 0:4f009971ac11 106 _oled.putc(0x54);
Nakor 0:4f009971ac11 107 _oled.putc(character);
Nakor 0:4f009971ac11 108 _oled.putc(column);
Nakor 0:4f009971ac11 109 _oled.putc(row);
Nakor 25:caf134ebfc34 110 _oled.putc(colour >> 8);
Nakor 25:caf134ebfc34 111 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 112
Nakor 0:4f009971ac11 113 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 114 }
Nakor 0:4f009971ac11 115
Nakor 19:cc4f5d01f080 116 bool uOLED::drawCircle(char x, char y, char radius, short red, short green, short blue)
Nakor 19:cc4f5d01f080 117 {
Nakor 19:cc4f5d01f080 118 short color = getRGB(red, green, blue);
Nakor 19:cc4f5d01f080 119
Nakor 0:4f009971ac11 120 _oled.putc(0x43);
Nakor 0:4f009971ac11 121 _oled.putc(x);
Nakor 0:4f009971ac11 122 _oled.putc(y);
Nakor 0:4f009971ac11 123 _oled.putc(radius);
Nakor 0:4f009971ac11 124 _oled.putc(color >> 8);
Nakor 0:4f009971ac11 125 _oled.putc(color & 0xFF);
Nakor 0:4f009971ac11 126
Nakor 0:4f009971ac11 127 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 128 }
Nakor 0:4f009971ac11 129
Nakor 0:4f009971ac11 130 bool uOLED::drawImage(char x, char y, char width, char height, char colorMode, char *pixels) {
Nakor 0:4f009971ac11 131 int numberOfBytesPerPixel = 1;
Nakor 0:4f009971ac11 132
Nakor 0:4f009971ac11 133 _oled.putc(0x49);
Nakor 0:4f009971ac11 134 _oled.putc(x);
Nakor 0:4f009971ac11 135 _oled.putc(y);
Nakor 0:4f009971ac11 136 _oled.putc(width);
Nakor 0:4f009971ac11 137 _oled.putc(height);
Nakor 0:4f009971ac11 138 _oled.putc(colorMode);
Nakor 0:4f009971ac11 139
Nakor 0:4f009971ac11 140 if (colorMode == 16) numberOfBytesPerPixel = 2;
Nakor 0:4f009971ac11 141
Nakor 0:4f009971ac11 142 for (int i=0; i<width * height * numberOfBytesPerPixel; i++) {
Nakor 0:4f009971ac11 143 _oled.putc(pixels[i]);
Nakor 0:4f009971ac11 144 }
Nakor 0:4f009971ac11 145
Nakor 0:4f009971ac11 146 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 147 }
Nakor 0:4f009971ac11 148
Nakor 30:41a872ad6155 149 bool uOLED::drawImageSD_16bit(char x, char y, char width, char height, char colourMode, char sectorHi, char sectorMid, char sectorLow)
Nakor 30:41a872ad6155 150 {
Nakor 30:41a872ad6155 151
Nakor 30:41a872ad6155 152 _oled.putc(0x40);
Nakor 30:41a872ad6155 153 _oled.putc(0x49);
Nakor 30:41a872ad6155 154 _oled.putc(x);
Nakor 30:41a872ad6155 155 _oled.putc(y);
Nakor 30:41a872ad6155 156 _oled.putc(width);
Nakor 30:41a872ad6155 157 _oled.putc(height);
Nakor 30:41a872ad6155 158 _oled.putc(colourMode);
Nakor 30:41a872ad6155 159 _oled.putc(sectorHi);
Nakor 30:41a872ad6155 160 _oled.putc(sectorMid);
Nakor 30:41a872ad6155 161 _oled.putc(sectorLow);
Nakor 30:41a872ad6155 162
Nakor 30:41a872ad6155 163 return (_oled.getc() == OLED_ACK);
Nakor 30:41a872ad6155 164 }
Nakor 30:41a872ad6155 165
Nakor 19:cc4f5d01f080 166 bool uOLED::drawLine(char x1, char y1, char x2, char y2, short red, short green, short blue)
Nakor 19:cc4f5d01f080 167 {
Nakor 19:cc4f5d01f080 168 short color = getRGB(red, green, blue);
Nakor 19:cc4f5d01f080 169
Nakor 0:4f009971ac11 170 _oled.putc(0x4C);
Nakor 0:4f009971ac11 171 _oled.putc(x1);
Nakor 0:4f009971ac11 172 _oled.putc(y1);
Nakor 0:4f009971ac11 173 _oled.putc(x2);
Nakor 0:4f009971ac11 174 _oled.putc(y2);
Nakor 0:4f009971ac11 175 _oled.putc(color >> 8);
Nakor 0:4f009971ac11 176 _oled.putc(color & 0xFF);
Nakor 0:4f009971ac11 177
Nakor 0:4f009971ac11 178 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 179 }
Nakor 0:4f009971ac11 180
Nakor 25:caf134ebfc34 181 bool uOLED::drawPolygon(char vertices, char *x, char *y, short red, short green, short blue) {
Nakor 25:caf134ebfc34 182 short colour = getRGB(red, green, blue);
Nakor 25:caf134ebfc34 183
Nakor 0:4f009971ac11 184 _oled.putc(0x67);
Nakor 0:4f009971ac11 185 _oled.putc(vertices);
Nakor 25:caf134ebfc34 186 for (int i=0; i < vertices; i++) {
Nakor 0:4f009971ac11 187 _oled.putc(x[i]);
Nakor 0:4f009971ac11 188 _oled.putc(y[i]);
Nakor 0:4f009971ac11 189 }
Nakor 25:caf134ebfc34 190 _oled.putc(colour >> 8);
Nakor 25:caf134ebfc34 191 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 192
Nakor 0:4f009971ac11 193 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 194 }
Nakor 0:4f009971ac11 195
Nakor 21:87a2227c1ad2 196 bool uOLED::drawRectangle(char x, char y, char width, char height, short red, short green, short blue)
Nakor 21:87a2227c1ad2 197 {
Nakor 21:87a2227c1ad2 198 short colour = getRGB(red, green, blue);
Nakor 21:87a2227c1ad2 199
Nakor 0:4f009971ac11 200 _oled.putc(0x72);
Nakor 0:4f009971ac11 201 _oled.putc(x);
Nakor 0:4f009971ac11 202 _oled.putc(y);
Nakor 0:4f009971ac11 203 _oled.putc(x + width);
Nakor 0:4f009971ac11 204 _oled.putc(y + height);
Nakor 21:87a2227c1ad2 205 _oled.putc(colour >> 8);
Nakor 21:87a2227c1ad2 206 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 207
Nakor 0:4f009971ac11 208 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 209 }
Nakor 0:4f009971ac11 210
Nakor 21:87a2227c1ad2 211 bool uOLED::drawText(char column, char row, char font, short red, short green, short blue, char *text)
Nakor 21:87a2227c1ad2 212 {
Nakor 21:87a2227c1ad2 213
Nakor 21:87a2227c1ad2 214 short colour = getRGB(red, green, blue);
Nakor 21:87a2227c1ad2 215
Nakor 0:4f009971ac11 216 _oled.putc(0x73);
Nakor 0:4f009971ac11 217 _oled.putc(column);
Nakor 0:4f009971ac11 218 _oled.putc(row);
Nakor 0:4f009971ac11 219 _oled.putc(font);
Nakor 21:87a2227c1ad2 220 _oled.putc(colour >> 8);
Nakor 21:87a2227c1ad2 221 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 222 for (int i=0 ; i<strlen(text) ; i++) _oled.putc(text[i]);
Nakor 0:4f009971ac11 223 _oled.putc(0x00);
Nakor 0:4f009971ac11 224
Nakor 0:4f009971ac11 225 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 226 }
Nakor 0:4f009971ac11 227
Nakor 14:3d90211095d4 228 bool uOLED::drawTextUF(char x, char y, char font, short red, short green, short blue, char width, char height, char *text) {
Nakor 14:3d90211095d4 229
Nakor 19:cc4f5d01f080 230 short colour = getRGB(red, green, blue);
Nakor 14:3d90211095d4 231
Nakor 14:3d90211095d4 232 _oled.putc(0x53);
Nakor 14:3d90211095d4 233 _oled.putc(x);
Nakor 14:3d90211095d4 234 _oled.putc(y);
Nakor 14:3d90211095d4 235 _oled.putc(font);
Nakor 14:3d90211095d4 236 _oled.putc(colour >> 8);
Nakor 14:3d90211095d4 237 _oled.putc(colour & 0xFF);
Nakor 14:3d90211095d4 238 _oled.putc(width);
Nakor 14:3d90211095d4 239 _oled.putc(height);
Nakor 14:3d90211095d4 240 for (int i=0 ; i<strlen(text) ; i++) _oled.putc(text[i]);
Nakor 14:3d90211095d4 241 _oled.putc(0x00);
Nakor 14:3d90211095d4 242
Nakor 14:3d90211095d4 243 return (_oled.getc() == OLED_ACK);
Nakor 14:3d90211095d4 244 }
Nakor 14:3d90211095d4 245
Nakor 21:87a2227c1ad2 246 bool uOLED::drawTriangle(char x1, char y1, char x2, char y2, char x3, char y3, short red, short green, short blue)
Nakor 21:87a2227c1ad2 247 {
Nakor 21:87a2227c1ad2 248
Nakor 21:87a2227c1ad2 249 short colour = getRGB(red, green, blue);
Nakor 21:87a2227c1ad2 250
Nakor 0:4f009971ac11 251 _oled.putc(0x47);
Nakor 0:4f009971ac11 252 _oled.putc(x1);
Nakor 0:4f009971ac11 253 _oled.putc(y1);
Nakor 0:4f009971ac11 254 _oled.putc(x2);
Nakor 0:4f009971ac11 255 _oled.putc(y2);
Nakor 0:4f009971ac11 256 _oled.putc(x3);
Nakor 0:4f009971ac11 257 _oled.putc(y3);
Nakor 21:87a2227c1ad2 258 _oled.putc(colour >> 8);
Nakor 21:87a2227c1ad2 259 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 260
Nakor 0:4f009971ac11 261 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 262 }
Nakor 0:4f009971ac11 263
Nakor 0:4f009971ac11 264 bool uOLED::eraseScreen() {
Nakor 0:4f009971ac11 265 _oled.putc(0x45);
Nakor 0:4f009971ac11 266
Nakor 0:4f009971ac11 267 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 268 }
Nakor 0:4f009971ac11 269
Nakor 0:4f009971ac11 270 bool uOLED::init() {
Nakor 0:4f009971ac11 271 resetDisplay();
Nakor 0:4f009971ac11 272
Nakor 0:4f009971ac11 273 wait_ms(OLED_INITDELAYMS);
Nakor 0:4f009971ac11 274 _oled.putc(0x55);
Nakor 0:4f009971ac11 275
Nakor 0:4f009971ac11 276 _oled.getc();
Nakor 0:4f009971ac11 277
Nakor 0:4f009971ac11 278 _oled.putc(0x4F);
Nakor 0:4f009971ac11 279 _oled.putc(0x01);
Nakor 0:4f009971ac11 280
Nakor 0:4f009971ac11 281 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 282 }
Nakor 0:4f009971ac11 283
Nakor 0:4f009971ac11 284 bool uOLED::penSize(char size) {
Nakor 0:4f009971ac11 285 _oled.putc(0x70);
Nakor 0:4f009971ac11 286 _oled.putc(size);
Nakor 0:4f009971ac11 287
Nakor 0:4f009971ac11 288 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 289 }
Nakor 0:4f009971ac11 290
Nakor 22:66401b612b1b 291 bool uOLED::putPixel(char x, char y, short red, short green, short blue)
Nakor 22:66401b612b1b 292 {
Nakor 22:66401b612b1b 293 short colour = getRGB(red, green, blue);
Nakor 22:66401b612b1b 294
Nakor 0:4f009971ac11 295 _oled.putc(0x50);
Nakor 0:4f009971ac11 296 _oled.putc(x);
Nakor 0:4f009971ac11 297 _oled.putc(y);
Nakor 0:4f009971ac11 298
Nakor 22:66401b612b1b 299 _oled.putc(colour >> 8);
Nakor 22:66401b612b1b 300 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 301
Nakor 0:4f009971ac11 302 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 303 }
Nakor 0:4f009971ac11 304
Nakor 0:4f009971ac11 305 short uOLED::readPixel(char x, char y) {
Nakor 0:4f009971ac11 306 short returnValue;
Nakor 0:4f009971ac11 307
Nakor 0:4f009971ac11 308 _oled.putc(0x52);
Nakor 0:4f009971ac11 309 _oled.putc(x);
Nakor 0:4f009971ac11 310 _oled.putc(y);
Nakor 0:4f009971ac11 311 returnValue = (_oled.getc() << 8);
Nakor 0:4f009971ac11 312 returnValue += _oled.getc();
Nakor 0:4f009971ac11 313
Nakor 0:4f009971ac11 314 return returnValue;
Nakor 0:4f009971ac11 315 }
Nakor 0:4f009971ac11 316
Nakor 13:f2b9f249bcff 317 bool uOLED::setBackgroundColour(char red, char green, char blue)
Nakor 13:f2b9f249bcff 318 {
Nakor 19:cc4f5d01f080 319 short colour = getRGB(red, green, blue);
Nakor 13:f2b9f249bcff 320
Nakor 13:f2b9f249bcff 321 _oled.putc(0x42);
Nakor 11:1686d4d4bbdb 322
Nakor 13:f2b9f249bcff 323 _oled.putc(colour >> 8);
Nakor 13:f2b9f249bcff 324 _oled.putc(colour & 0xFF);
Nakor 0:4f009971ac11 325
Nakor 0:4f009971ac11 326 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 327 }
Nakor 0:4f009971ac11 328
Nakor 22:66401b612b1b 329 bool uOLED::setFont(char font) {
Nakor 0:4f009971ac11 330 _oled.putc(0x46);
Nakor 22:66401b612b1b 331 _oled.putc(font);
Nakor 0:4f009971ac11 332
Nakor 0:4f009971ac11 333 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 334 }
Nakor 0:4f009971ac11 335
Nakor 22:66401b612b1b 336 bool uOLED::textButton(char state, char x, char y, short red, short green, short blue, char font, short textRed, short textGreen, short textBlue, char textWidth, char textHeight, char *text)
Nakor 22:66401b612b1b 337 {
Nakor 22:66401b612b1b 338 short buttonColour = getRGB(red, green, blue);
Nakor 22:66401b612b1b 339 short textColour = getRGB(textRed, textGreen, textBlue);
Nakor 22:66401b612b1b 340
Nakor 0:4f009971ac11 341 _oled.putc(0x62);
Nakor 0:4f009971ac11 342 _oled.putc(state);
Nakor 0:4f009971ac11 343 _oled.putc(x);
Nakor 0:4f009971ac11 344 _oled.putc(y);
Nakor 22:66401b612b1b 345 _oled.putc(buttonColour >> 8);
Nakor 22:66401b612b1b 346 _oled.putc(buttonColour & 0xFF);
Nakor 0:4f009971ac11 347 _oled.putc(font);
Nakor 22:66401b612b1b 348 _oled.putc(textColour >> 8);
Nakor 22:66401b612b1b 349 _oled.putc(textColour & 0xFF);
Nakor 0:4f009971ac11 350 _oled.putc(textWidth);
Nakor 0:4f009971ac11 351 _oled.putc(textHeight);
Nakor 0:4f009971ac11 352 for (int i=0 ; i<strlen(text) ; i++) _oled.putc(text[i]);
Nakor 0:4f009971ac11 353 _oled.putc(0x00);
Nakor 0:4f009971ac11 354
Nakor 0:4f009971ac11 355 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 356 }
Nakor 0:4f009971ac11 357
Nakor 0:4f009971ac11 358 bool uOLED::textMode(char mode) {
Nakor 0:4f009971ac11 359 _oled.putc(0x4F);
Nakor 0:4f009971ac11 360 _oled.putc(mode);
Nakor 0:4f009971ac11 361
Nakor 0:4f009971ac11 362 return (_oled.getc() == OLED_ACK);
Nakor 0:4f009971ac11 363 }
Nakor 0:4f009971ac11 364
Nakor 29:757036aa73cd 365 bool uOLED::versionInfo(bool onScreen, char info[5]) {
Nakor 0:4f009971ac11 366 _oled.putc(0x56);
Nakor 0:4f009971ac11 367 if (onScreen) {
Nakor 0:4f009971ac11 368 _oled.putc(0x01);
Nakor 0:4f009971ac11 369 } else {
Nakor 0:4f009971ac11 370 _oled.putc(0x00);
Nakor 0:4f009971ac11 371 }
Nakor 0:4f009971ac11 372
Nakor 0:4f009971ac11 373 info[0] = _oled.getc();
Nakor 0:4f009971ac11 374 info[1] = _oled.getc();
Nakor 0:4f009971ac11 375 info[2] = _oled.getc();
Nakor 0:4f009971ac11 376 info[3] = _oled.getc();
Nakor 0:4f009971ac11 377 info[4] = _oled.getc();
Nakor 0:4f009971ac11 378
Nakor 0:4f009971ac11 379 return true;
Nakor 0:4f009971ac11 380 }