Characteristic Locus
Inheritance object ObservableBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> PollingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> > Bme68x > Bme680 > Bme688
Implements IObservable<IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>> ISamplingSensor<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> ISensor<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> ITemperatureSensor ISamplingSensor<Temperature> ISensor<Temperature> IHumiditySensor ISamplingSensor<RelativeHumidity> ISensor<RelativeHumidity> IBarometricPressureSensor ISamplingSensor<Pressure> ISensor<Pressure> ISpiPeripheral II2cPeripheral
Inherited Members PollingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.StartUpdating(TimeSpan?) PollingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.StopUpdating() SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.samplingLock SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.ReadSensor() SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.RaiseEventsAndNotify(IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>) SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.Read() SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.SamplingTokenSource SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.Conditions SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.IsSampling SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.UpdateInterval SamplingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.Updated ObservableBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.NotifyObservers(IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>) ObservableBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.Subscribe(IObserver<IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>>) ObservableBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.CreateObserver(Action<IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>>, Predicate<IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>>) ObservableBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>.observers object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString()
Namespace Meadow.Foundation.Sensors.Atmospheric
Assembly Bme68x.dll

Syntax

public abstract class Bme68x : PollingSensorBase<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>, IObservable<IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>>, ISamplingSensor<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>, ISensor<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>, ITemperatureSensor, ISamplingSensor<Temperature>, ISensor<Temperature>, IHumiditySensor, ISamplingSensor<RelativeHumidity>, ISensor<RelativeHumidity>, IBarometricPressureSensor, ISamplingSensor<Pressure>, ISensor<Pressure>, ISpiPeripheral, II2cPeripheral

Constructors

Bme68x(II2cBus, byte)

Creates a new instance of the BME68x class

Declaration
protected Bme68x(II2cBus i2cBus, byte address = 119)

Parameters

Type Name Description
II2cBus i2cBus

I2C Bus to use for communicating with the sensor

byte address

I2C address

Bme68x(ISpiBus, IDigitalOutputPort, Configuration?)

Creates a new instance of the BME68x class

Declaration
protected Bme68x(ISpiBus spiBus, IDigitalOutputPort chipSelectPort, Bme68x.Configuration? configuration = null)

Parameters

Type Name Description
ISpiBus spiBus

The SPI bus connected to the device

IDigitalOutputPort chipSelectPort

The chip select pin

Bme68x.Configuration configuration

The BMP68x configuration (optional)

Bme68x(ISpiBus, IPin)

Creates a new instance of the BME68x class

Declaration
protected Bme68x(ISpiBus spiBus, IPin chipSelectPin)

Parameters

Type Name Description
ISpiBus spiBus

The SPI bus connected to the device

IPin chipSelectPin

The chip select pin

Properties

DefaultI2cAddress

The default I2C address for the peripheral

Declaration
public byte DefaultI2cAddress { get; }

Property Value

Type Description
byte

DefaultSpiBusMode

The default SPI bus mode for the device

Declaration
public SpiClockConfiguration.Mode DefaultSpiBusMode { get; }

Property Value

Type Description
SpiClockConfiguration.Mode

DefaultSpiBusSpeed

The default SPI bus speed for the device

Declaration
public Frequency DefaultSpiBusSpeed { get; }

Property Value

Type Description
Frequency

FilterMode

Gets / sets the filtering mode to be used for measurements

Declaration
public Bme68x.FilteringMode FilterMode { get; set; }

Property Value

Type Description
Bme68x.FilteringMode

GasConversionIsEnabled

Enable / disable gas conversions

Declaration
public bool GasConversionIsEnabled { get; set; }

Property Value

Type Description
bool

GasResistance

The current gas resistance

Declaration
public Resistance? GasResistance { get; }

Property Value

Type Description
Resistance?

HeaterIsEnabled

Enable / disable the sensor heater

Declaration
public bool HeaterIsEnabled { get; set; }

Property Value

Type Description
bool

HeaterProfile

Gets / sets the heater profile to be used for measurements

Declaration
public Bme68x.HeaterProfileType HeaterProfile { get; set; }

Property Value

Type Description
Bme68x.HeaterProfileType

Humidity

The current humidity, in percent relative humidity

Declaration
public RelativeHumidity? Humidity { get; }

Property Value

Type Description
RelativeHumidity?

HumidityOversampleMode

The humidity oversampling mode

Declaration
public Bme68x.Oversample HumidityOversampleMode { get; set; }

Property Value

Type Description
Bme68x.Oversample

Pressure

The current pressure

Declaration
public Pressure? Pressure { get; }

