class pah8011 for mbed

Revision:
5:37451de228e4
Parent:
4:cbc49829af39
Child:
6:d196b612b14a
diff -r cbc49829af39 -r 37451de228e4 pixart_pah8011.cpp
--- a/pixart_pah8011.cpp	Fri Oct 27 06:05:38 2017 +0000
+++ b/pixart_pah8011.cpp	Fri Oct 27 08:21:32 2017 +0000
@@ -1,27 +1,23 @@
 #include "pixart_pah8011.h"
 
+
 extern "C" {
     
+    
     #include "pah_driver.h"
-
-    typedef void (*debug_printf_handle)(const char *fmt, ...);
-
-    static Serial   *g_serial = NULL;
+    #include "pah_platform_functions.h"
+    
+    
     static I2C      *g_i2c = NULL;
     static uint8_t  g_slave_id = 0x15;
-
-    void debug_printf(const char *fmt, ...)
+    
+    void disable_debug_printf(const char *fmt, ...)
     {
-        if (!g_serial)
-            return;
-            
-        char msg[128];
-        va_list marker;
-        va_start(marker, fmt);
-        vsprintf(msg, fmt, marker);
-        va_end(marker);
-        g_serial->printf(msg);
+        // do nothing
     }
+
+    DEBUG_PRINT_HANDLE debug_printf = disable_debug_printf;    
+    
     
     bool i2c_write_reg(uint8_t addr, uint8_t data)
     {
@@ -71,10 +67,17 @@
         pah_deinit();
     }
     
-    bool pah8011::init(I2C &i2c, Serial *serial, uint8_t slave_id)
+    void pah8011::enable_debug_print(DEBUG_PRINT_HANDLE handler)
+    {
+        if (handler)
+            debug_printf = handler;
+        else
+            debug_printf = disable_debug_printf;
+    }
+    
+    bool pah8011::init(I2C &i2c, uint8_t slave_id)
     {
         g_i2c = &i2c;
-        g_serial = serial;
         
         pah_flags_s flags;
         memset(&flags, 0, sizeof(flags));