pwm period is now 200us instead of the default 20ms veml6040 config is now AF_BIT | TRIG_BIT

Dependencies:   mbed MMA8451Q USBDevice WakeUp vt100

Fork of afero_node_suntory_2017_06_15 by Orefatoi

Revision:
5:9d5c7ee80f3b
Parent:
2:dfe671e31221
Child:
6:88cc04eb613a
--- a/util/DebugIO.hpp	Wed Jan 25 08:20:47 2017 +0000
+++ b/util/DebugIO.hpp	Tue Feb 28 02:09:06 2017 +0000
@@ -1,92 +1,65 @@
 #ifndef _MARUSOL_DEBUG_IO_HPP_
 #define _MARUSOL_DEBUG_IO_HPP_
-#if 0
-#elif defined (TARGET_TEENSY3_1)
-        #include "USBSerial.h"
+
+#if defined (TARGET_TEENSY3_1)
+    #include "USBSerial.h"
+#else
+    #include "mbed.h"
 #endif
 
-namespace MaruSolSensorManager
+#include "Preferences.hpp"
+
+//#define SERIAL_PRINT_DBG_ON
+#ifdef  SERIAL_PRINT_DBG_ON
+    #define SERIAL_PRINT_DBG(...)  (DebugIO::debugIO->printf(__VA_ARGS__))
+    #define SERIAL_PRINT_DBG_FUNCNAME() (DebugIO::debugIO->printf("%s,%d,%s\n",__FILE__,__LINE__,__PRETTY_FUNCTION__))
+#else
+    #define SERIAL_PRINT_DBG(...)
+    #define SERIAL_PRINT_DBG_FUNCNAME()
+#endif //SERIAL_PRINT_DBG_ON
+
+//#define SERIAL_PRINT_DBG_ASR_ON
+#ifdef  SERIAL_PRINT_DBG_ASR_ON
+    #define SERIAL_PRINT_DBG_ASR(...)  (DebugIO::debugIO->printf(__VA_ARGS__))
+#else
+    #define SERIAL_PRINT_DBG_ASR(...)
+#endif //SERIAL_PRINT_DBG_ASR_ON
+
+template<typename A> struct template_debug_io
 {
-    template<type A> class debug_io_singleton
-    {
-    protected:
-        static A *self;
-    public:
-        static A* getInstance()
-        {
-            return self!=NULL ? self : new A();
-        }
-        static void destroy()
-        {
-            if(self!=NULL)
-            {
-                delete self;
-                self = NULL;
-            }
-        }
-    };
-    
-    template<> A debug_io_singleton<A>::self = NULL;
-    
-    class DebugIO : public debug_io_singleton<DebugIO>
-    {
 #if defined (TARGET_KL25Z)
-        Serial *debugIO;
+    static Serial *debugIO;
 #elif defined (TARGET_TEENSY3_1)
-        USBSerial *debugIO;
-#endif
-    public:
-        friend class debug_io_singleton;
-        DebugIO::DebugIO()
-        {
-            if(PREFERENCES::DBG_ENABLED == true || PREFERENCES::DBG_ASR_ENABLED == true)
-            {
-#if defined (TARGET_KL25Z)
-                debugIO = new Serial();
-                debugIO->baud(PINS::UART::BAUD_RATE);
-                pPrintf = &DebugIO::printf;
-#elif defined (TARGET_TEENSY3_1)
-                debugIO = new USBSerial();
+    static USBSerial *debugIO;
 #endif
-            }
-            else
-            {
-                pPrintf = &DebugIO::printfNOP;
-            }
-        }
-        enum MSG_TYPE
-        {
-            DBG = 0,
-            DBG_ASR_1,
-            INFO
-        };
-        template <typename... Args> void (DebugIO::*pPrintf)(MSG_TYPE type, char *fmt, ...);
-        template <typename... Args> void printfNOP(MSG_TYPE type, char *fmt, Args... args)
-        {
-            
-        }
-        
-        template <class... Args> void f(Args... args);
-        
-        template <typename... Args> printf(MSG_TYPE type, char *fmt, Args... args)
-        {
-            
-            debugIO->printf(type,fmt,args...);
-            
-            if(type == MSG_TYPE::DBG || PREFERENCES::DBG_ENABLED == true)
-            {
-                
-            }
-        }
-        template <typename... Args> print_dbg(char* fmt, Args... args)
-        {
-            this->printf(DBG, fmt,args...);
-        }
-        template <typename... Args> print_dbg_asr(char* fmt, Args... args)
-        {
-            this->printf(DBG_ASR, fmt,args...);
-        }
-    };
 };
+
+struct DebugIO : public template_debug_io<DebugIO>
+{
+    static void init()
+    {
+#if defined(SERIAL_PRINT_DBG_ON) || defined(SERIAL_PRINT_DBG_ASR_ON)
+    #if defined (TARGET_KL25Z)
+        debugIO = new Serial(USBTX, USBRX);
+        debugIO->baud(MaruSolSensorManager::PINS::UART::BAUD_RATE);
+    #elif defined (TARGET_TEENSY3_1)
+        debugIO = new USBSerial();
+    #endif
 #endif
+    }
+    static void test()
+    {
+        SERIAL_PRINT_DBG("%s\n","dbg");
+        SERIAL_PRINT_DBG_FUNCNAME();
+        SERIAL_PRINT_DBG_ASR("%s\n","dbg asr");
+        SERIAL_PRINT_DBG("baud rate:%ld\n",MaruSolSensorManager::PINS::UART::BAUD_RATE);
+    }
+};
+
+#if defined (TARGET_KL25Z)
+    template<> Serial *template_debug_io<DebugIO>::debugIO = NULL;
+#elif defined (TARGET_TEENSY3_1)
+    template<> USBSerial *template_debug_io<DebugIO>::debugIO = NULL;
+#endif
+
 #endif //_MARUSOL_DEBUG_IO_HPP_
\ No newline at end of file