Property Value

Type Description
Pressure?

PressureOversampleMode

The pressure oversampling mode

Declaration
public Bme68x.Oversample PressureOversampleMode { get; set; }

Property Value

Type Description
Bme68x.Oversample

SpiBusMode

The SPI bus mode for the device

Declaration
public SpiClockConfiguration.Mode SpiBusMode { get; set; }

Property Value

Type Description
SpiClockConfiguration.Mode

SpiBusSpeed

The SPI bus speed for the device

Declaration
public Frequency SpiBusSpeed { get; set; }

Property Value

Type Description
Frequency

Temperature

The current temperature

Declaration
public Temperature? Temperature { get; }

Property Value

Type Description
Temperature?

TemperatureOversampleMode

The temperature oversampling mode

Declaration
public Bme68x.Oversample TemperatureOversampleMode { get; set; }

Property Value

Type Description
Bme68x.Oversample

Methods

CompensateTemperature(int)

Compensates the temperature

Declaration
protected Temperature CompensateTemperature(int rawTemperature)

Parameters

Type Name Description
int rawTemperature

The temperature value read from the device

Returns

Type Description
Temperature

The temperature

ConfigureHeatingProfile(HeaterProfileType, Temperature, TimeSpan, Temperature)

Configures a heater profile, making it ready for use.

Declaration
public void ConfigureHeatingProfile(Bme68x.HeaterProfileType profile, Temperature targetTemperature, TimeSpan duration, Temperature ambientTemperature)

Parameters

Type Name Description
Bme68x.HeaterProfileType profile

The heater profile to configure

Temperature targetTemperature

The target temperature (0-400 C)

TimeSpan duration

The measurement duration (0-4032ms)

Temperature ambientTemperature

The ambient temperature

GetMeasurementDuration(HeaterProfileType)

Gets the required time in to perform a measurement. The duration of the gas measurement is not considered if GasConversionIsEnabled is set to false or the chosen HeaterProfile is not configured. The precision of this duration is within 1ms of the actual measurement time.

Declaration
public TimeSpan GetMeasurementDuration(Bme68x.HeaterProfileType profile)

Parameters

Type Name Description
Bme68x.HeaterProfileType profile

The used HeaterProfile.

Returns

Type Description
TimeSpan

GetPowerMode()

Get the current power mode

Declaration
public Bme68x.PowerMode GetPowerMode()

Returns

Type Description
Bme68x.PowerMode

The power mode

Initialize()

Initialize the sensor

Declaration
protected void Initialize()

RaiseEventsAndNotify(IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>)

Raise events for subcribers and notify of value changes

Declaration
protected override void RaiseEventsAndNotify(IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> changeResult)

Parameters

Type Name Description
IChangeResult<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> changeResult

The updated sensor data

Overrides

ReadSensor()

Reads data from the sensor

Declaration
protected override Task<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)> ReadSensor()

Returns

Type Description
Task<(Temperature? Temperature, RelativeHumidity? Humidity, Pressure? Pressure, Resistance? GasResistance)>

The latest sensor reading

Overrides

Meadow.Foundation.SamplingSensorBase<(Meadow.Units.Temperature? Temperature, Meadow.Units.RelativeHumidity? Humidity, Meadow.Units.Pressure? Pressure, Meadow.Units.Resistance? GasResistance)>.ReadSensor()

Reset()

Perform a complete power-on-reset

Declaration
public void Reset()

SetPowerMode(PowerMode)

Sets the power mode to the given mode

Declaration
public void SetPowerMode(Bme68x.PowerMode powerMode)

Parameters

Type Name Description
Bme68x.PowerMode powerMode

The Bme68x.PowerMode to set.

Events

GasResistanceUpdated

Raised when the gas resistance value changes

Declaration
public event EventHandler<IChangeResult<Resistance>> GasResistanceUpdated

Event Type

Type Description
EventHandler<IChangeResult<Resistance>>

HumidityUpdated

Raised when the humidity value changes

Declaration
public event EventHandler<IChangeResult<RelativeHumidity>> HumidityUpdated

Event Type

Type Description
EventHandler<IChangeResult<RelativeHumidity>>

PressureUpdated

Raised when the pressure value changes

Declaration
public event EventHandler<IChangeResult<Pressure>> PressureUpdated

Event Type

Type Description
EventHandler<IChangeResult<Pressure>>

TemperatureUpdated

Raised when the temperature value changes

Declaration
public event EventHandler<IChangeResult<Temperature>> TemperatureUpdated

Event Type

Type Description
EventHandler<IChangeResult<Temperature>>