8
8
use core:: { I2CDevice , I2CMessage , I2CTransfer } ;
9
9
use std:: io;
10
10
11
+ /// I2C mock result type
11
12
pub type I2CResult < T > = io:: Result < T > ;
12
13
14
+ /// Mock I2C device register map
13
15
pub struct I2CRegisterMap {
14
16
registers : [ u8 ; 0xFF ] ,
15
17
offset : usize ,
@@ -22,13 +24,15 @@ impl Default for I2CRegisterMap {
22
24
}
23
25
24
26
impl I2CRegisterMap {
27
+ /// Create new mock I2C register map
25
28
pub fn new ( ) -> I2CRegisterMap {
26
29
I2CRegisterMap {
27
30
registers : [ 0x00 ; 0xFF ] ,
28
31
offset : 0 ,
29
32
}
30
33
}
31
34
35
+ /// Set several registers starting at the given offset
32
36
pub fn write_regs ( & mut self , offset : usize , data : & [ u8 ] ) {
33
37
println ! ( "WRITE | 0x{:X} : {:?}" , offset, data) ;
34
38
self . registers [ offset..( data. len ( ) + offset) ] . clone_from_slice ( & data) ;
@@ -56,12 +60,15 @@ impl I2CRegisterMap {
56
60
}
57
61
}
58
62
63
+ /// Mock I2C device exposing a register map
59
64
#[ derive( Default ) ]
60
65
pub struct MockI2CDevice {
66
+ /// I2C register map
61
67
pub regmap : I2CRegisterMap ,
62
68
}
63
69
64
70
impl MockI2CDevice {
71
+ /// Create a new mock I2C device
65
72
pub fn new ( ) -> MockI2CDevice {
66
73
MockI2CDevice {
67
74
regmap : I2CRegisterMap :: new ( ) ,
@@ -111,6 +118,7 @@ enum MessageType<'a> {
111
118
Read ( & ' a mut [ u8 ] ) ,
112
119
}
113
120
121
+ /// Mock I2C message
114
122
pub struct MockI2CMessage < ' a > {
115
123
msg_type : MessageType < ' a > ,
116
124
}
0 commit comments