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

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