lcd: overhaul documentation for lcd module
[contrib/upm.git] / src / lcd / jhd1313m1.h
index 436e5c9..994483f 100644 (file)
 #pragma once
 
 #include <string>
-#include "iiclcd.h"
+#include "i2clcd.h"
 
 namespace upm {
 
-class Jhd1313m1 : public IICLcd {
+/**
+ * @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 ();
-        maa_result_t write (std::string msg);
-        maa_result_t setCursor (int row, int column);
-        maa_result_t clear ();
-        maa_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:
-        maa_result_t cmd (maa_i2c_context ctx, uint8_t value);
-        maa_result_t setReg (maa_i2c_context ctx, int deviceAdress, int addr, uint8_t data);
-
         int m_rgb_address;
-        maa_i2c_context m_i2c_lcd_rgb;
+        mraa_i2c_context m_i2c_lcd_rgb;
 };
 
 }