Replace Vec with arrays where sensible
This commit is contained in:
parent
fc57f277c4
commit
4788c6c14e
1 changed files with 9 additions and 11 deletions
20
src/lib.rs
20
src/lib.rs
|
@ -425,12 +425,9 @@ where
|
||||||
I2C: Read + Write,
|
I2C: Read + Write,
|
||||||
{
|
{
|
||||||
pub fn soft_reset(i2c: &mut I2C, delay: &mut D, dev_id: u8) -> Result<(), <I2C as Read>::Error, <I2C as Write>::Error> {
|
pub fn soft_reset(i2c: &mut I2C, delay: &mut D, dev_id: u8) -> Result<(), <I2C as Read>::Error, <I2C as Write>::Error> {
|
||||||
// TODO do we we really need TMP_BUFFER_LENGTH ?
|
let tmp_buff: [u8; 2] = [BME680_SOFT_RESET_ADDR, BME680_SOFT_RESET_CMD];
|
||||||
let mut tmp_buff = Vec::with_capacity(BME680_TMP_BUFFER_LENGTH);
|
|
||||||
tmp_buff.push(BME680_SOFT_RESET_ADDR);
|
|
||||||
tmp_buff.push(BME680_SOFT_RESET_CMD);
|
|
||||||
|
|
||||||
i2c.write(dev_id, tmp_buff.as_slice())
|
i2c.write(dev_id, &tmp_buff)
|
||||||
.map_err(|e| Bme680Error::I2CWrite(e))?;
|
.map_err(|e| Bme680Error::I2CWrite(e))?;
|
||||||
|
|
||||||
delay.delay_ms(BME680_RESET_PERIOD);
|
delay.delay_ms(BME680_RESET_PERIOD);
|
||||||
|
@ -443,9 +440,8 @@ where
|
||||||
debug!("Reading chip id");
|
debug!("Reading chip id");
|
||||||
/* Soft reset to restore it to default values*/
|
/* Soft reset to restore it to default values*/
|
||||||
let chip_id = I2CUtil::read_byte::<I2C>(&mut i2c, dev_id, BME680_CHIP_ID_ADDR)?;
|
let chip_id = I2CUtil::read_byte::<I2C>(&mut i2c, dev_id, BME680_CHIP_ID_ADDR)?;
|
||||||
|
|
||||||
debug!("Chip id: {}", chip_id);
|
debug!("Chip id: {}", chip_id);
|
||||||
//let chip_id = dev.read_byte(BME680_CHIP_ID_ADDR)?;
|
|
||||||
if chip_id == BME680_CHIP_ID {
|
if chip_id == BME680_CHIP_ID {
|
||||||
debug!("Reading calib data");
|
debug!("Reading calib data");
|
||||||
let calib = Bme680_dev::<I2C, D>::get_calib_data::<I2C>(&mut i2c, dev_id)?;
|
let calib = Bme680_dev::<I2C, D>::get_calib_data::<I2C>(&mut i2c, dev_id)?;
|
||||||
|
@ -480,6 +476,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
||||||
// self.i2c
|
// self.i2c
|
||||||
// .write(self.dev_id, tmp_buff.as_slice())
|
// .write(self.dev_id, tmp_buff.as_slice())
|
||||||
// .map_err(|e| Bme680Error::I2CWrite(e))
|
// .map_err(|e| Bme680Error::I2CWrite(e))
|
||||||
|
@ -789,18 +786,19 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_gas_config(&mut self, gas_sett: GasSett) -> Result<(), <I2C as Read>::Error, <I2C as Write>::Error> {
|
fn set_gas_config(&mut self, gas_sett: GasSett) -> Result<(), <I2C as Read>::Error, <I2C as Write>::Error> {
|
||||||
let mut reg = Vec::with_capacity(2);
|
|
||||||
|
|
||||||
if self.power_mode != PowerMode::ForcedMode {
|
if self.power_mode != PowerMode::ForcedMode {
|
||||||
return Err(Bme680Error::DefinePwrMode);
|
return Err(Bme680Error::DefinePwrMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO check whether unwrap_or changes behaviour
|
// TODO check whether unwrap_or changes behaviour
|
||||||
reg.push((BME680_RES_HEAT0_ADDR, Calc::calc_heater_res(&self.calib, self.amb_temp, gas_sett.heatr_temp.unwrap_or(0))));
|
let reg:[(u8,u8);2] = [
|
||||||
reg.push((BME680_GAS_WAIT0_ADDR, Calc::calc_heater_dur(gas_sett.heatr_dur.unwrap_or(0))));
|
(BME680_RES_HEAT0_ADDR, Calc::calc_heater_res(&self.calib, self.amb_temp, gas_sett.heatr_temp.unwrap_or(0))),
|
||||||
|
(BME680_GAS_WAIT0_ADDR, Calc::calc_heater_dur(gas_sett.heatr_dur.unwrap_or(0)))
|
||||||
|
];
|
||||||
|
|
||||||
self.gas_sett.nb_conv = 0;
|
self.gas_sett.nb_conv = 0;
|
||||||
self.bme680_set_regs(reg.as_slice())
|
self.bme680_set_regs(®)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_gas_config(&mut self) -> Result<GasSett, <I2C as Read>::Error, <I2C as Write>::Error> {
|
fn get_gas_config(&mut self) -> Result<GasSett, <I2C as Read>::Error, <I2C as Write>::Error> {
|
||||||
|
|
Loading…
Reference in a new issue