Commit e65079b1 authored by Benoit Rat's avatar Benoit Rat

dio: improve indentation & add 32B limits to eeprom write

parent 14ebadf0
#!/usr/bin/python #!/usr/bin/python
import sys from i2c import *
import rr
import time
import i2c
class C24AA64: class C24AA64:
def __init__(self, i2c, i2c_addr): def __init__(self, i2c, i2c_addr):
self.i2c = i2c self.i2c = i2c
self.i2c_addr = i2c_addr self.i2c_addr = i2c_addr
def wr_data(self, mem_addr, data): def wr_data(self, mem_addr, data):
self.i2c.start(self.i2c_addr, True) if len(data) > 32:
self.i2c.write((mem_addr >> 8), False) raise I2CDeviceOperationError("Maximum sequence write size is 32 byte!")
self.i2c.write((mem_addr & 0xFF), False) self.i2c.start(self.i2c_addr, True)
#print('24AA64:write: data lenght=%d')%(len(data)) self.i2c.write((mem_addr >> 8), False)
for i in range(len(data)-1): self.i2c.write((mem_addr & 0xFF), False)
#print('24AA64:write: i=%d')%(i) #print('24AA64:write: data lenght=%d')%(len(data))
self.i2c.write(data[i],False) for i in range(len(data)-1):
#print('24AA64:write: i=%d')%(i)
self.i2c.write(data[i],False)
if len(data) > 1:
i += 1 i += 1
#print('24AA64:write:last i=%d')%(i) else:
self.i2c.write(data[i],True) i = 0
#print('24AA64:write:last i=%d')%(i)
self.i2c.write(data[i],True)
return 0
def rd_data(self, mem_addr, size): def rd_data(self, mem_addr, size):
self.i2c.start(self.i2c_addr, True) self.i2c.start(self.i2c_addr, True)
self.i2c.write((mem_addr >> 8), False) self.i2c.write((mem_addr >> 8), False)
self.i2c.write((mem_addr & 0xFF), False) self.i2c.write((mem_addr & 0xFF), False)
self.i2c.start(self.i2c_addr, False) self.i2c.start(self.i2c_addr, False)
data = [] data = []
#print('24AA64:read: data lenght=%d')%(size) #print('24AA64:read: data lenght=%d')%(size)
i=0 for i in range(size-1):
for i in range(size-1): data.append(self.i2c.read(False))
data.append(self.i2c.read(False)) #print('24AA64:read: i=%d')%(i)
#print('24AA64:read: i=%d')%(i)
i += 1 #print('24AA64:read:last i=%d')%(i)
#print('24AA64:read:last i=%d')%(i) data.append(self.i2c.read(True))
data.append(self.i2c.read(True)) return data;
return data;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment