class pah8011 for mbed

Revision:
0:242cf8f28bf2
Child:
1:4e43ab5ba1e2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pixart_pah8011.h	Thu Oct 26 02:49:44 2017 +0000
@@ -0,0 +1,53 @@
+#ifndef __pixart_pah8011_h__
+#define __pixart_pah8011_h__
+
+
+#include <mbed.h>
+
+#include <cstdint>
+
+
+namespace pixart {
+
+
+    class pah8011 {
+    public:
+        struct task_result {
+            // ppg
+            uint8_t     *data;
+            uint32_t    num_per_ch;
+            uint32_t    ch_num;
+            
+            // touch
+            bool        is_touched;
+        };
+    
+    public:
+        pah8011();
+        ~pah8011();
+        
+        bool    init(I2C &i2c, Serial *serial = NULL, uint8_t slave_id = 0x15);
+        
+        // operations
+        bool    enable_ppg();
+        bool    disable_ppg();
+        bool    enable_touch();
+        bool    disable_touch();
+        
+        // tasking
+        bool    task();
+        bool    get_result(task_result &result);
+    
+    private:
+        bool    select_mode();
+
+        bool    m_is_ppg_enabled;
+        bool    m_is_touch_enabled;
+
+    };
+    
+    
+}
+
+
+#endif // header guard