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
Diff: uOLED.h
- Revision:
- 0:4f009971ac11
- Child:
- 1:476dcc382de3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uOLED.h Mon Dec 20 18:11:30 2010 +0000 @@ -0,0 +1,77 @@ +/* mbed 4D uOLED Library + * Originally designed for use with uOLED-96-G1 (SGC) + * serially controlled .96" screen. + * + * This is a modified library originally obtained from + * Erik van Wijk's library code at: + * http://mbed.org/users/evwijk/libraries/microOLED/li4nzn + */ + +#ifndef _MBED_UOLED_ +#define _MBED_UOLED_ + +#include "mbed.h" + +#define OLED_FONT5X7 0x01 +#define OLED_FONT8X8 0x02 +#define OLED_FONT8X12 0x03 + +#define OLED_DISPLAYCONTROL_DISPLAY 0x01 +#define OLED_DISPLAYCONTROL_CONTRAST 0x02 +#define OLED_DISPLAYCONTROL_POWER 0x03 + +/** uOLED control class using Serial + * + * Example: + * @code + * // Draw text on the screen. + * #include "mbed.h" + * #include "uOLED.h" + * + * uOLED SGC(p9, p10, p11); + * + int main() + * { + * SGC.drawText(0, 0, 0, FF, "This is text"); + * } + */ +class uOLED { +public: + + uOLED(PinName serialTX, PinName serialRX, PinName reset); + + short getRGB(char red, char green, char blue); + + bool addBitmappedCharacter(char character, char data[8]); + bool blockCopyPaste(char sourceX, char sourceY, char destinationX, char destinationY, char width, char height); + bool displayControl(char mode); + bool displayUserBitmappedCharacter(char character, char x, char y, short color); + bool drawCircle(char x, char y, char radius, short color); + bool drawCharacter(char character, char column, char row, short color); + bool drawImage(char x, char y, char width, char height, char colorMode, char *pixels); + bool drawLine(char x1, char y1, char x2, char y2, short color); + bool drawPolygon(char vertices, char *x, char *y, short color); + bool drawRectangle(char x, char y, char width, char height, short color); + bool drawText(char column, char row, char font, short color, char *text); + bool drawTriangle(char x1, char y1, char x2, char y2, char x3, char y3, short color); + bool eraseScreen(); + /** Initialize the screen. This must be completed before any other communication with the device. + * Timing allows for at least 500ms delay for initialization. + */ + bool init(); + bool penSize(char size); + bool putPixel(char x, char y, short color); + short readPixel(char x, char y); + bool setBackgroundColor(short color); + bool setFontSize(char fontType); + bool textButton(char state, char x, char y, short buttonColor, char font, short textColor, char textWidth, char textHeight, char *text); + bool textMode(char mode); + bool versionInfo(bool onScreen, char *info); + + +protected: + Serial _oled; + DigitalOut _reset; + + void resetDisplay(); +}; \ No newline at end of file