@@ -117,26 +117,50 @@ def readS8(self, reg):
117
117
def readU16 (self , reg ):
118
118
"Reads an unsigned 16-bit value from the I2C device"
119
119
try :
120
- result = self .bus .read_word_data (self .address , reg )
121
- if self .debug :
122
- print ("I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" %
123
- (self .address , result & 0xFFFF , reg ))
120
+ hibyte = self .readU8 (reg )
121
+ lobyte = self .readU8 (reg + 1 )
122
+ result = (hibyte << 8 ) + lobyte
123
+ if (self .debug ):
124
+ print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self .address , result & 0xFFFF , reg )
124
125
return result
125
126
except IOError , err :
126
- return self .errMsg ()
127
+ return self .errMsg ();
127
128
128
129
def readS16 (self , reg ):
129
130
"Reads a signed 16-bit value from the I2C device"
130
131
try :
131
- result = self .bus . read_word_data ( self . address , reg )
132
- if result > 32767 : result -= 65536
133
- if self . debug :
134
- print ( "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" %
135
- (self .address , result & 0xFFFF , reg ) )
132
+ hibyte = self .readS8 ( reg )
133
+ lobyte = self . readU8 ( reg + 1 )
134
+ result = ( hibyte << 8 ) + lobyte
135
+ if ( self . debug ):
136
+ print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self .address , result & 0xFFFF , reg )
136
137
return result
137
138
except IOError , err :
138
- return self .errMsg ()
139
+ return self .errMsg ();
139
140
141
+ def readU16Rev (self , reg ):
142
+ "Reads an unsigned 16-bit value from the I2C device with rev byte order"
143
+ try :
144
+ lobyte = self .readU8 (reg )
145
+ hibyte = self .readU8 (reg + 1 )
146
+ result = (hibyte << 8 ) + lobyte
147
+ if (self .debug ):
148
+ print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self .address , result & 0xFFFF , reg )
149
+ return result
150
+ except IOError , err :
151
+ return self .errMsg ();
152
+
153
+ def readS16Rev (self , reg ):
154
+ "Reads a signed 16-bit value from the I2C device with rev byte order"
155
+ try :
156
+ lobyte = self .readS8 (reg )
157
+ hibyte = self .readU8 (reg + 1 )
158
+ result = (hibyte << 8 ) + lobyte
159
+ if (self .debug ):
160
+ print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self .address , result & 0xFFFF , reg )
161
+ return result
162
+ except IOError , err :
163
+ return self .errMsg ();
140
164
141
165
if __name__ == '__main__' :
142
166
try :
0 commit comments