diff --git a/src/BME280I2C.cpp b/src/BME280I2C.cpp index 242127b..1720145 100644 --- a/src/BME280I2C.cpp +++ b/src/BME280I2C.cpp @@ -40,6 +40,24 @@ BME280I2C::BME280I2C ):BME280(settings), m_settings(settings) { + Wire.begin(); +} + + +/****************************************************************/ +bool BME280I2C::Initialize() +{ + bool success(false); + Wire.beginTransmission(m_settings.bme280Addr); + if(0 == Wire.endTransmission()) + success = true; + + if(success) + { + success = BME280::Initialize(); + } + + return success; } diff --git a/src/BME280I2C.h b/src/BME280I2C.h index 32cd3ac..196daf1 100644 --- a/src/BME280I2C.h +++ b/src/BME280I2C.h @@ -69,6 +69,15 @@ class BME280I2C: public BME280 BME280I2C( const Settings& settings = Settings()); +/*****************************************************************/ +/* CONSTRUCTOR INIT FUNCTIONS */ +/*****************************************************************/ + + /////////////////////////////////////////////////////////////// + /// Write configuration to BME280, return true if successful. + /// Must be called from any child classes. + virtual bool Initialize(); + /*****************************************************************/ /* ACCESSOR FUNCTIONS */ diff --git a/src/BME280I2C_BRZO.cpp b/src/BME280I2C_BRZO.cpp index 451cc59..3612f97 100644 --- a/src/BME280I2C_BRZO.cpp +++ b/src/BME280I2C_BRZO.cpp @@ -46,6 +46,24 @@ BME280I2C_BRZO::BME280I2C_BRZO { } + +/****************************************************************/ +bool BME280I2C_BRZO::Initialize() +{ + bool success(false); + brzo_i2c_start_transaction(m_settings.bme280Addr, m_settings.i2cClockRate); + if(0 == brzo_i2c_end_transaction()) + success = true; + + if(success) + { + success = BME280::Initialize(); + } + + return success; +} + + /****************************************************************/ void BME280I2C_BRZO::setSettings ( diff --git a/src/BME280I2C_BRZO.h b/src/BME280I2C_BRZO.h index ca16532..fce535a 100644 --- a/src/BME280I2C_BRZO.h +++ b/src/BME280I2C_BRZO.h @@ -65,6 +65,15 @@ class BME280I2C_BRZO : public BME280I2C BME280I2C_BRZO( const Settings& settings = Settings()); +/*****************************************************************/ +/* CONSTRUCTOR INIT FUNCTIONS */ +/*****************************************************************/ + + /////////////////////////////////////////////////////////////// + /// Write configuration to BME280, return true if successful. + /// Must be called from any child classes. + virtual bool Initialize(); + /*****************************************************************/ /* ACCESSOR FUNCTIONS */