![](/media/cache/group/orange_and_cat.png.50x50_q85.jpg)
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
Diff: preferences/Preferences.hpp
- 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> {