[][src]Crate tsic

Allows to read the current temperature from the TSIC temperature sensors.

Note that most of this code is ported and heavily modified from C to rust using the code found in arduino-tsic and other places scattered throughout the internet that used the sensor from C.

Please also refer to the Data Sheet for implementation details.

Usage

Please see the comments on both the with_vdd_control and without_vdd_control constructors for their usage and upsides/downsides.

If the library should control both the signal and the vdd pins (recommended):

This example is not tested
use tsic::{SensorType, Tsic};

let sensor = Tsic::with_vdd_control(SensorType::Tsic306, /* your hal signal input pin */, /* your vdd output pin */);

let mut delay = /* your hal delay */();

match sensor.read(&mut delay) {
  Ok(t) => defmt::info!("Temp is: {:f32}", t.as_celsius()),
  Err(e) => defmt::warn!("Getting sensor data failed: {:?}", e),
};

If the library should just control the signal pin:

This example is not tested
use tsic::{SensorType, Tsic};

let sensor = Tsic::without_vdd_control(SensorType::Tsic306, /* your hal signal input pin */);

let mut delay = /* your hal delay */();

match sensor.read(&mut delay) {
  Ok(t) => defmt::info!("Temp is: {:f32}", t.as_celsius()),
  Err(e) => defmt::warn!("Getting sensor data failed: {:?}", e),
};

Structs

DummyOutputPin

This OutputPin is used to satisfy the generics when no explicit pin is provided.

Temperature

Represents a single temperature reading from the TSIC 306 sensor.

Tsic

The Tsic struct is the main entry point when trying to get a temperature reading from a TSIC 306 sensor.

Enums

SensorType

Refers to the sensor type that is used.

TsicError

Contains all errors that can happen during a reading from the sensor.