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:
Tue Dec 21 01:11:18 2010 +0000
Revision:
17:cee1c66b3133
Parent:
16:6f5d07cfff03
Child:
18:77ec40174c31

        

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 5:93ea03e2a688 8 *
Nakor 5:93ea03e2a688 9 * This library (uOLED) by Aaron Goselin.
Nakor 5:93ea03e2a688 10 * 2010
Nakor 0:4f009971ac11 11 */
Nakor 0:4f009971ac11 12
Nakor 0:4f009971ac11 13 #ifndef _MBED_UOLED_
Nakor 0:4f009971ac11 14 #define _MBED_UOLED_
Nakor 0:4f009971ac11 15
Nakor 0:4f009971ac11 16 #include "mbed.h"
Nakor 0:4f009971ac11 17
Nakor 0:4f009971ac11 18 #define OLED_FONT5X7 0x01
Nakor 0:4f009971ac11 19 #define OLED_FONT8X8 0x02
Nakor 0:4f009971ac11 20 #define OLED_FONT8X12 0x03
Nakor 0:4f009971ac11 21
Nakor 0:4f009971ac11 22 #define OLED_DISPLAYCONTROL_DISPLAY 0x01
Nakor 0:4f009971ac11 23 #define OLED_DISPLAYCONTROL_CONTRAST 0x02
Nakor 0:4f009971ac11 24 #define OLED_DISPLAYCONTROL_POWER 0x03
Nakor 0:4f009971ac11 25
Nakor 0:4f009971ac11 26 /** uOLED control class using Serial
Nakor 0:4f009971ac11 27 *
Nakor 0:4f009971ac11 28 * Example:
Nakor 0:4f009971ac11 29 * @code
Nakor 0:4f009971ac11 30 * // Draw text on the screen.
Nakor 0:4f009971ac11 31 * #include "mbed.h"
Nakor 0:4f009971ac11 32 * #include "uOLED.h"
Nakor 0:4f009971ac11 33 *
Nakor 0:4f009971ac11 34 * uOLED SGC(p9, p10, p11);
Nakor 0:4f009971ac11 35 *
Nakor 5:93ea03e2a688 36 * int main()
Nakor 0:4f009971ac11 37 * {
Nakor 0:4f009971ac11 38 * SGC.drawText(0, 0, 0, FF, "This is text");
Nakor 0:4f009971ac11 39 * }
Nakor 3:949c5ac54e9c 40 * @endcode
Nakor 0:4f009971ac11 41 */
Nakor 0:4f009971ac11 42 class uOLED {
Nakor 0:4f009971ac11 43 public:
Nakor 0:4f009971ac11 44
Nakor 4:51f274633e70 45 /** Create an instance of the uOLED class.
Nakor 4:51f274633e70 46 *
Nakor 2:559b81f2bb1e 47 * @param serialTX - mbed TX pin to be used
Nakor 2:559b81f2bb1e 48 * @param serialRX - mbed RX pin to be used
Nakor 2:559b81f2bb1e 49 * @param reset - mbed pin to control reset of the uOLED
Nakor 1:476dcc382de3 50 */
Nakor 0:4f009971ac11 51 uOLED(PinName serialTX, PinName serialRX, PinName reset);
Nakor 1:476dcc382de3 52
Nakor 17:cee1c66b3133 53 /** Convert RGB value into the type of value that the uOLED wants.
Nakor 17:cee1c66b3133 54 *
Nakor 17:cee1c66b3133 55 * @param red Red value.
Nakor 17:cee1c66b3133 56 * @param green Green value.
Nakor 17:cee1c66b3133 57 * @param blue Blue value.
Nakor 1:476dcc382de3 58 */
Nakor 0:4f009971ac11 59 short getRGB(char red, char green, char blue);
Nakor 0:4f009971ac11 60
Nakor 17:cee1c66b3133 61 /** !!ToDo!!
Nakor 17:cee1c66b3133 62 *
Nakor 2:559b81f2bb1e 63 * @param returns something.
Nakor 1:476dcc382de3 64 */
Nakor 0:4f009971ac11 65 bool addBitmappedCharacter(char character, char data[8]);
Nakor 17:cee1c66b3133 66
Nakor 17:cee1c66b3133 67 /** !!ToDO!!
Nakor 1:476dcc382de3 68 * Dunno
Nakor 2:559b81f2bb1e 69 * @param returns something.
Nakor 1:476dcc382de3 70 */
Nakor 0:4f009971ac11 71 bool blockCopyPaste(char sourceX, char sourceY, char destinationX, char destinationY, char width, char height);
Nakor 17:cee1c66b3133 72
Nakor 17:cee1c66b3133 73 /** Display control.
Nakor 17:cee1c66b3133 74 *
Nakor 17:cee1c66b3133 75 * Display ON/OFF and PowerUp/Shutdown.
Nakor 17:cee1c66b3133 76 * Use setContrast(contrast) to set the contrast.
Nakor 17:cee1c66b3133 77 *
Nakor 17:cee1c66b3133 78 * @param mode Sets specified mode.
Nakor 17:cee1c66b3133 79 * @param value Value option for mode.
Nakor 17:cee1c66b3133 80 *
Nakor 17:cee1c66b3133 81 * Mode: 01 Display ON/OFF
Nakor 17:cee1c66b3133 82 * Value: 00 OFF
Nakor 17:cee1c66b3133 83 * Value: 01 ON
Nakor 17:cee1c66b3133 84 * Mode: 02 Contrast Adjust
Nakor 17:cee1c66b3133 85 * Value range: 0x00 to 0x0F
Nakor 17:cee1c66b3133 86 * Mode: 03 Display PowerUp/Shutdown (low power mode)
Nakor 17:cee1c66b3133 87 * Value 00 Shutdown
Nakor 17:cee1c66b3133 88 * Value 01 Powerup
Nakor 1:476dcc382de3 89 */
Nakor 17:cee1c66b3133 90 bool displayControl(char mode, char value);
Nakor 17:cee1c66b3133 91
Nakor 12:59da6ae5cfb7 92 /** Dunno5
Nakor 12:59da6ae5cfb7 93 * Dunno
Nakor 12:59da6ae5cfb7 94 * @param returns something.
Nakor 12:59da6ae5cfb7 95 */
Nakor 12:59da6ae5cfb7 96 bool setContrast(char contrast);
Nakor 1:476dcc382de3 97 /** Dunno6
Nakor 1:476dcc382de3 98 * Dunno
Nakor 2:559b81f2bb1e 99 * @param returns something.
Nakor 1:476dcc382de3 100 */
Nakor 0:4f009971ac11 101 bool displayUserBitmappedCharacter(char character, char x, char y, short color);
Nakor 1:476dcc382de3 102 /** Dunno7
Nakor 1:476dcc382de3 103 * Dunno
Nakor 2:559b81f2bb1e 104 * @param returns something.
Nakor 1:476dcc382de3 105 */
Nakor 0:4f009971ac11 106 bool drawCircle(char x, char y, char radius, short color);
Nakor 1:476dcc382de3 107 /** Dunno8
Nakor 1:476dcc382de3 108 * Dunno
Nakor 2:559b81f2bb1e 109 * @param returns something.
Nakor 1:476dcc382de3 110 */
Nakor 0:4f009971ac11 111 bool drawCharacter(char character, char column, char row, short color);
Nakor 1:476dcc382de3 112 /** Dunno9
Nakor 1:476dcc382de3 113 * Dunno
Nakor 2:559b81f2bb1e 114 * @param returns something.
Nakor 1:476dcc382de3 115 */
Nakor 0:4f009971ac11 116 bool drawImage(char x, char y, char width, char height, char colorMode, char *pixels);
Nakor 1:476dcc382de3 117 /** Dunno10
Nakor 1:476dcc382de3 118 * Dunno
Nakor 2:559b81f2bb1e 119 * @param returns something.
Nakor 1:476dcc382de3 120 */
Nakor 0:4f009971ac11 121 bool drawLine(char x1, char y1, char x2, char y2, short color);
Nakor 1:476dcc382de3 122 /** Dunno11
Nakor 1:476dcc382de3 123 * Dunno
Nakor 2:559b81f2bb1e 124 * @param returns something.
Nakor 1:476dcc382de3 125 */
Nakor 0:4f009971ac11 126 bool drawPolygon(char vertices, char *x, char *y, short color);
Nakor 1:476dcc382de3 127 /** Dunno12
Nakor 1:476dcc382de3 128 * Dunno
Nakor 2:559b81f2bb1e 129 * @param returns something.
Nakor 1:476dcc382de3 130 */
Nakor 0:4f009971ac11 131 bool drawRectangle(char x, char y, char width, char height, short color);
Nakor 5:93ea03e2a688 132 /** Draw text to the screen.
Nakor 5:93ea03e2a688 133 *
Nakor 5:93ea03e2a688 134 * @param column X coordinate for text placement.
Nakor 5:93ea03e2a688 135 * @param row Y coordinate for text placement.
Nakor 5:93ea03e2a688 136 * @param font Which font to use (Uses 0, 1, or 2). More fonts can be added.
Nakor 5:93ea03e2a688 137 * @param color Font colour to use.
Nakor 5:93ea03e2a688 138 * @param *text Character array (string) to be displayed.
Nakor 5:93ea03e2a688 139 *
Nakor 5:93ea03e2a688 140 * Example:
Nakor 5:93ea03e2a688 141 * @code
Nakor 5:93ea03e2a688 142 * SGC.drawText(0, 0, 0, FF, "This is text");
Nakor 5:93ea03e2a688 143 * @endcode
Nakor 1:476dcc382de3 144 */
Nakor 6:080d52539972 145 bool drawText(char column, char row, char font, short color, char *text);
Nakor 14:3d90211095d4 146 /** Draw unformated text to the screen.
Nakor 14:3d90211095d4 147 * The manual describes this as "graphics format".
Nakor 14:3d90211095d4 148 *
Nakor 14:3d90211095d4 149 * @param x X coordinate for text placement.
Nakor 14:3d90211095d4 150 * @param y Y coordinate for text placement.
Nakor 14:3d90211095d4 151 * @param font Which font to use (Uses 0, 1, or 2). More fonts can be added.
Nakor 14:3d90211095d4 152 * @param red Amount of red in text colour RGB value.
Nakor 14:3d90211095d4 153 * @param green Amount of green in text colour RGB value.
Nakor 14:3d90211095d4 154 * @param blue Amount of blue in text colour RGB value.
Nakor 14:3d90211095d4 155 * @param width Text width.
Nakor 14:3d90211095d4 156 * @param height Text height.
Nakor 14:3d90211095d4 157 * @param *text Character array (string) to be displayed.
Nakor 14:3d90211095d4 158 *
Nakor 14:3d90211095d4 159 * Example:
Nakor 14:3d90211095d4 160 * @code
Nakor 16:6f5d07cfff03 161 * SGC.drawTextUF(0, 0, 0, 20, 20, 255, 1, 1, "This is text");
Nakor 14:3d90211095d4 162 * @endcode
Nakor 14:3d90211095d4 163 */
Nakor 15:06ef508fef4b 164 bool drawTextUF(char x, char y, char font, short red, short green, short blue, char width, char height, char *text);
Nakor 6:080d52539972 165 /** Dunno13
Nakor 6:080d52539972 166 * Dunno
Nakor 6:080d52539972 167 * @param returns something.
Nakor 6:080d52539972 168 */
Nakor 0:4f009971ac11 169 bool drawTriangle(char x1, char y1, char x2, char y2, char x3, char y3, short color);
Nakor 1:476dcc382de3 170 /** Dunno15
Nakor 1:476dcc382de3 171 * Dunno
Nakor 2:559b81f2bb1e 172 * @param returns something.
Nakor 1:476dcc382de3 173 */
Nakor 0:4f009971ac11 174 bool eraseScreen();
Nakor 0:4f009971ac11 175 /** Initialize the screen. This must be completed before any other communication with the device.
Nakor 0:4f009971ac11 176 * Timing allows for at least 500ms delay for initialization.
Nakor 2:559b81f2bb1e 177 * @param returns bool indicating success or failure of initialization.
Nakor 0:4f009971ac11 178 */
Nakor 0:4f009971ac11 179 bool init();
Nakor 1:476dcc382de3 180 /** Dunno16
Nakor 1:476dcc382de3 181 * Dunno
Nakor 2:559b81f2bb1e 182 * @param returns something.
Nakor 1:476dcc382de3 183 */
Nakor 0:4f009971ac11 184 bool penSize(char size);
Nakor 1:476dcc382de3 185 /** Dunno17
Nakor 1:476dcc382de3 186 * Dunno
Nakor 2:559b81f2bb1e 187 * @param returns something.
Nakor 1:476dcc382de3 188 */
Nakor 0:4f009971ac11 189 bool putPixel(char x, char y, short color);
Nakor 1:476dcc382de3 190 /** Dunno18
Nakor 1:476dcc382de3 191 * Dunno
Nakor 2:559b81f2bb1e 192 * @param returns something.
Nakor 1:476dcc382de3 193 */
Nakor 0:4f009971ac11 194 short readPixel(char x, char y);
Nakor 7:c2fa784eb477 195 /** Replaces the background colour with a new colour.
Nakor 7:c2fa784eb477 196 *
Nakor 13:f2b9f249bcff 197 * @param red Red value (0 to 255).
Nakor 13:f2b9f249bcff 198 * @param green Green value (0 to 255).
Nakor 13:f2b9f249bcff 199 * @param blue Blue value (0 to 255).
Nakor 7:c2fa784eb477 200 */
Nakor 13:f2b9f249bcff 201 bool setBackgroundColour(char red, char green, char blue);
Nakor 1:476dcc382de3 202 /** Dunno19
Nakor 1:476dcc382de3 203 * Dunno
Nakor 2:559b81f2bb1e 204 * @param returns something.
Nakor 7:c2fa784eb477 205 */
Nakor 0:4f009971ac11 206 bool setFontSize(char fontType);
Nakor 1:476dcc382de3 207 /** Dunno21
Nakor 1:476dcc382de3 208 * Dunno
Nakor 2:559b81f2bb1e 209 * @param returns something.
Nakor 1:476dcc382de3 210 */
Nakor 0:4f009971ac11 211 bool textButton(char state, char x, char y, short buttonColor, char font, short textColor, char textWidth, char textHeight, char *text);
Nakor 1:476dcc382de3 212 /** Dunno22
Nakor 1:476dcc382de3 213 * Dunno
Nakor 2:559b81f2bb1e 214 * @param returns something.
Nakor 1:476dcc382de3 215 */
Nakor 0:4f009971ac11 216 bool textMode(char mode);
Nakor 1:476dcc382de3 217 /** Dunno23
Nakor 1:476dcc382de3 218 * Dunno
Nakor 2:559b81f2bb1e 219 * @param returns something.
Nakor 1:476dcc382de3 220 */
Nakor 0:4f009971ac11 221 bool versionInfo(bool onScreen, char *info);
Nakor 0:4f009971ac11 222
Nakor 0:4f009971ac11 223
Nakor 0:4f009971ac11 224 protected:
Nakor 0:4f009971ac11 225 Serial _oled;
Nakor 0:4f009971ac11 226 DigitalOut _reset;
Nakor 0:4f009971ac11 227
Nakor 0:4f009971ac11 228 void resetDisplay();
Nakor 8:0a92ceb34cd0 229 };
Nakor 8:0a92ceb34cd0 230
Nakor 8:0a92ceb34cd0 231 #endif