88use core:: { I2CDevice , I2CMessage , I2CTransfer } ;
99use std:: io;
1010
11+ /// I2C mock result type
1112pub type I2CResult < T > = io:: Result < T > ;
1213
14+ /// Mock I2C device register map
1315pub struct I2CRegisterMap {
1416 registers : [ u8 ; 0xFF ] ,
1517 offset : usize ,
@@ -22,13 +24,15 @@ impl Default for I2CRegisterMap {
2224}
2325
2426impl I2CRegisterMap {
27+ /// Create new mock I2C register map
2528 pub fn new ( ) -> I2CRegisterMap {
2629 I2CRegisterMap {
2730 registers : [ 0x00 ; 0xFF ] ,
2831 offset : 0 ,
2932 }
3033 }
3134
35+ /// Set several registers starting at the given offset
3236 pub fn write_regs ( & mut self , offset : usize , data : & [ u8 ] ) {
3337 println ! ( "WRITE | 0x{:X} : {:?}" , offset, data) ;
3438 self . registers [ offset..( data. len ( ) + offset) ] . clone_from_slice ( & data) ;
@@ -56,12 +60,15 @@ impl I2CRegisterMap {
5660 }
5761}
5862
63+ /// Mock I2C device exposing a register map
5964#[ derive( Default ) ]
6065pub struct MockI2CDevice {
66+ /// I2C register map
6167 pub regmap : I2CRegisterMap ,
6268}
6369
6470impl MockI2CDevice {
71+ /// Create a new mock I2C device
6572 pub fn new ( ) -> MockI2CDevice {
6673 MockI2CDevice {
6774 regmap : I2CRegisterMap :: new ( ) ,
@@ -111,6 +118,7 @@ enum MessageType<'a> {
111118 Read ( & ' a mut [ u8 ] ) ,
112119}
113120
121+ /// Mock I2C message
114122pub struct MockI2CMessage < ' a > {
115123 msg_type : MessageType < ' a > ,
116124}
0 commit comments