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:
4:b38e09f24711
Child:
6:88cc04eb613a
--- a/preferences/Preferences.hpp	Wed Jan 25 08:20:47 2017 +0000
+++ b/preferences/Preferences.hpp	Tue Feb 28 02:09:06 2017 +0000
@@ -33,6 +33,7 @@
         SIZE,
     };
     static bool ACTIVE[SIZE];
+    static bool DELTA[SIZE];
 };
 
 struct SENSORS : public SENSORS_BASE<SENSORS>
@@ -42,11 +43,14 @@
     struct VEML6040;
     struct MMA8451Q;
     template<typename A> struct SEMITEC_502AT_11_CALIB;
+    template<typename A> struct DEV_TEMP;
+    struct DEV_TEMP_INST;
     struct SEMITEC_502AT_11;
     struct SR_3702_150N_14Z;
     template<typename A> struct KEYENCE_PRESSURE_COMMON_PARAMS;
     struct AP_53A_KEYENCE; //AP-53A KEYENCE gas
     struct GP_M010_KEYENCE; //"GP-M010 KEYENCE" liquid
+    struct NXP_LM75B;
 };
 
 template<typename A> struct SENSORS::COMMONPARAMS
@@ -72,9 +76,6 @@
 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, true, false, true, true };
-template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, false, true, false, false };
-
 struct SENSORS::MAX44008 : public SENSORS::COMMONPARAMS<SENSORS::MAX44008>
 {
     enum
@@ -110,7 +111,10 @@
         ADDRESS = 0x10,
         AMB_CONFIG = 0x00, // most sensitive gain
         RAW_MODE = 0x20, // MODE_CLEAR_RGB_IR
-        PWM_LED_B = 0xFA
+        PWM_LED_B = 0xFA,
+        PWM_LED_R_UI16 = 0x7C02,
+        PWM_LED_G_UI16 = 0x8F1D,
+        PWM_LED_B_UI16 = 0x91BB,
     };
     struct TRIM
     {
@@ -123,11 +127,8 @@
     };
 };
 
-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\"}]}"
+    "{\"DEVICE\":\"COLOR\",\"PN\":\"VEML6040\",\"VAL_R\":\"%d\",\"VAL_G\":\"%d\",\"VAL_B\":\"%d\",\"UNIT\":\"mW/cm2\"}"
 );
 
 
@@ -143,11 +144,10 @@
 #endif
     };
 };
-template<> char* SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>::TYPE = "ACCELEROMETER";
-template<> char* SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>::PN = "MMA8451Q";
-template<> char* SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>::UNIT = "g";
-template<> char* SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>::JSON_FMT = 
-    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":[\"%.1f\",\"%.1f\",\"%.1f\"],\"UNIT\":\"%s\"}]}";
+
+template<> char* SENSORS::COMMONPARAMS<SENSORS::MMA8451Q>::JSON_FMT(
+    "{\"DEVICE\":\"ACCEL\",\"PN\":\"MMA8451Q\",\"VAL_X\":\"%.3f\",\"VAL_Y\":\"%.3f\",\"VAL_Z\":\"%.3f\",\"UNIT\":\"g\"}"
+);
 
 template<typename A> struct SENSORS::SEMITEC_502AT_11_CALIB
 {
@@ -156,23 +156,84 @@
     static float R0;
     static float R1;
 };
-
-struct SENSORS::SEMITEC_502AT_11 :
-    public SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>,
-    public SENSORS::SEMITEC_502AT_11_CALIB<SENSORS::SEMITEC_502AT_11>{};
 template<> float SENSORS::SEMITEC_502AT_11_CALIB<SENSORS::SEMITEC_502AT_11>::B = 3324;
 template<> float SENSORS::SEMITEC_502AT_11_CALIB<SENSORS::SEMITEC_502AT_11>::T0 = 298.15;
 template<> float SENSORS::SEMITEC_502AT_11_CALIB<SENSORS::SEMITEC_502AT_11>::R0 = 5.0;  //kOhm
 template<> float SENSORS::SEMITEC_502AT_11_CALIB<SENSORS::SEMITEC_502AT_11>::R1 = 4.95; //kOhm
 
