summaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2019-09-24 12:17:43 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2019-09-24 12:17:43 +0200
commit01fd94f7bd70fd93b5dbb3a0dd7b30abfe28f95c (patch)
tree154d80a3772aef38857e4dda3a4fa8c93ed5071f /src/app
parenta5c6adc46d696233bc67e25ac2146173dd6ee8b2 (diff)
convert BME680 driver to C++ class
Diffstat (limited to 'src/app')
-rw-r--r--src/app/i2cdetect/main.cc39
1 files changed, 18 insertions, 21 deletions
diff --git a/src/app/i2cdetect/main.cc b/src/app/i2cdetect/main.cc
index 2b30b47..acf5ef1 100644
--- a/src/app/i2cdetect/main.cc
+++ b/src/app/i2cdetect/main.cc
@@ -47,35 +47,32 @@ void loop(void)
}
#endif
#ifdef DRIVER_BME680
- struct bme680_dev gas_sensor;
-
- gas_sensor.dev_id = BME680_I2C_ADDR_SECONDARY;
- gas_sensor.intf = BME680_I2C_INTF;
- gas_sensor.read = bme680_i2c_read;
- gas_sensor.write = bme680_i2c_write;
- gas_sensor.delay_ms = bme680_delay_ms;
+ bme680.intf = BME680_I2C_INTF;
+ bme680.read = bme680_i2c_read;
+ bme680.write = bme680_i2c_write;
+ bme680.delay_ms = bme680_delay_ms;
/* amb_temp can be set to 25 prior to configuring the gas sensor
* or by performing a few temperature readings without operating the gas sensor.
*/
- gas_sensor.amb_temp = 25;
+ bme680.amb_temp = 25;
int8_t rslt = BME680_OK;
- rslt = bme680_init(&gas_sensor);
+ rslt = bme680.init();
kout << "BME680 init " << rslt << endl;
- gas_sensor.power_mode = BME680_FORCED_MODE;
- gas_sensor.tph_sett.os_hum = BME680_OS_1X;
- gas_sensor.tph_sett.os_pres = BME680_OS_16X;
- gas_sensor.tph_sett.os_temp = BME680_OS_2X;
-
- gas_sensor.gas_sett.run_gas = BME680_ENABLE_GAS_MEAS;
- gas_sensor.gas_sett.heatr_dur = 150;
- gas_sensor.gas_sett.heatr_temp = 300;
- bme680_set_sensor_settings(BME680_OST_SEL | BME680_OSP_SEL | BME680_OSH_SEL | BME680_GAS_SENSOR_SEL, &gas_sensor);
- bme680_set_sensor_mode(&gas_sensor);
- arch.delay_ms(500);
+ bme680.power_mode = BME680_FORCED_MODE;
+ bme680.tph_sett.os_hum = BME680_OS_1X;
+ bme680.tph_sett.os_pres = BME680_OS_16X;
+ bme680.tph_sett.os_temp = BME680_OS_2X;
+
+ bme680.gas_sett.run_gas = BME680_ENABLE_GAS_MEAS;
+ bme680.gas_sett.heatr_dur = 30;
+ bme680.gas_sett.heatr_temp = 300;
+ bme680.setSensorSettings(BME680_OST_SEL | BME680_OSP_SEL | BME680_OSH_SEL | BME680_GAS_SENSOR_SEL);
+ bme680.setSensorMode();
+ arch.delay_ms(200);
struct bme680_field_data data;
- bme680_get_sensor_data(&data, &gas_sensor);
+ bme680.getSensorData(&data);
kout << "BME680 temperature " << (float)data.temperature / 100 << " degC" << endl;
kout << "BME680 humidity " << (float)data.humidity / 1000 << " %" << endl;
kout << "BME680 pressure " << (float)data.pressure / 100 << " hPa" << endl;