From 76cfaa8c817ceb4571f5dbac8378177f0a8b8792 Mon Sep 17 00:00:00 2001 From: Kasil Date: Wed, 2 Feb 2022 19:37:40 +0100 Subject: [PATCH] fixes issue #42 --- src/lib.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index e246a8c..d381754 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -159,6 +159,7 @@ const BME680_GAS_INDEX_MSK: u8 = 0x0f; const BME680_GAS_RANGE_MSK: u8 = 0x0f; const BME680_GASM_VALID_MSK: u8 = 0x20; const BME680_HEAT_STAB_MSK: u8 = 0x10; +const BME680_MEASURING_MSK: u8 = 0x20; /// Buffer length macro declaration const BME680_TMP_BUFFER_LENGTH: usize = 40; @@ -506,6 +507,10 @@ where for (reg_addr, reg_data) in reg { let tmp_buff: [u8; 2] = [*reg_addr, *reg_data]; + while self.is_measuring()? { + + } + debug!( "Setting register reg: {:?} tmp_buf: {:?}", reg_addr, tmp_buff @@ -936,6 +941,17 @@ where Ok(gas_sett) } + fn is_measuring(&mut self)->Result::Error, ::Error>{ + let val :u8 = 0; + I2CUtil::read_bytes( + &mut self.i2c, + self.dev_id.addr(), + BME680_FIELD0_ADDR, + &mut [val], + )?; + Ok(val & BME680_MEASURING_MSK != 0) + } + /// Retrieve the current sensor informations pub fn get_sensor_data( &mut self,