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:
Mon Dec 20 18:19:58 2010 +0000
Revision:
1:476dcc382de3
Parent:
0:4f009971ac11
Child:
2:559b81f2bb1e
Library rewrite.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nakor 0:4f009971ac11 1 /* mbed 4D uOLED Library
Nakor 0:4f009971ac11 2 * Originally designed for use with uOLED-96-G1 (SGC)
Nakor 0:4f009971ac11 3 * serially controlled .96" screen.
Nakor 0:4f009971ac11 4 *
Nakor 0:4f009971ac11 5 * This is a modified library originally obtained from
Nakor 0:4f009971ac11 6 * Erik van Wijk's library code at:
Nakor 0:4f009971ac11 7 * http://mbed.org/users/evwijk/libraries/microOLED/li4nzn
Nakor 0:4f009971ac11 8 */
Nakor 0:4f009971ac11 9
Nakor 0:4f009971ac11 10 #ifndef _MBED_UOLED_
Nakor 0:4f009971ac11 11 #define _MBED_UOLED_
Nakor 0:4f009971ac11 12
Nakor 0:4f009971ac11 13 #include "mbed.h"
Nakor 0:4f009971ac11 14
Nakor 0:4f009971ac11 15 #define OLED_FONT5X7 0x01
Nakor 0:4f009971ac11 16 #define OLED_FONT8X8 0x02
Nakor 0:4f009971ac11 17 #define OLED_FONT8X12 0x03
Nakor 0:4f009971ac11 18
Nakor 0:4f009971ac11 19 #define OLED_DISPLAYCONTROL_DISPLAY 0x01
Nakor 0:4f009971ac11 20 #define OLED_DISPLAYCONTROL_CONTRAST 0x02
Nakor 0:4f009971ac11 21 #define OLED_DISPLAYCONTROL_POWER 0x03
Nakor 0:4f009971ac11 22
Nakor 0:4f009971ac11 23 /** uOLED control class using Serial
Nakor 0:4f009971ac11 24 *
Nakor 0:4f009971ac11 25 * Example:
Nakor 0:4f009971ac11 26 * @code
Nakor 0:4f009971ac11 27 * // Draw text on the screen.
Nakor 0:4f009971ac11 28 * #include "mbed.h"
Nakor 0:4f009971ac11 29 * #include "uOLED.h"
Nakor 0:4f009971ac11 30 *
Nakor 0:4f009971ac11 31 * uOLED SGC(p9, p10, p11);
Nakor 0:4f009971ac11 32 *
Nakor 0:4f009971ac11 33 int main()
Nakor 0:4f009971ac11 34 * {
Nakor 0:4f009971ac11 35 * SGC.drawText(0, 0, 0, FF, "This is text");
Nakor 0:4f009971ac11 36 * }
Nakor 0:4f009971ac11 37 */
Nakor 0:4f009971ac11 38 class uOLED {
Nakor 0:4f009971ac11 39 public:
Nakor 0:4f009971ac11 40
Nakor 1:476dcc382de3 41 /** Dunno
Nakor 1:476dcc382de3 42 * Dunno
Nakor 1:476dcc382de3 43 */
Nakor 0:4f009971ac11 44 uOLED(PinName serialTX, PinName serialRX, PinName reset);
Nakor 1:476dcc382de3 45
Nakor 1:476dcc382de3 46 /** Dunno2
Nakor 1:476dcc382de3 47 * Dunno
Nakor 1:476dcc382de3 48 */
Nakor 0:4f009971ac11 49 short getRGB(char red, char green, char blue);
Nakor 0:4f009971ac11 50
Nakor 1:476dcc382de3 51 /** Dunno3
Nakor 1:476dcc382de3 52 * Dunno
Nakor 1:476dcc382de3 53 */
Nakor 0:4f009971ac11 54 bool addBitmappedCharacter(char character, char data[8]);
Nakor 1:476dcc382de3 55 /** Dunno4
Nakor 1:476dcc382de3 56 * Dunno
Nakor 1:476dcc382de3 57 */
Nakor 0:4f009971ac11 58 bool blockCopyPaste(char sourceX, char sourceY, char destinationX, char destinationY, char width, char height);
Nakor 1:476dcc382de3 59 /** Dunno5
Nakor 1:476dcc382de3 60 * Dunno
Nakor 1:476dcc382de3 61 */
Nakor 0:4f009971ac11 62 bool displayControl(char mode);
Nakor 1:476dcc382de3 63 /** Dunno6
Nakor 1:476dcc382de3 64 * Dunno
Nakor 1:476dcc382de3 65 */
Nakor 0:4f009971ac11 66 bool displayUserBitmappedCharacter(char character, char x, char y, short color);
Nakor 1:476dcc382de3 67 /** Dunno7
Nakor 1:476dcc382de3 68 * Dunno
Nakor 1:476dcc382de3 69 */
Nakor 0:4f009971ac11 70 bool drawCircle(char x, char y, char radius, short color);
Nakor 1:476dcc382de3 71 /** Dunno8
Nakor 1:476dcc382de3 72 * Dunno
Nakor 1:476dcc382de3 73 */
Nakor 0:4f009971ac11 74 bool drawCharacter(char character, char column, char row, short color);
Nakor 1:476dcc382de3 75 /** Dunno9
Nakor 1:476dcc382de3 76 * Dunno
Nakor 1:476dcc382de3 77 */
Nakor 0:4f009971ac11 78 bool drawImage(char x, char y, char width, char height, char colorMode, char *pixels);
Nakor 1:476dcc382de3 79 /** Dunno10
Nakor 1:476dcc382de3 80 * Dunno
Nakor 1:476dcc382de3 81 */
Nakor 0:4f009971ac11 82 bool drawLine(char x1, char y1, char x2, char y2, short color);
Nakor 1:476dcc382de3 83 /** Dunno11
Nakor 1:476dcc382de3 84 * Dunno
Nakor 1:476dcc382de3 85 */
Nakor 0:4f009971ac11 86 bool drawPolygon(char vertices, char *x, char *y, short color);
Nakor 1:476dcc382de3 87 /** Dunno12
Nakor 1:476dcc382de3 88 * Dunno
Nakor 1:476dcc382de3 89 */
Nakor 0:4f009971ac11 90 bool drawRectangle(char x, char y, char width, char height, short color);
Nakor 1:476dcc382de3 91 /** Dunno13
Nakor 1:476dcc382de3 92 * Dunno
Nakor 1:476dcc382de3 93 */
Nakor 0:4f009971ac11 94 bool drawText(char column, char row, char font, short color, char *text);
Nakor 1:476dcc382de3 95 /** Dunno14
Nakor 1:476dcc382de3 96 * Dunno
Nakor 1:476dcc382de3 97 */
Nakor 0:4f009971ac11 98 bool drawTriangle(char x1, char y1, char x2, char y2, char x3, char y3, short color);
Nakor 1:476dcc382de3 99 /** Dunno15
Nakor 1:476dcc382de3 100 * Dunno
Nakor 1:476dcc382de3 101 */
Nakor 0:4f009971ac11 102 bool eraseScreen();
Nakor 0:4f009971ac11 103 /** Initialize the screen. This must be completed before any other communication with the device.
Nakor 0:4f009971ac11 104 * Timing allows for at least 500ms delay for initialization.
Nakor 0:4f009971ac11 105 */
Nakor 0:4f009971ac11 106 bool init();
Nakor 1:476dcc382de3 107 /** Dunno16
Nakor 1:476dcc382de3 108 * Dunno
Nakor 1:476dcc382de3 109 */
Nakor 0:4f009971ac11 110 bool penSize(char size);
Nakor 1:476dcc382de3 111 /** Dunno17
Nakor 1:476dcc382de3 112 * Dunno
Nakor 1:476dcc382de3 113 */
Nakor 0:4f009971ac11 114 bool putPixel(char x, char y, short color);
Nakor 1:476dcc382de3 115 /** Dunno18
Nakor 1:476dcc382de3 116 * Dunno
Nakor 1:476dcc382de3 117 */
Nakor 0:4f009971ac11 118 short readPixel(char x, char y);
Nakor 1:476dcc382de3 119 /** Dunno19
Nakor 1:476dcc382de3 120 * Dunno
Nakor 1:476dcc382de3 121 */
Nakor 0:4f009971ac11 122 bool setBackgroundColor(short color);
Nakor 1:476dcc382de3 123 /** Dunno20
Nakor 1:476dcc382de3 124 * Dunno
Nakor 1:476dcc382de3 125 */
Nakor 0:4f009971ac11 126 bool setFontSize(char fontType);
Nakor 1:476dcc382de3 127 /** Dunno21
Nakor 1:476dcc382de3 128 * Dunno
Nakor 1:476dcc382de3 129 */
Nakor 0:4f009971ac11 130 bool textButton(char state, char x, char y, short buttonColor, char font, short textColor, char textWidth, char textHeight, char *text);
Nakor 1:476dcc382de3 131 /** Dunno22
Nakor 1:476dcc382de3 132 * Dunno
Nakor 1:476dcc382de3 133 */
Nakor 0:4f009971ac11 134 bool textMode(char mode);
Nakor 1:476dcc382de3 135 /** Dunno23
Nakor 1:476dcc382de3 136 * Dunno
Nakor 1:476dcc382de3 137 */
Nakor 0:4f009971ac11 138 bool versionInfo(bool onScreen, char *info);
Nakor 0:4f009971ac11 139
Nakor 0:4f009971ac11 140
Nakor 0:4f009971ac11 141 protected:
Nakor 0:4f009971ac11 142 Serial _oled;
Nakor 0:4f009971ac11 143 DigitalOut _reset;
Nakor 0:4f009971ac11 144
Nakor 0:4f009971ac11 145 void resetDisplay();
Nakor 0:4f009971ac11 146 };