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 00:35:49 2010 +0000
Revision:
14:3d90211095d4
Parent:
13:f2b9f249bcff
Child:
15:06ef508fef4b

        

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 1:476dcc382de3 53 /** Dunno2
Nakor 1:476dcc382de3 54 * Dunno
Nakor 2:559b81f2bb1e 55 * @param returns something.
Nakor 1:476dcc382de3 56 */
Nakor 0:4f009971ac11 57 short getRGB(char red, char green, char blue);
Nakor 0:4f009971ac11 58
Nakor 1:476dcc382de3 59 /** Dunno3
Nakor 1:476dcc382de3 60 * Dunno
Nakor 2:559b81f2bb1e 61 * @param returns something.
Nakor 1:476dcc382de3 62 */
Nakor 0:4f009971ac11 63 bool addBitmappedCharacter(char character, char data[8]);
Nakor 1:476dcc382de3 64 /** Dunno4
Nakor 1:476dcc382de3 65 * Dunno
Nakor 2:559b81f2bb1e 66 * @param returns something.
Nakor 1:476dcc382de3 67 */
Nakor 0:4f009971ac11 68 bool blockCopyPaste(char sourceX, char sourceY, char destinationX, char destinationY, char width, char height);
Nakor 1:476dcc382de3 69 /** Dunno5
Nakor 1:476dcc382de3 70 * Dunno
Nakor 2:559b81f2bb1e 71 * @param returns something.
Nakor 1:476dcc382de3 72 */
Nakor 0:4f009971ac11 73 bool displayControl(char mode);
Nakor 12:59da6ae5cfb7 74 /** Dunno5
Nakor 12:59da6ae5cfb7 75 * Dunno
Nakor 12:59da6ae5cfb7 76 * @param returns something.
Nakor 12:59da6ae5cfb7 77 */
Nakor 12:59da6ae5cfb7 78 bool setContrast(char contrast);
Nakor 1:476dcc382de3 79 /** Dunno6
Nakor 1:476dcc382de3 80 * Dunno
Nakor 2:559b81f2bb1e 81 * @param returns something.
Nakor 1:476dcc382de3 82 */
Nakor 0:4f009971ac11 83 bool displayUserBitmappedCharacter(char character, char x, char y, short color);
Nakor 1:476dcc382de3 84 /** Dunno7
Nakor 1:476dcc382de3 85 * Dunno
Nakor 2:559b81f2bb1e 86 * @param returns something.
Nakor 1:476dcc382de3 87 */
Nakor 0:4f009971ac11 88 bool drawCircle(char x, char y, char radius, short color);
Nakor 1:476dcc382de3 89 /** Dunno8
Nakor 1:476dcc382de3 90 * Dunno
Nakor 2:559b81f2bb1e 91 * @param returns something.
Nakor 1:476dcc382de3 92 */
Nakor 0:4f009971ac11 93 bool drawCharacter(char character, char column, char row, short color);
Nakor 1:476dcc382de3 94 /** Dunno9
Nakor 1:476dcc382de3 95 * Dunno
Nakor 2:559b81f2bb1e 96 * @param returns something.
Nakor 1:476dcc382de3 97 */
Nakor 0:4f009971ac11 98 bool drawImage(char x, char y, char width, char height, char colorMode, char *pixels);
Nakor 1:476dcc382de3 99 /** Dunno10
Nakor 1:476dcc382de3 100 * Dunno
Nakor 2:559b81f2bb1e 101 * @param returns something.
Nakor 1:476dcc382de3 102 */
Nakor 0:4f009971ac11 103 bool drawLine(char x1, char y1, char x2, char y2, short color);
Nakor 1:476dcc382de3 104 /** Dunno11
Nakor 1:476dcc382de3 105 * Dunno
Nakor 2:559b81f2bb1e 106 * @param returns something.
Nakor 1:476dcc382de3 107 */
Nakor 0:4f009971ac11 108 bool drawPolygon(char vertices, char *x, char *y, short color);
Nakor 1:476dcc382de3 109 /** Dunno12
Nakor 1:476dcc382de3 110 * Dunno
Nakor 2:559b81f2bb1e 111 * @param returns something.
Nakor 1:476dcc382de3 112 */
Nakor 0:4f009971ac11 113 bool drawRectangle(char x, char y, char width, char height, short color);
Nakor 5:93ea03e2a688 114 /** Draw text to the screen.
Nakor 5:93ea03e2a688 115 *
Nakor 5:93ea03e2a688 116 * @param column X coordinate for text placement.
Nakor 5:93ea03e2a688 117 * @param row Y coordinate for text placement.
Nakor 5:93ea03e2a688 118 * @param font Which font to use (Uses 0, 1, or 2). More fonts can be added.
Nakor 5:93ea03e2a688 119 * @param color Font colour to use.
Nakor 5:93ea03e2a688 120 * @param *text Character array (string) to be displayed.
Nakor 5:93ea03e2a688 121 *
Nakor 5:93ea03e2a688 122 * Example:
Nakor 5:93ea03e2a688 123 * @code
Nakor 5:93ea03e2a688 124 * SGC.drawText(0, 0, 0, FF, "This is text");
Nakor 5:93ea03e2a688 125 * @endcode
Nakor 1:476dcc382de3 126 */
Nakor 6:080d52539972 127 bool drawText(char column, char row, char font, short color, char *text);
Nakor 14:3d90211095d4 128 /** Draw unformated text to the screen.
Nakor 14:3d90211095d4 129 * The manual describes this as "graphics format".
Nakor 14:3d90211095d4 130 *
Nakor 14:3d90211095d4 131 * @param x X coordinate for text placement.
Nakor 14:3d90211095d4 132 * @param y Y coordinate for text placement.
Nakor 14:3d90211095d4 133 * @param font Which font to use (Uses 0, 1, or 2). More fonts can be added.
Nakor 14:3d90211095d4 134 * @param red Amount of red in text colour RGB value.
Nakor 14:3d90211095d4 135 * @param green Amount of green in text colour RGB value.
Nakor 14:3d90211095d4 136 * @param blue Amount of blue in text colour RGB value.
Nakor 14:3d90211095d4 137 * @param width Text width.
Nakor 14:3d90211095d4 138 * @param height Text height.
Nakor 14:3d90211095d4 139 * @param *text Character array (string) to be displayed.
Nakor 14:3d90211095d4 140 *
Nakor 14:3d90211095d4 141 * Example:
Nakor 14:3d90211095d4 142 * @code
Nakor 14:3d90211095d4 143 * SGC.drawText(0, 0, 0, FF, "This is text");
Nakor 14:3d90211095d4 144 * @endcode
Nakor 14:3d90211095d4 145 */
Nakor 14:3d90211095d4 146 bool drawText(char x, char y, char font, short red, short green, short blue, char width, char height, char *text);
Nakor 6:080d52539972 147 /** Dunno13
Nakor 6:080d52539972 148 * Dunno
Nakor 6:080d52539972 149 * @param returns something.
Nakor 6:080d52539972 150 */
Nakor 0:4f009971ac11 151 bool drawTriangle(char x1, char y1, char x2, char y2, char x3, char y3, short color);
Nakor 1:476dcc382de3 152 /** Dunno15
Nakor 1:476dcc382de3 153 * Dunno
Nakor 2:559b81f2bb1e 154 * @param returns something.
Nakor 1:476dcc382de3 155 */
Nakor 0:4f009971ac11 156 bool eraseScreen();
Nakor 0:4f009971ac11 157 /** Initialize the screen. This must be completed before any other communication with the device.
Nakor 0:4f009971ac11 158 * Timing allows for at least 500ms delay for initialization.
Nakor 2:559b81f2bb1e 159 * @param returns bool indicating success or failure of initialization.
Nakor 0:4f009971ac11 160 */
Nakor 0:4f009971ac11 161 bool init();
Nakor 1:476dcc382de3 162 /** Dunno16
Nakor 1:476dcc382de3 163 * Dunno
Nakor 2:559b81f2bb1e 164 * @param returns something.
Nakor 1:476dcc382de3 165 */
Nakor 0:4f009971ac11 166 bool penSize(char size);
Nakor 1:476dcc382de3 167 /** Dunno17
Nakor 1:476dcc382de3 168 * Dunno
Nakor 2:559b81f2bb1e 169 * @param returns something.
Nakor 1:476dcc382de3 170 */
Nakor 0:4f009971ac11 171 bool putPixel(char x, char y, short color);
Nakor 1:476dcc382de3 172 /** Dunno18
Nakor 1:476dcc382de3 173 * Dunno
Nakor 2:559b81f2bb1e 174 * @param returns something.
Nakor 1:476dcc382de3 175 */
Nakor 0:4f009971ac11 176 short readPixel(char x, char y);
Nakor 7:c2fa784eb477 177 /** Replaces the background colour with a new colour.
Nakor 7:c2fa784eb477 178 *
Nakor 13:f2b9f249bcff 179 * @param red Red value (0 to 255).
Nakor 13:f2b9f249bcff 180 * @param green Green value (0 to 255).
Nakor 13:f2b9f249bcff 181 * @param blue Blue value (0 to 255).
Nakor 7:c2fa784eb477 182 */
Nakor 13:f2b9f249bcff 183 bool setBackgroundColour(char red, char green, char blue);
Nakor 1:476dcc382de3 184 /** Dunno19
Nakor 1:476dcc382de3 185 * Dunno
Nakor 2:559b81f2bb1e 186 * @param returns something.
Nakor 7:c2fa784eb477 187 */
Nakor 0:4f009971ac11 188 bool setFontSize(char fontType);
Nakor 1:476dcc382de3 189 /** Dunno21
Nakor 1:476dcc382de3 190 * Dunno
Nakor 2:559b81f2bb1e 191 * @param returns something.
Nakor 1:476dcc382de3 192 */
Nakor 0:4f009971ac11 193 bool textButton(char state, char x, char y, short buttonColor, char font, short textColor, char textWidth, char textHeight, char *text);
Nakor 1:476dcc382de3 194 /** Dunno22
Nakor 1:476dcc382de3 195 * Dunno
Nakor 2:559b81f2bb1e 196 * @param returns something.
Nakor 1:476dcc382de3 197 */
Nakor 0:4f009971ac11 198 bool textMode(char mode);
Nakor 1:476dcc382de3 199 /** Dunno23
Nakor 1:476dcc382de3 200 * Dunno
Nakor 2:559b81f2bb1e 201 * @param returns something.
Nakor 1:476dcc382de3 202 */
Nakor 0:4f009971ac11 203 bool versionInfo(bool onScreen, char *info);
Nakor 0:4f009971ac11 204
Nakor 0:4f009971ac11 205
Nakor 0:4f009971ac11 206 protected:
Nakor 0:4f009971ac11 207 Serial _oled;
Nakor 0:4f009971ac11 208 DigitalOut _reset;
Nakor 0:4f009971ac11 209
Nakor 0:4f009971ac11 210 void resetDisplay();
Nakor 8:0a92ceb34cd0 211 };
Nakor 8:0a92ceb34cd0 212
Nakor 8:0a92ceb34cd0 213 #endif