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 20:49:25 2010 +0000
Revision:
13:f2b9f249bcff
Parent:
12:59da6ae5cfb7
Child:
14:3d90211095d4

        

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 6:080d52539972 128 /** Dunno13
Nakor 6:080d52539972 129 * Dunno
Nakor 6:080d52539972 130 * @param returns something.
Nakor 6:080d52539972 131 */
Nakor 0:4f009971ac11 132 bool drawTriangle(char x1, char y1, char x2, char y2, char x3, char y3, short color);
Nakor 1:476dcc382de3 133 /** Dunno15
Nakor 1:476dcc382de3 134 * Dunno
Nakor 2:559b81f2bb1e 135 * @param returns something.
Nakor 1:476dcc382de3 136 */
Nakor 0:4f009971ac11 137 bool eraseScreen();
Nakor 0:4f009971ac11 138 /** Initialize the screen. This must be completed before any other communication with the device.
Nakor 0:4f009971ac11 139 * Timing allows for at least 500ms delay for initialization.
Nakor 2:559b81f2bb1e 140 * @param returns bool indicating success or failure of initialization.
Nakor 0:4f009971ac11 141 */
Nakor 0:4f009971ac11 142 bool init();
Nakor 1:476dcc382de3 143 /** Dunno16
Nakor 1:476dcc382de3 144 * Dunno
Nakor 2:559b81f2bb1e 145 * @param returns something.
Nakor 1:476dcc382de3 146 */
Nakor 0:4f009971ac11 147 bool penSize(char size);
Nakor 1:476dcc382de3 148 /** Dunno17
Nakor 1:476dcc382de3 149 * Dunno
Nakor 2:559b81f2bb1e 150 * @param returns something.
Nakor 1:476dcc382de3 151 */
Nakor 0:4f009971ac11 152 bool putPixel(char x, char y, short color);
Nakor 1:476dcc382de3 153 /** Dunno18
Nakor 1:476dcc382de3 154 * Dunno
Nakor 2:559b81f2bb1e 155 * @param returns something.
Nakor 1:476dcc382de3 156 */
Nakor 0:4f009971ac11 157 short readPixel(char x, char y);
Nakor 7:c2fa784eb477 158 /** Replaces the background colour with a new colour.
Nakor 7:c2fa784eb477 159 *
Nakor 13:f2b9f249bcff 160 * @param red Red value (0 to 255).
Nakor 13:f2b9f249bcff 161 * @param green Green value (0 to 255).
Nakor 13:f2b9f249bcff 162 * @param blue Blue value (0 to 255).
Nakor 7:c2fa784eb477 163 */
Nakor 13:f2b9f249bcff 164 bool setBackgroundColour(char red, char green, char blue);
Nakor 1:476dcc382de3 165 /** Dunno19
Nakor 1:476dcc382de3 166 * Dunno
Nakor 2:559b81f2bb1e 167 * @param returns something.
Nakor 7:c2fa784eb477 168 */
Nakor 0:4f009971ac11 169 bool setFontSize(char fontType);
Nakor 1:476dcc382de3 170 /** Dunno21
Nakor 1:476dcc382de3 171 * Dunno
Nakor 2:559b81f2bb1e 172 * @param returns something.
Nakor 1:476dcc382de3 173 */
Nakor 0:4f009971ac11 174 bool textButton(char state, char x, char y, short buttonColor, char font, short textColor, char textWidth, char textHeight, char *text);
Nakor 1:476dcc382de3 175 /** Dunno22
Nakor 1:476dcc382de3 176 * Dunno
Nakor 2:559b81f2bb1e 177 * @param returns something.
Nakor 1:476dcc382de3 178 */
Nakor 0:4f009971ac11 179 bool textMode(char mode);
Nakor 1:476dcc382de3 180 /** Dunno23
Nakor 1:476dcc382de3 181 * Dunno
Nakor 2:559b81f2bb1e 182 * @param returns something.
Nakor 1:476dcc382de3 183 */
Nakor 0:4f009971ac11 184 bool versionInfo(bool onScreen, char *info);
Nakor 0:4f009971ac11 185
Nakor 0:4f009971ac11 186
Nakor 0:4f009971ac11 187 protected:
Nakor 0:4f009971ac11 188 Serial _oled;
Nakor 0:4f009971ac11 189 DigitalOut _reset;
Nakor 0:4f009971ac11 190
Nakor 0:4f009971ac11 191 void resetDisplay();
Nakor 8:0a92ceb34cd0 192 };
Nakor 8:0a92ceb34cd0 193
Nakor 8:0a92ceb34cd0 194 #endif