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:
2:dfe671e31221
Parent:
1:b2a9a6f2c30e
Child:
3:6dec44cbb664
--- a/preferences/Preferences.hpp	Thu Jan 19 09:17:16 2017 +0000
+++ b/preferences/Preferences.hpp	Tue Jan 24 10:00:28 2017 +0000
@@ -39,6 +39,7 @@
 {
     template<typename A> struct COMMONPARAMS;
     struct MAX44008;
+    struct VEML6040;
     struct MMA8451Q;
     template<typename A> struct SEMITEC_502AT_11_CALIB;
     struct SEMITEC_502AT_11;
@@ -48,6 +49,14 @@
     struct GP_M010_KEYENCE; //"GP-M010 KEYENCE" liquid
 };
 
+template<typename A> struct SENSORS::COMMONPARAMS
+{
+    static char* TYPE;
+    static char* PN;
+    static char* UNIT;
+    static char* JSON_FMT;
+};
+
 template<typename A> struct SENSORS::KEYENCE_PRESSURE_COMMON_PARAMS
 {
     static float V_REF;
@@ -63,15 +72,8 @@
 template<typename A> float SENSORS::KEYENCE_PRESSURE_COMMON_PARAMS<A>::LOWEST_CUR = 0.004;
 template<typename A> float SENSORS::KEYENCE_PRESSURE_COMMON_PARAMS<A>::PRESSURE_COEF = 62500;
 
-template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, false, true, false, false };
+template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, true, true, true, true };
 
-template<typename A> struct SENSORS::COMMONPARAMS
-{
-    static char* TYPE;
-    static char* PN;
-    static char* UNIT;
-    static char* JSON_FMT;
-};
 
 struct SENSORS::MAX44008 : public SENSORS::COMMONPARAMS<SENSORS::MAX44008>
 {
@@ -79,7 +81,8 @@
     {
         ADDRESS = 0x41,
         AMB_CONFIG = 0x00, // most sensitive gain
-        RAW_MODE = 0x20 // MODE_CLEAR_RGB_IR
+        RAW_MODE = 0x20, // MODE_CLEAR_RGB_IR
+        PWM_LED_B = 0x96
     };
     struct TRIM
     {
@@ -99,8 +102,37 @@
     "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%d\",\"UNIT\":\"%s\"}]}"
 );
 
-struct SENSORS::MMA8451Q :
-    public SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>
+
+struct SENSORS::VEML6040 : public SENSORS::COMMONPARAMS<SENSORS::VEML6040>
+{
+    enum
+    {
+        ADDRESS = 0x10,
+        AMB_CONFIG = 0x00, // most sensitive gain
+        RAW_MODE = 0x20, // MODE_CLEAR_RGB_IR
+        PWM_LED_B = 0xFA
+    };
+    struct TRIM
+    {
+        enum
+        {
+            R = 0x50,
+            G = 0x01,
+            B = 0x20
+        };
+    };
+};
+
+template<> char* SENSORS::COMMONPARAMS<SENSORS::VEML6040>::TYPE = "COLOR";
+template<> char* SENSORS::COMMONPARAMS<SENSORS::VEML6040>::PN = "VEML6040";
+template<> char* SENSORS::COMMONPARAMS<SENSORS::VEML6040>::UNIT = "mW/cm2";
+template<> char* SENSORS::COMMONPARAMS<SENSORS::VEML6040>::JSON_FMT(
+    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%d\",\"UNIT\":\"%s\"}]}"
+);
+
+
+
+struct SENSORS::MMA8451Q : public SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>
 {
     enum
     {
@@ -314,6 +346,10 @@
 
 struct PINS::UART
 {
+    enum
+    {
+        BAUD_RATE = 115200
+    };
 #if defined (TARGET_TEENSY3_1)
     enum
     {
@@ -340,7 +376,7 @@
 
 template<typename A> struct PREFERENCES_BASE
 {
-    static uint32_t SENSING_INTERVAL[SENSORS::SIZE];
+    static int32_t SENSING_INTERVAL[SENSORS::SIZE];
     static time_t EPOCH_UTC;
     typedef union
     {
@@ -348,6 +384,13 @@
         uint8_t  ui8[sizeof(uint32_t)];
     } _crc32;
     static _crc32 CRC32;
+    static bool FLOW_CONTROL;
+    static bool DBG_ENABLED;
+    static bool DBG_ASR_ENABLED;
+    struct AFERO_ATTRIBUTE
+    {
+        uint32_t ATTR_CRC32;
+    };
 };
 
 struct PREFERENCES : PREFERENCES_BASE<PREFERENCES>
@@ -381,9 +424,14 @@
     };
 };
 
-template<> uint32_t PREFERENCES_BASE<PREFERENCES>::SENSING_INTERVAL[SENSORS::SIZE] = { 0 };
+template<> int32_t PREFERENCES_BASE<PREFERENCES>::SENSING_INTERVAL[SENSORS::SIZE] = { 30, 30, 30, 30, 30 };
 template<> time_t PREFERENCES_BASE<PREFERENCES>::EPOCH_UTC = 0;
-template<> PREFERENCES_BASE<PREFERENCES>::_crc32 PREFERENCES_BASE<PREFERENCES>::CRC32;
+template<> PREFERENCES_BASE<PREFERENCES>::_crc32 PREFERENCES_BASE<PREFERENCES>::CRC32 = { 0 };
+
+template<> bool PREFERENCES_BASE<PREFERENCES>::FLOW_CONTROL = false;
+
+template<> bool PREFERENCES_BASE<PREFERENCES>::DBG_ENABLED = true;
+template<> bool PREFERENCES_BASE<PREFERENCES>::DBG_ASR_ENABLED = true;
 
 struct PREFERENCES::NOTIFICATION : public PREFERENCES::NOTIFICATION_BASE<PREFERENCES::NOTIFICATION>
 {