-template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::TYPE = "TEMP";
-template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::PN = "SEMITEC 502AT-11";
-template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::UNIT = "degC";
-template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::JSON_FMT(
-    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%0.1f\",\"UNIT\":\"%s\"}]}"
+template<typename A> struct SENSORS::DEV_TEMP
+{
+    enum
+    {
+        TUBE = 0,
+        BEFORE_COOLING,
+        AFTER_COOLING,
+        SIZE
+    };
+    static char* JSON_FMT;
+    static char* SUFFIXES[SIZE];
+    static char* PART_NUMBERS[SIZE];
+    static char* POSITION[SIZE];
+    static char* STATUS[SIZE];
+};
+
+struct SENSORS::DEV_TEMP_INST :
+    public SENSORS::DEV_TEMP<SENSORS::DEV_TEMP_INST>
+{
+};
+
+template<> char* SENSORS::DEV_TEMP<SENSORS::DEV_TEMP_INST>::SUFFIXES[SIZE] = {
+    "01", "02", "03"
+};
+
+template<> char* SENSORS::DEV_TEMP<SENSORS::DEV_TEMP_INST>::POSITION[SIZE] = {
+    "NOT COOLED", "NOT COOLED", "BEING COOLED"
+};
+
+template<> char* SENSORS::DEV_TEMP<SENSORS::DEV_TEMP_INST>::STATUS[SIZE] = {
+    "TUBE", "IN", "IN"
+};
+
+template<> char* SENSORS::DEV_TEMP<SENSORS::DEV_TEMP_INST>::PART_NUMBERS[SIZE] = {
+    "LM75B", "SEMITEC 502AT-11", "SEMITEC 502AT-11"
+};
+
+template<> char* SENSORS::DEV_TEMP<SENSORS::DEV_TEMP_INST>::JSON_FMT(
+//  "{\"DEVICE\":\"TEMP%s\",\"PN\":\"%s\",\"VAL\":\"%0.1f\",\"UNIT\":\"degC\"}"
+    "{\"DEVICE\":\"TEMP%s\",\"PN\":\"%s\",\"POS\":\"%s\",\"STAT\":\"%s\",\"VAL\":\"%0.1f\",\"UNIT\":\"degC\"}"
 );
 
+struct SENSORS::SEMITEC_502AT_11 :
+    public SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>,
+    public SENSORS::SEMITEC_502AT_11_CALIB<SENSORS::SEMITEC_502AT_11>
+{
+};
+
+//template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::TYPE = "TEMP";
+template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::PN = "SEMITEC 502AT-11";
+//template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::UNIT = "degC";
+
+//template<> char* SENSORS::COMMONPARAMS<SENSORS::SEMITEC_502AT_11>::JSON_FMT(
+//    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%0.1f\",\"UNIT\":\"%s\",\"POS\":\"%s\"}]}"
+//);
+
+struct SENSORS::NXP_LM75B :
+    public SENSORS::COMMONPARAMS<SENSORS::NXP_LM75B>
+{
+    enum
+    {
+        ADDRESS   = 0x48,
+        REG_Conf  = 0x01,
+        REG_Temp  = 0x00,
+        REG_Tos   = 0x03,
+        REG_Thyst = 0x02
+    };
+};
+
+template<> char* SENSORS::COMMONPARAMS<SENSORS::NXP_LM75B>::PN = "LM75B";
+
 struct SENSORS::SR_3702_150N_14Z : public SENSORS::COMMONPARAMS<SENSORS::SR_3702_150N_14Z>{};
+
 template<> char* SENSORS::COMMONPARAMS<SENSORS::SR_3702_150N_14Z>::TYPE = "CURRENT_TRANS";;
 template<> char* SENSORS::COMMONPARAMS<SENSORS::SR_3702_150N_14Z>::PN = "SR-3702-150N/14Z";
 template<> char* SENSORS::COMMONPARAMS<SENSORS::SR_3702_150N_14Z>::UNIT = "V";
@@ -186,7 +247,8 @@
 template<> char *SENSORS::COMMONPARAMS<SENSORS::AP_53A_KEYENCE>::PN = "AP-53A KEYENCE";
 template<> char *SENSORS::COMMONPARAMS<SENSORS::AP_53A_KEYENCE>::UNIT = "KPa";
 template<> char* SENSORS::COMMONPARAMS<SENSORS::AP_53A_KEYENCE>::JSON_FMT(
-    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%0.1f\",\"UNIT\":\"%s\"}]}"
+    //"{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%0.1f\",\"UNIT\":\"%s\"}]}"
+    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"VAL\":\"%0.1f\"}"
 );
 
 struct SENSORS::GP_M010_KEYENCE :
@@ -196,7 +258,8 @@
 template<> char *SENSORS::COMMONPARAMS<SENSORS::GP_M010_KEYENCE>::PN = "AGP-M010 KEYENCE";
 template<> char *SENSORS::COMMONPARAMS<SENSORS::GP_M010_KEYENCE>::UNIT = "KPa";
 template<> char* SENSORS::COMMONPARAMS<SENSORS::GP_M010_KEYENCE>::JSON_FMT(
-    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%0.1f\",\"UNIT\":\"%s\"}]}"
+    //"{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"DATA\":[{\"TIME\":\"%ld\",\"VAL\":\"%0.1f\",\"UNIT\":\"%s\"}]}"
+    "{\"DEVICE\":\"%s\",\"PN\":\"%s\",\"VAL\":\"%0.1f\"}"
 );
 
 struct PINS
@@ -257,7 +320,10 @@
 {
     enum
     {
-        AIN = PTB1
+        BEFORE_COOLING = PTC2,
+        AFTER_COOLING = PTB1,
+        SDA = PTE0,
+        SCL = PTE1
     };
 };
 
@@ -283,7 +349,7 @@
     enum
     {
 #if defined (TARGET_KL25Z)
-        RESET =  PTC9 //PSOC //PTA20
+        RESET = PTC9 //PSOC //PTA20
 #elif defined (TARGET_TEENSY3_1)
         RESET = PTD6
 #endif
@@ -385,8 +451,8 @@
     } _crc32;
     static _crc32 CRC32;
     static bool FLOW_CONTROL;
-    static bool DBG_ENABLED;
-    static bool DBG_ASR_ENABLED;
+    static bool DBG_PRINT_ENABLED;
+    static bool DBG_PRINT_ASR_ENABLED;
     struct AFERO_ATTRIBUTE
     {
         uint32_t ATTR_CRC32;
@@ -430,8 +496,8 @@
 
 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;
+template<> bool PREFERENCES_BASE<PREFERENCES>::DBG_PRINT_ENABLED = true;
+template<> bool PREFERENCES_BASE<PREFERENCES>::DBG_PRINT_ASR_ENABLED = true;
 
 struct PREFERENCES::NOTIFICATION : public PREFERENCES::NOTIFICATION_BASE<PREFERENCES::NOTIFICATION>
 {
@@ -469,6 +535,17 @@
     } pressure;
 } PACKET;
 
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, false, false, false, true }; // temperature
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, true, false, false, false }; // color
+template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { true, true, false, false, true }; // color + temp + accelerometer
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, true, false, true, true }; // sensor box
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, false, true, false, false }; // pressure
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { true, false, false, false, false }; // accelerometer
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, true, false, false, false }; // color only ... sensor box
+//template<> bool SENSORS_BASE<SENSORS>::ACTIVE[SENSORS::SIZE] = { false, false, false, true, false }; // CT only ... sensor box
+
+template<> bool SENSORS_BASE<SENSORS>::DELTA[SENSORS::SIZE] = { true, false, false, false, false }; // accelerometer
+
 };
 
 #endif //_PREFERENCES_HPP_
\ No newline at end of file