lcd: overhaul documentation for lcd module
authorBrendan Le Foll <brendan.le.foll@intel.com>
Thu, 7 Aug 2014 18:15:49 +0000 (19:15 +0100)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Thu, 7 Aug 2014 18:15:49 +0000 (19:15 +0100)
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
examples/lcm-lcd.cxx
examples/oled-1308.cxx
examples/oled-1327.cxx
examples/rgb-lcd.cxx
src/lcd/jhd1313m1.h
src/lcd/lcm1602.h
src/lcd/ssd1308.h
src/lcd/ssd1327.h

index f1cb8bf..f122b07 100644 (file)
 int
 main(int argc, char **argv)
 {
+//! [Interesting]
     upm::Lcm1602* lcd = new upm::Lcm1602(0, 0x27);
     lcd->setCursor(0,0);
     lcd->write("Hello World");
+//! [Interesting]
     lcd->setCursor(1,2);
     lcd->write("Hello World");
     lcd->setCursor(2,4);
index c685e3c..8bb8702 100644 (file)
@@ -83,13 +83,16 @@ static uint8_t intel_logo[] = {
     63, 63, 63, 63, 63, 31, 31, 31, 31, 31, 15, 15, 15, 15, 7, 7, 7, 7, 3, 3,
     3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0 };
+
 int
 main(int argc, char **argv)
 {
-    upm::SSD1308 *lcd = new upm::SSD1308 (BUS_NUMBER, DEVICE_ADDRESS);
+//! [Interesting]
+    upm::SSD1308 *lcd = new upm::SSD1308(BUS_NUMBER, DEVICE_ADDRESS);
 
-    lcd->clear ();
-    lcd->draw (intel_logo, 1024);
+    lcd->clear();
+    lcd->draw(intel_logo, 1024);
 
-    lcd->close ();
+    lcd->close();
+//! [Interesting]
 }
index 16fa404..6affaf3 100644 (file)
@@ -106,21 +106,19 @@ static uint8_t SeeedLogo[] ={
 int
 main(int argc, char **argv)
 {
-    upm::SSD1327 *lcd = new upm::SSD1327 (BUS_NUMBER, 0x3C);
+//! [Interesting]
+    upm::SSD1327 *lcd = new upm::SSD1327(BUS_NUMBER, 0x3C);
 
-    /*
-     * Simple print hello world
-     */
-    for(uint8_t i = 0; i < 12 ; i++) {
-        lcd->setCursor (i, 0);
-        lcd->setGrayLevel (i);
-        lcd->write ("Hello World");
+    // Simple print hello world
+    for (uint8_t i = 0; i < 12; i++) {
+        lcd->setCursor(i, 0);
+        lcd->setGrayLevel(i);
+        lcd->write("Hello World");
     }
 
-   /*
-     * Simple print hello world
-     */
-    lcd->draw (SeeedLogo, 96 * 96 / 8);
+    // Simple print hello world
+    lcd->draw(SeeedLogo, 96 * 96 / 8);
 
-    lcd->close ();
+    lcd->close();
+//! [Interesting]
 }
index f0d55d1..b28a593 100644 (file)
@@ -27,6 +27,7 @@
 int
 main(int argc, char **argv)
 {
+//! [Interesting]
     // 0x62 RGB_ADDRESS, 0x3E LCD_ADDRESS
     upm::Jhd1313m1 *lcd = new upm::Jhd1313m1(0, 0x3E, 0x62);
     lcd->setCursor(0,0);
@@ -34,4 +35,5 @@ main(int argc, char **argv)
     lcd->setCursor(1,2);
     lcd->write("Hello World");
     lcd->close();
+//! [Interesting]
 }
index 4c49f9b..994483f 100644 (file)
 
 namespace upm {
 
+/**
+ * @brief C++ API for Jhd1313m1 i2c controller for HD44780 based displays with
+ * an RGB backlight such as the Grove RGB i2c LCD display
+ *
+ * @snippet rgb-lcd.cxx Interesting
+ */
 class Jhd1313m1 : public I2CLcd {
     public:
-        Jhd1313m1 (int bus, int lcdAddress, int rgbAddress);
-        ~Jhd1313m1 ();
-        mraa_result_t setColor(uint8_t r, uint8_t g, uint8_t b);
-        mraa_result_t write (std::string msg);
-        mraa_result_t setCursor (int row, int column);
-        mraa_result_t clear ();
-        mraa_result_t home ();
+       /**
+        * Jhd1313m1 constructor
+        *
+        * @param bus i2c bus to use
+        * @param address the slave address the lcd is registered on
+        * @param address the slave address the rgb backlight is on
+        */
+        Jhd1313m1(int bus, int lcdAddress, int rgbAddress);
+       /**
+        * Jhd1313m1 destructor
+        */
+        ~Jhd1313m1();
+       /**
+        * Make the LCD scroll text
+        *
+        * @param direction, true is typical scrolling to the right
+        * @return Result of operation
+        */
         mraa_result_t scroll (bool direction);
+       /**
+        * Set the color of the backlight
+        *
+        * @param r 0-255 value for red
+        * @param g 0-255 value for green
+        * @param b 0-255 value for blue
+        * @return Result of operation
+        */
+        mraa_result_t setColor(uint8_t r, uint8_t g, uint8_t b);
+       /**
+        * Write a string to LCD
+        *
+        * @param msg The std::string to write to display, note only ascii
+        *     chars are supported
+        * @return Result of operation
+        */
+        mraa_result_t write(std::string msg);
+       /**
+        * Set cursor to a coordinate
+        *
+        * @param row The row to set cursor to
+        * @param column The column to set cursor to
+        * @return Result of operation
+        */
+        mraa_result_t setCursor(int row, int column);
+       /**
+        * Clear display from characters
+        *
+        * @return Result of operatio
+        */
+        mraa_result_t clear();
+       /**
+        * Return to coordinate 0,0
+        *
+        * @return Result of operation
+        */
+        mraa_result_t home();
 
     private:
         int m_rgb_address;
index 0e8920c..386def9 100644 (file)
 
 namespace upm {
 
+/**
+ * @brief C++ API for LCM1602 i2c controller for HD44780 based displays
+ *
+ * This supports all sizes of HD44780 displays from 16x2 to 4x20, the
+ * controller has no idea of the actual display hardware so will let you write
+ * further than you can see
+ *
+ * @snippet lcm-lcd.cxx Interesting
+ */
 class Lcm1602 : public I2CLcd {
     public:
-        /** LCM1602 Constructor.
-         * Calls MRAA initialisation functions.
-         * @param bus i2c bus to use
-         * @param address the slave address the lcd is registered on.
-         */
+       /**
+        * Lcm1602 Constructor, calls libmraa initialisation functions
+        *
+        * @param bus i2c bus to use
+        * @param address the slave address the lcd is registered on
+        */
         Lcm1602(int bus, int address);
+       /**
+        * Lcm1602 Destructor
+        */
         ~Lcm1602();
-        mraa_result_t write (std::string msg);
-        mraa_result_t setCursor (int row, int column);
-        mraa_result_t clear ();
-        mraa_result_t home ();
+       /**
+        * Write a string to LCD
+        *
+        * @param msg The std::string to write to display, note only ascii
+        *     chars are supported
+        * @return Result of operation
+        */
+        mraa_result_t write(std::string msg);
+       /**
+        * Set cursor to a coordinate
+        *
+        * @param row The row to set cursor to
+        * @param column The column to set cursor to
+        * @return Result of operation
+        */
+        mraa_result_t setCursor(int row, int column);
+       /**
+        * Clear display from characters
+        *
+        * @return Result of operatio
+        */
+        mraa_result_t clear();
+       /**
+        * Return to coordinate 0,0
+        *
+        * @return Result of operation
+        */
+        mraa_result_t home();
 
     private :
-        mraa_result_t send (uint8_t value, int mode);
+        mraa_result_t send(uint8_t value, int mode);
         mraa_result_t write4bits(uint8_t value);
         mraa_result_t expandWrite(uint8_t value);
         mraa_result_t pulseEnable(uint8_t value);
index 3bdbde6..d125df0 100644 (file)
@@ -145,23 +145,61 @@ typedef enum {
     PAGE          =  2
 } displayAddressingMode;
 
+/**
+ * @brief C++ API for SSD1308 i2c controlled OLED displays
+ *
+ * @snippet lcm-lcd.cxx Interesting
+ */
 class SSD1308 : public I2CLcd {
     public:
-        /** SSD1308 Constructor.
-         * Calls MRAA initialisation functions.
-         * @param bus i2c bus to use
-         * @param address the slave address the lcd is registered on.
-         */
+       /**
+        * SSD1308 Constructor, calls libmraa initialisation functions
+        *
+        * @param bus i2c bus to use
+        * @param address the slave address the lcd is registered on
+        */
         SSD1308 (int bus, int address);
+       /**
+        * SSD1308 Destructor
+        */
         ~SSD1308 ();
+       /**
+        * Draw an image, see examples/python/make_oled_pic.py for an
+        * explanation on how the pixels are mapped to bytes
+        *
+        * @param data the buffer to read
+        * @param bytes the amount of bytes to read from the pointer
+        * @return Result of operation
+        */
         mraa_result_t draw(uint8_t *data, int bytes);
-
-        // pure virtual methods
-        mraa_result_t write (std::string msg);
-        mraa_result_t setCursor (int row, int column);
-        mraa_result_t clear ();
-        mraa_result_t home ();
-
+       /**
+        * Write a string to LCD
+        *
+        * @param msg The std::string to write to display, note only ascii
+        *     chars are supported
+        * @return Result of operation
+        */
+        mraa_result_t write(std::string msg);
+       /**
+        * Set cursor to a coordinate
+        *
+        * @param row The row to set cursor to
+        * @param column The column to set cursor to
+        * @return Result of operation
+        */
+        mraa_result_t setCursor(int row, int column);
+       /**
+        * Clear display from characters
+        *
+        * @return Result of operatio
+        */
+        mraa_result_t clear();
+       /**
+        * Return to coordinate 0,0
+        *
+        * @return Result of operation
+        */
+        mraa_result_t home();
     private:
         mraa_result_t writeChar (mraa_i2c_context ctx, uint8_t value);
         mraa_result_t setNormalDisplay ();
index 55a47ec..8b016e3 100644 (file)
@@ -147,21 +147,61 @@ typedef enum {
 
 class SSD1327 : public I2CLcd {
     public:
-        /** SSD1308 Constructor.
-         * Calls MRAA initialisation functions.
+        /**
+         * SSD1308 Constructor, calls libmraa initialisation functions
+         *
          * @param bus i2c bus to use
-         * @param address the slave address the lcd is registered on.
+         * @param address the slave address the lcd is registered on
          */
         SSD1327 (int bus, int address);
+       /**
+        * SSD1327 destructor
+        */
         ~SSD1327 ();
+       /**
+        * Draw an image, see examples/python/make_oled_pic.py for an
+        * explanation on how the pixels are mapped to bytes
+        *
+        * @param data the buffer to read
+        * @param bytes the amount of bytes to read from the pointer
+        * @return Result of operation
+        */
         mraa_result_t draw(uint8_t *data, int bytes);
-
-        // virtual methods
-        mraa_result_t write (std::string msg);
-        mraa_result_t setCursor (int row, int column);
-        mraa_result_t clear ();
-        mraa_result_t home ();
+       /**
+        * Set gray level for LCD panel
+        *
+        * @param gray level from 0-255
+        * @return Result of operation
+        */
         mraa_result_t setGrayLevel (uint8_t level);
+       /**
+        * Write a string to LCD
+        *
+        * @param msg The std::string to write to display, note only ascii
+        *     chars are supported
+        * @return Result of operation
+        */
+        mraa_result_t write(std::string msg);
+       /**
+        * Set cursor to a coordinate
+        *
+        * @param row The row to set cursor to
+        * @param column The column to set cursor to
+        * @return Result of operation
+        */
+        mraa_result_t setCursor(int row, int column);
+       /**
+        * Clear display from characters
+        *
+        * @return Result of operatio
+        */
+        mraa_result_t clear();
+       /**
+        * Return to coordinate 0,0
+        *
+        * @return Result of operation
+        */
+        mraa_result_t home();
 
     private:
         mraa_result_t writeChar (mraa_i2c_context ctx, uint8_t value);