Struct bmp390::Measurement
source · pub struct Measurement {
pub pressure: Pressure,
pub temperature: ThermodynamicTemperature,
pub altitude: Length,
}Expand description
A single measurement from the Bmp390 barometer.
Measurements utilize the uom crate to provide automatic, type-safe, and zero-cost units of measurement.
§Example
let measurement = bmp390::Measurement {
pressure: Pressure::new::<pascal>(90_240.81),
temperature: ThermodynamicTemperature::new::<degree_celsius>(25.0),
altitude: Length::new::<meter>(1000.0),
};
defmt::info!("Measurement: {}", measurement);Note: these examples show creation of Measurement structs directly. In practice you would receive these from
Bmp390::measure.
Conversion between units is easy with the uom crate. For example, to convert to imperial units:
use uom::si::pressure::millimeter_of_mercury;
use uom::si::thermodynamic_temperature::degree_fahrenheit;
use uom::si::length::foot;
// "Pressure: 676.9753 mmHg, Temperature: 77 °F, Altitude: 3280.84 feet"
defmt::info!("Pressure: {} mmHg, temperature: {} °F, altitude: {} feet",
measurement.pressure.get::<millimeter_of_mercury>(),
measurement.temperature.get::<degree_fahrenheit>(),
measurement.altitude.get::<foot>());Fields§
§pressure: PressureThe pressure as a Pressure, allowing for easy conversion to any unit of pressure.
§Example
use uom::si::pressure::millimeter_of_mercury;
let measurement = bmp390::Measurement {
pressure: Pressure::new::<pascal>(90_240.81),
temperature: ThermodynamicTemperature::new::<degree_celsius>(25.0),
altitude: Length::new::<meter>(1000.0),
};
// "Pressure: 676.9753 mmHg"
defmt::info!("Pressure: {} mmHg", measurement.pressure.get::<millimeter_of_mercury>());temperature: ThermodynamicTemperatureThe temperature as a ThermodynamicTemperature, allowing for easy conversion to any unit of temperature.
§Example
use uom::si::thermodynamic_temperature::degree_fahrenheit;
let measurement = bmp390::Measurement {
pressure: Pressure::new::<pascal>(90_240.81),
temperature: ThermodynamicTemperature::new::<degree_celsius>(25.0),
altitude: Length::new::<meter>(1000.0),
};
// "Temperature: 77 °F"
defmt::info!("Temperature: {} °F", measurement.temperature.get::<degree_fahrenheit>());altitude: LengthThe altitude as a Length, allowing for easy conversion to any unit of length.
§Example
use uom::si::length::foot;
let measurement = bmp390::Measurement {
pressure: Pressure::new::<pascal>(90_240.81),
temperature: ThermodynamicTemperature::new::<degree_celsius>(25.0),
altitude: Length::new::<meter>(1000.0),
};
// "Length: 3280.84 feet"
defmt::info!("Length: {} feet", measurement.altitude.get::<foot>());Trait Implementations§
source§impl Clone for Measurement
impl Clone for Measurement
source§fn clone(&self) -> Measurement
fn clone(&self) -> Measurement
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for Measurement
impl Debug for Measurement
source§impl Format for Measurement
impl Format for Measurement
impl Copy for Measurement
Auto Trait Implementations§
impl Freeze for Measurement
impl !RefUnwindSafe for Measurement
impl Send for Measurement
impl Sync for Measurement
impl Unpin for Measurement
impl !UnwindSafe for Measurement
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more