From 69eeff69ae41308051406bb1d1e0face64966bf0 Mon Sep 17 00:00:00 2001 From: Sachymetsu Date: Sun, 5 Jul 2026 11:22:13 +0200 Subject: [PATCH] Retry SHTC3 measurements after successful reset --- src/shtc3.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/shtc3.rs b/src/shtc3.rs index e7a69c4..50bff86 100644 --- a/src/shtc3.rs +++ b/src/shtc3.rs @@ -81,17 +81,20 @@ pub async fn task( let mut sht = ShtC3Instance::init(spio.reborrow(), sda.reborrow(), scl.reborrow(), ram); - match sht.measure().await { - Ok(measurement) => { - SHTC3_MEASUREMENT.signal(Shtc3Measurement::new(measurement)); - } - Err(e) => { - error!("SHTC3 error: {:?}", e); - - // Attempt to reset the sensor - if let Err(e) = sht.reset().await { - // Give up and try to reset the device through a panic. - panic!("SHTC3 reset error: {:?}", e); + 'measure: loop { + match sht.measure().await { + Ok(measurement) => { + SHTC3_MEASUREMENT.signal(Shtc3Measurement::new(measurement)); + break 'measure; + } + Err(e) => { + error!("SHTC3 error: {:?}", e); + + // Attempt to reset the sensor + if let Err(e) = sht.reset().await { + // Give up and try to reset the device through a panic. + panic!("SHTC3 reset error: {:?}", e); + } } } } -- 2.51.2