Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07
Characteristic Locus
Inheritance object ObservableBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)> SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)> PollingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)> ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)> > AdafruitMPRLS
Implements IObservable<IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>> ISamplingSensor<(Pressure? Pressure, Pressure? RawPsiMeasurement)> ISensor<(Pressure? Pressure, Pressure? RawPsiMeasurement)> IDisposable II2cPeripheral IBarometricPressureSensor ISamplingSensor<Pressure> ISensor<Pressure>
Inherited Members ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Init(int, int) ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Dispose(bool) ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Dispose() ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.BusComms ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.ReadBuffer ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.WriteBuffer PollingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.StartUpdating(TimeSpan?) PollingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.StopUpdating() SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.samplingLock SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.ReadSensor() SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.RaiseEventsAndNotify(IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>) SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Read() SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.SamplingTokenSource SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Conditions SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.IsSampling SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.UpdateInterval SamplingSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Updated ObservableBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.NotifyObservers(IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>) ObservableBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.Subscribe(IObserver<IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>>) ObservableBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.CreateObserver(Action<IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>>, Predicate<IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>>) ObservableBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>.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 AdafruitMPRLS.dll

Syntax

public class AdafruitMPRLS : ByteCommsSensorBase<(Pressure? Pressure, Pressure? RawPsiMeasurement)>, IObservable<IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>>, ISamplingSensor<(Pressure? Pressure, Pressure? RawPsiMeasurement)>, ISensor<(Pressure? Pressure, Pressure? RawPsiMeasurement)>, IDisposable, II2cPeripheral, IBarometricPressureSensor, ISamplingSensor<Pressure>, ISensor<Pressure>

Constructors

AdafruitMPRLS(II2cBus)

Represents an Adafruit MPRLS Ported Pressure Sensor

Declaration
public AdafruitMPRLS(II2cBus i2cbus)

Parameters

Type Name Description
II2cBus i2cbus

I2Cbus connected to the sensor

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

Properties

DefaultI2cAddress

The default I2C address for the peripheral

Declaration
public byte DefaultI2cAddress { get; }

Property Value

Type Description
byte

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

HasMemoryIntegrityFailed

Set by the sensor, to tell us whether or not there's an issue with its own memory.

Declaration
public bool HasMemoryIntegrityFailed { get; set; }

Property Value

Type Description
bool

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

InternalMathSaturated

Indicates the sensor has reached its pressure limit.

Declaration
public bool InternalMathSaturated { get; set; }

Property Value

Type Description
bool

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

IsDeviceBusy

Set by the sensor, to tell us it's busy.

Declaration
public bool IsDeviceBusy { get; set; }

Property Value

Type Description
bool

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

IsDevicePowered

Set by the sensor, to tell us it has power.

Declaration
public bool IsDevicePowered { get; set; }

Property Value

Type Description
bool

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

Pressure

Returns the current pressure reading

Declaration
public Pressure? Pressure { get; }

Property Value

Type Description
Pressure?

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

RawPsiMeasurement

Returns the current raw pressure value in pounds per square inch (PSI)

Declaration
public Pressure? RawPsiMeasurement { get; }

Property Value

Type Description
Pressure?

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

Methods

RaiseEventsAndNotify(IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)>)

Notify subscribers of PressureUpdated event handler

Declaration
protected override void RaiseEventsAndNotify(IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> changeResult)

Parameters

Type Name Description
IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> changeResult

Overrides

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

ReadSensor()

Convenience method to get the current Pressure. For frequent reads, use StartSampling() and StopSampling() in conjunction with the SampleBuffer.

Declaration
protected override Task<(Pressure? Pressure, Pressure? RawPsiMeasurement)> ReadSensor()

Returns

Type Description
Task<(Pressure? Pressure, Pressure? RawPsiMeasurement)>

Overrides

Meadow.Foundation.SamplingSensorBase<(Meadow.Units.Pressure? Pressure, Meadow.Units.Pressure? RawPsiMeasurement)>.ReadSensor()

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07

Events

PressureUpdated

Raised when a new reading has been made. Events will only be raised while the driver is updating. To start, call the StartUpdating() method.

Declaration
public event EventHandler<IChangeResult<Pressure>> PressureUpdated

Event Type

Type Description
EventHandler<IChangeResult<Pressure>>

Remarks

AdafruitMPRLS
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Sensors.Atmospheric.AdafruitMPRLS

Code Example

AdafruitMPRLS sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    sensor = new AdafruitMPRLS(Device.CreateI2cBus());
    sensor.Updated += PressureSensor_Updated;

    return Task.CompletedTask;
}

public override Task Run()
{
    sensor.StartUpdating(TimeSpan.FromSeconds(1));

    return Task.CompletedTask;
}

void PressureSensor_Updated(object sender, IChangeResult<(Pressure? Pressure, Pressure? RawPsiMeasurement)> result)
{
    Resolver.Log.Info($"New pressure PSI: {result.New.Pressure?.Psi}, Old pressure PSI: {result.Old?.Pressure?.Psi}");

    Resolver.Log.Info($"Pressure in Pascal: {result.New.Pressure?.Pascal}");

    Resolver.Log.Info($"Raw sensor value: {result.New.RawPsiMeasurement?.Psi}");
}

Sample project(s) available on GitHub

Wiring Example

To wire a Adafruit MPRLS Sensor to your Meadow board, connect the following:

MPRLS Meadow Pin
GND GND
VCC 3.3V
SCL D08
SDA D07