Skip to content

Commit f5ee6cd

Browse files
committed
Support short write
1 parent 1b7b960 commit f5ee6cd

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

i2c.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ def i2c_smbus_access(file, read_write, command, size, data):
5656
print '## i2c_smbus_access ## {0}'.format(e)
5757
return -1
5858

59-
def i2c_smbus_write_quick(file, value):
59+
def i2c_smbus_write_quick(file, mode):
60+
if debug: print '## i2c_smbus_write_byte ##: mode 0x{0:00X}'.format(mode)
6061
data = i2c_smbus_data(0)
61-
return i2c_smbus_access(file, value, 0, I2C_SMBUS_QUICK, pointer(data))
62+
return i2c_smbus_access(file, mode, 0, I2C_SMBUS_QUICK, pointer(data))
6263

6364
def i2c_smbus_read_byte(file):
6465
if debug: print '## i2c_smbus_read_byte ##'
@@ -68,35 +69,35 @@ def i2c_smbus_read_byte(file):
6869
else:
6970
return -1
7071

71-
def i2c_smbus_write_byte(file, value):
72-
if debug: print '## i2c_smbus_write_byte ##: value 0x{0:00X}'.format(value)
72+
def i2c_smbus_write_byte(file, daddr):
73+
if debug: print '## i2c_smbus_write_byte ##: daddr 0x{0:00X}'.format(daddr)
7374
data = i2c_smbus_data(0)
74-
return i2c_smbus_access(file, I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, pointer(data))
75+
return i2c_smbus_access(file, I2C_SMBUS_WRITE, daddr, I2C_SMBUS_BYTE, pointer(data))
7576

7677
def i2c_smbus_read_byte_data(file, daddr):
77-
if debug: print '## i2c_smbus_read_byte_data ##: daddr {0}'.format(daddr)
78+
if debug: print '## i2c_smbus_read_byte_data ##: daddr 0x{0:00X}'.format(daddr)
7879
data = i2c_smbus_data(0)
7980
if (i2c_smbus_access(file, I2C_SMBUS_READ, daddr, I2C_SMBUS_BYTE_DATA, pointer(data)) == 0):
8081
return 0x0FF & data.byte
8182
else:
8283
return -1
8384

8485
def i2c_smbus_write_byte_data(file, daddr, value):
85-
if debug: print '## i2c_smbus_write_byte_data ##: daddr {0}, value=0x{1:00X}'.format(daddr, value)
86+
if debug: print '## i2c_smbus_write_byte_data ##: daddr 0x{0:00X}, value=0x{1:00X}'.format(daddr, value)
8687
data = i2c_smbus_data(0)
8788
data.byte = value
8889
return i2c_smbus_access(file, I2C_SMBUS_WRITE, daddr, I2C_SMBUS_BYTE_DATA, pointer(data))
8990

9091
def i2c_smbus_read_word_data(file, daddr):
91-
if debug: print '## i2c_smbus_read_word_data ##: daddr {0}'.format(daddr)
92+
if debug: print '## i2c_smbus_read_word_data ##: daddr 0x{0:00X}'.format(daddr)
9293
data = i2c_smbus_data(0)
9394
if (i2c_smbus_access(file, I2C_SMBUS_READ, daddr, I2C_SMBUS_WORD_DATA, pointer(data)) == 0):
9495
return 0x0FFFF & data.word
9596
else:
9697
return -1
9798

9899
def i2c_smbus_write_word_data(file, daddr, value):
99-
if debug: print '## i2c_smbus_write_word_data ##: daddr {0}, value=0x{1:0000X}'.format(daddr, value)
100+
if debug: print '## i2c_smbus_write_word_data ##: daddr 0x{0:00X}, value=0x{1:0000X}'.format(daddr, value)
100101
data = i2c_smbus_data(0)
101102
data.word = value
102103
return i2c_smbus_access(file, I2C_SMBUS_WRITE, daddr, I2C_SMBUS_WORD_DATA, pointer(data))
@@ -123,7 +124,8 @@ def _i2cRead(addr, reg = 0, size = ''):
123124
data = -2
124125
return data
125126

126-
def _i2cWrite(addr, reg, value, size):
127+
def _i2cWrite(addr, reg, value = '', size = 'B'):
128+
if value == '': size = 'C'; value = 0
127129
if debug: print '## i2cWrite ## addr=0x{0:02x}, reg=0x{1:02x}, value=0x{2:04X}, size={3}'.format(addr, reg, value, size)
128130
try:
129131
file = os.open(RASCAL_I2C, os.O_RDWR)
@@ -134,7 +136,7 @@ def _i2cWrite(addr, reg, value, size):
134136
elif size.upper() == 'B':
135137
data = i2c_smbus_write_byte_data(file, reg, value)
136138
else:
137-
data = i2c_smbus_write_byte(file, value)
139+
data = i2c_smbus_write_byte(file, reg)
138140
except Exception, e:
139141
if debug: print '## i2cWrite ## Can\'t set slave addr {0}'.format(e)
140142
data = -1

pytronics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def i2cRead(addr, reg = 0, size = 'B'):
105105
from i2c import _i2cRead
106106
return _i2cRead(addr, reg, size)
107107

108-
def i2cWrite(addr, reg, val, size):
108+
def i2cWrite(addr, reg, val = '', size = 'B'):
109109
from i2c import _i2cWrite
110110
return _i2cWrite(addr, reg, val, size)
111111

0 commit comments

Comments
 (0)