From 989513093b63b1c3af0a4d4d49339b2f35d0e907 Mon Sep 17 00:00:00 2001 From: Ruben Henriksen Date: Wed, 19 Oct 2022 10:40:18 +0200 Subject: [PATCH 1/2] Update wait function to use sleep_for due to wait_ms being deprecated --- mbed_bme680.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mbed_bme680.cpp b/mbed_bme680.cpp index 9fe8dc0..07a49f7 100644 --- a/mbed_bme680.cpp +++ b/mbed_bme680.cpp @@ -333,7 +333,7 @@ int8_t BME680::i2c_write(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, ui void BME680::delay_msec(uint32_t ms) { log(" * wait %d ms ... \r\n", ms); - wait_ms(ms); + ThisThread::sleep_for(std::chrono::milliseconds(ms)); } void BME680::log(const char *format, ...) { @@ -343,4 +343,4 @@ void BME680::log(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); #endif -} \ No newline at end of file +} From 481af735835a5b965f23a8f8b7f677b0ea8e4c65 Mon Sep 17 00:00:00 2001 From: Ruben Henriksen Date: Wed, 19 Oct 2022 16:11:35 +0200 Subject: [PATCH 2/2] Move I2C interface into the object --- mbed_bme680.cpp | 7 ++++--- mbed_bme680.h | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mbed_bme680.cpp b/mbed_bme680.cpp index 07a49f7..5c6a8f2 100644 --- a/mbed_bme680.cpp +++ b/mbed_bme680.cpp @@ -1,10 +1,11 @@ #include "mbed_bme680.h" -BME680::BME680() { - BME680(BME680_DEFAULT_ADDRESS); +BME680::BME680(PinName sda, PinName scl) { + BME680(BME680_DEFAULT_ADDRESS, sda, scl); } -BME680::BME680(uint8_t adr) { +BME680::BME680(uint8_t adr, PinName sda, PinName scl) { + i2c(sda, scl); _filterEnabled = _tempEnabled = _humEnabled = _presEnabled = _gasEnabled = false; _adr = adr; } diff --git a/mbed_bme680.h b/mbed_bme680.h index ac14147..7821552 100644 --- a/mbed_bme680.h +++ b/mbed_bme680.h @@ -7,7 +7,6 @@ #define BME680_DEFAULT_ADDRESS (0x77 << 1) // The default I2C address (shifted for MBed 8 bit address) //#define BME680_DEBUG_MODE // Use this for enhance debug logs for I2C and more. -extern I2C i2c; /** * BME680 Class for I2C usage. @@ -15,9 +14,9 @@ extern I2C i2c; */ class BME680 { public: - BME680(); + BME680(PinName sda, PinName scl); - BME680(uint8_t adr); + BME680(uint8_t adr, PinName sda, PinName scl); bool begin(); @@ -49,6 +48,7 @@ class BME680 { float getGasResistance(); private: + I2C i2c; bool _filterEnabled, _tempEnabled, _humEnabled, _presEnabled, _gasEnabled; int32_t _sensorID; struct bme680_dev gas_sensor; @@ -65,4 +65,4 @@ class BME680 { static void delay_msec(uint32_t ms); }; -#endif \ No newline at end of file +#endif