@@ -93,8 +93,8 @@ mod calc;
9393mod settings;
9494
9595use crate :: calc:: Calc ;
96- use crate :: hal:: blocking :: delay :: DelayMs ;
97- use crate :: hal:: blocking :: i2c :: { Read , Write } ;
96+ use crate :: hal:: delay :: blocking :: DelayMs ;
97+ use crate :: hal:: i2c :: blocking :: { Read , Write } ;
9898
9999use core:: time:: Duration ;
100100use core:: { marker:: PhantomData , result} ;
@@ -172,6 +172,7 @@ pub enum Error<R, W> {
172172 ///
173173 I2CWrite ( W ) ,
174174 I2CRead ( R ) ,
175+ Delay ,
175176 ///
176177 /// aka BME680_E_DEV_NOT_FOUND
177178 ///
@@ -459,7 +460,9 @@ where
459460 i2c. write ( dev_id. addr ( ) , & tmp_buff)
460461 . map_err ( Error :: I2CWrite ) ?;
461462
462- delay. delay_ms ( BME680_RESET_PERIOD ) ;
463+ delay
464+ . delay_ms ( BME680_RESET_PERIOD )
465+ . map_err ( |_| Error :: Delay ) ?;
463466 Ok ( ( ) )
464467 }
465468
@@ -725,7 +728,9 @@ where
725728 tmp_pow_mode &= !BME680_MODE_MSK ;
726729 debug ! ( "Setting to sleep tmp_pow_mode: {}" , tmp_pow_mode) ;
727730 self . bme680_set_regs ( & [ ( BME680_CONF_T_P_MODE_ADDR , tmp_pow_mode) ] ) ?;
728- delay. delay_ms ( BME680_POLL_PERIOD_MS ) ;
731+ delay
732+ . delay_ms ( BME680_POLL_PERIOD_MS )
733+ . map_err ( |_| Error :: Delay ) ?;
729734 } else {
730735 // TODO do while in Rust?
731736 break ;
@@ -990,7 +995,9 @@ where
990995 return Ok ( ( data, FieldDataCondition :: NewData ) ) ;
991996 }
992997
993- delay. delay_ms ( BME680_POLL_PERIOD_MS ) ;
998+ delay
999+ . delay_ms ( BME680_POLL_PERIOD_MS )
1000+ . map_err ( |_| Error :: Delay ) ?;
9941001 }
9951002 Ok ( ( data, FieldDataCondition :: Unchanged ) )
9961003 }
0 commit comments