3#include "../../proto/sensor.h"
6#include <bme280_common.h>
13static uint32_t period = 0;
20static struct bme280_dev dev;
27static struct bme280_settings settings;
36 rslt = bme280_interface_selection(&dev, BME280_I2C_INTF);
37 if (rslt != BME280_OK) {
41 rslt = bme280_init(&dev);
42 if (rslt != BME280_OK) {
48 rslt = bme280_get_sensor_settings(&settings, &dev);
49 if (rslt != BME280_OK) {
55 settings.filter = BME280_FILTER_COEFF_OFF;
58 settings.osr_h = BME280_OVERSAMPLING_1X;
59 settings.osr_p = BME280_OVERSAMPLING_1X;
60 settings.osr_t = BME280_OVERSAMPLING_1X;
63 settings.standby_time = BME280_STANDBY_TIME_0_5_MS;
65 rslt = bme280_set_sensor_settings(BME280_SEL_ALL_SETTINGS, &settings, &dev);
66 if (rslt != BME280_OK) {
71 rslt = bme280_set_sensor_mode(BME280_POWERMODE_FORCED, &dev);
72 if (rslt != BME280_OK) {
77 rslt = bme280_cal_meas_delay(&period, &settings);
78 if (rslt != BME280_OK) {
86 int8_t rslt = BME280_E_NULL_PTR;
90 rslt = bme280_set_sensor_mode(BME280_POWERMODE_FORCED, &dev);
91 if (rslt != BME280_OK) {
96 rslt = bme280_get_regs(BME280_REG_STATUS, &status_reg, 1, &dev);
97 if (rslt != BME280_OK) {
101 if (status_reg & BME280_STATUS_MEAS_DONE) {
103 dev.delay_us(period, dev.intf_ptr);
106 rslt = bme280_get_sensor_data(BME280_ALL,
data, &dev);
107 if (rslt != BME280_OK) {
167 meta, sens_data.pressure, SensorType_BME280_PRESSURE,
data, &
data_len);
190 meta, sens_data.humidity, SensorType_BME280_HUMIDITY,
data, &
data_len);
BME280Status BME280Init(void)
BME280Status BME280MeasureAll(BME280Data *data)
Measures temperature, pressure, and humidity.
uint8_t BME280MeasureHumidity(uint8_t *data, Metadata meta, uint32_t idx)
uint8_t BME280MeasureTemperature(uint8_t *data, Metadata meta, uint32_t idx)
BME280 sensor library function.
uint8_t BME280MeasurePressure(uint8_t *data, Metadata meta, uint32_t idx)
Sensor interface for the BME280 sensor.
BME280Status
BME280 error codes.
struct bme280_data BME280Data
Struct to store data from sensor.
SensorStatus EncodeDoubleMeasurement(Metadata meta, double value, SensorType type, uint8_t *buffer, size_t *size)
Encodes a double sensor measurement into a buffer.
enum _SensorStatus SensorStatus