diff --git a/src/helpers/SensorManager.h b/src/helpers/SensorManager.h index 8d3d4aef..839e2736 100644 --- a/src/helpers/SensorManager.h +++ b/src/helpers/SensorManager.h @@ -8,12 +8,6 @@ #define TELEM_CHANNEL_SELF 1 // LPP data channel for 'self' device -#define TELEM_INA3221_ADDRESS 0x42 // INA3221 3 channel current, voltage, power sensor I2C address -#define TELEM_INA3221_SHUNT_VALUE 0.100 // most variants will have a 0.1 ohm shunts -#define TELEM_INA3221_SETTING_CH1 "INA3221 Channel 1" -#define TELEM_INA3221_SETTING_CH2 "INA3221 Channel 2" -#define TELEM_INA3221_SETTING_CH3 "INA3221 Channel 3" - class SensorManager { public: double node_lat, node_lon; // modify these, if you want to affect Advert location diff --git a/variants/promicro/target.cpp b/variants/promicro/target.cpp index 304bb54a..1a42f120 100644 --- a/variants/promicro/target.cpp +++ b/variants/promicro/target.cpp @@ -75,34 +75,26 @@ mesh::LocalIdentity radio_new_identity() { return mesh::LocalIdentity(&rng); // create new random identity } -INA3221 INA_3221(TELEM_INA3221_ADDRESS, &Wire); +static INA3221 INA_3221(TELEM_INA3221_ADDRESS, &Wire); bool PromicroSensorManager::begin() { if (INA_3221.begin() ) { - Serial.print("Found INA3221 at address "); - Serial.print(INA_3221.getAddress()); - Serial.println(); - Serial.print(INA_3221.getDieID(), HEX); - Serial.print(INA_3221.getManufacturerID(), HEX); - Serial.print(INA_3221.getConfiguration(), HEX); - Serial.println(); + MESH_DEBUG_PRINTLN("Found INA3221 at address: %02X", INA_3221.getAddress()); + MESH_DEBUG_PRINTLN("%04X %04X %04X", INA_3221.getDieID(), INA_3221.getManufacturerID(), INA_3221.getConfiguration()); for(int i = 0; i < 3; i++) { INA_3221.setShuntR(i, TELEM_INA3221_SHUNT_VALUE); } INA3221initialized = true; - } - else { + } else { INA3221initialized = false; - Serial.print("INA3221 was not found at I2C address "); - Serial.print(TELEM_INA3221_ADDRESS, HEX); - Serial.println(); + MESH_DEBUG_PRINTLN("INA3221 was not found at I2C address %02X", TELEM_INA3221_ADDRESS); } return true; } bool PromicroSensorManager::querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { - if (requester_permissions && TELEM_PERM_ENVIRONMENT) { + if (requester_permissions & TELEM_PERM_ENVIRONMENT) { if (INA3221initialized) { for(int i = 0; i < 3; i++) { // add only enabled INA3221 channels to telemetry diff --git a/variants/promicro/target.h b/variants/promicro/target.h index 225afd4d..92fbd07e 100644 --- a/variants/promicro/target.h +++ b/variants/promicro/target.h @@ -23,13 +23,18 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr); void radio_set_tx_power(uint8_t dbm); mesh::LocalIdentity radio_new_identity(); +#define TELEM_INA3221_ADDRESS 0x42 // INA3221 3 channel current, voltage, power sensor I2C address +#define TELEM_INA3221_SHUNT_VALUE 0.100 // most variants will have a 0.1 ohm shunts +#define TELEM_INA3221_SETTING_CH1 "INA3221-1" +#define TELEM_INA3221_SETTING_CH2 "INA3221-2" +#define TELEM_INA3221_SETTING_CH3 "INA3221-3" class PromicroSensorManager: public SensorManager { bool INA3221initialized = false; // INA3221 channels in telemetry int INA3221_CHANNELS[NUM_SENSOR_SETTINGS] = {TELEM_CHANNEL_SELF + 1, TELEM_CHANNEL_SELF + 2, TELEM_CHANNEL_SELF+ 3}; - char * INA3221_CHANNEL_NAMES[NUM_SENSOR_SETTINGS] = { TELEM_INA3221_SETTING_CH1, TELEM_INA3221_SETTING_CH2, TELEM_INA3221_SETTING_CH3}; + const char * INA3221_CHANNEL_NAMES[NUM_SENSOR_SETTINGS] = { TELEM_INA3221_SETTING_CH1, TELEM_INA3221_SETTING_CH2, TELEM_INA3221_SETTING_CH3}; bool INA3221_CHANNEL_ENABLED[NUM_SENSOR_SETTINGS] = {true, true, true}; public: