Skip to content

Commit

Permalink
Merge pull request #16 from dbrgn/provide-non-blocking-api
Browse files Browse the repository at this point in the history
Provide non blocking API
  • Loading branch information
rnestler committed May 26, 2020
2 parents 9099e45 + 5c4bdd7 commit 5913a16
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 110 deletions.
9 changes: 5 additions & 4 deletions examples/linux-shtc1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ use shtcx::{self, PowerMode};

fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let mut sht = shtcx::shtc1(dev, Delay);
let mut sht = shtcx::shtc1(dev);
let mut delay = Delay;

println!("Starting SHTC1 tests.");
println!();

println!("Soft reset...");
sht.reset().unwrap();
sht.reset(&mut delay).unwrap();
println!();

println!(
Expand All @@ -25,7 +26,7 @@ fn main() {

println!("\nNormal mode measurements:");
for _ in 0..3 {
let measurement = sht.measure(PowerMode::NormalMode).unwrap();
let measurement = sht.measure(PowerMode::NormalMode, &mut delay).unwrap();
println!(
" {:.2} °C | {:.2} %RH",
measurement.temperature.as_degrees_celsius(),
Expand All @@ -35,7 +36,7 @@ fn main() {

println!("\nLow power mode measurements:");
for _ in 0..3 {
let measurement = sht.measure(PowerMode::LowPower).unwrap();
let measurement = sht.measure(PowerMode::LowPower, &mut delay).unwrap();
println!(
" {:.2} °C | {:.2} %RH",
measurement.temperature.as_degrees_celsius(),
Expand Down
29 changes: 19 additions & 10 deletions examples/linux-shtc3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ use shtcx::{self, LowPower, PowerMode};

fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let mut sht = shtcx::shtc3(dev, Delay);
let mut sht = shtcx::shtc3(dev);
let mut delay = Delay;

println!("Starting SHTC3 tests.");
println!("Waking up sensor.");
println!();
sht.wakeup().unwrap();
sht.wakeup(&mut delay).unwrap();

println!(
"Device identifier: 0x{:02x}",
Expand All @@ -23,7 +24,7 @@ fn main() {

println!("\nNormal mode measurements:");
for _ in 0..3 {
let measurement = sht.measure(PowerMode::NormalMode).unwrap();
let measurement = sht.measure(PowerMode::NormalMode, &mut delay).unwrap();
println!(
" {:.2} °C | {:.2} %RH",
measurement.temperature.as_degrees_celsius(),
Expand All @@ -33,7 +34,7 @@ fn main() {

println!("\nLow power mode measurements:");
for _ in 0..3 {
let measurement = sht.measure(PowerMode::LowPower).unwrap();
let measurement = sht.measure(PowerMode::LowPower, &mut delay).unwrap();
println!(
" {:.2} °C | {:.2} %RH",
measurement.temperature.as_degrees_celsius(),
Expand All @@ -43,21 +44,29 @@ fn main() {

println!("\nTesting power management:");
print!("-> Measure: ");
let temperature = sht.measure_temperature(PowerMode::NormalMode).unwrap();
let temperature = sht
.measure_temperature(PowerMode::NormalMode, &mut delay)
.unwrap();
println!("Success: {:.2} °C", temperature.as_degrees_celsius());
println!("-> Sleep");
sht.sleep().unwrap();
print!("-> Measure: ");
let error = sht.measure_temperature(PowerMode::NormalMode).unwrap_err();
let error = sht
.measure_temperature(PowerMode::NormalMode, &mut delay)
.unwrap_err();
println!("Error: {:?}", error);
println!("-> Wakeup");
sht.wakeup().unwrap();
sht.wakeup(&mut delay).unwrap();
print!("-> Measure: ");
let temperature = sht.measure_temperature(PowerMode::NormalMode).unwrap();
let temperature = sht
.measure_temperature(PowerMode::NormalMode, &mut delay)
.unwrap();
println!("Success: {:.2} °C", temperature.as_degrees_celsius());
println!("-> Soft reset");
sht.reset().unwrap();
sht.reset(&mut delay).unwrap();
print!("-> Measure: ");
let temperature = sht.measure_temperature(PowerMode::NormalMode).unwrap();
let temperature = sht
.measure_temperature(PowerMode::NormalMode, &mut delay)
.unwrap();
println!("Success: {:.2} °C", temperature.as_degrees_celsius());
}
7 changes: 4 additions & 3 deletions examples/monitor-shtc3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ fn show_chart<B: Backend>(
fn main() -> Result<(), io::Error> {
// Initialize sensor driver
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let mut sht = shtcx::shtc3(dev, Delay);
let mut sht = shtcx::shtc3(dev);
let mut delay = Delay;

// Initialize terminal app
let stdout = io::stdout().into_raw_mode()?;
Expand Down Expand Up @@ -125,8 +126,8 @@ fn main() -> Result<(), io::Error> {
thread::spawn(move || {
while run_measurements.load(Ordering::SeqCst) {
// Do measurements
let normal = sht.measure(PowerMode::NormalMode).unwrap();
let lowpwr = sht.measure(PowerMode::LowPower).unwrap();
let normal = sht.measure(PowerMode::NormalMode, &mut delay).unwrap();
let lowpwr = sht.measure(PowerMode::LowPower, &mut delay).unwrap();

// Update data buffer
let mut data = measurement_data.lock().unwrap();
Expand Down
Loading

0 comments on commit 5913a16

Please sign in to comment.