-
Paulus Kruger authoredPaulus Kruger authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
I2Cv2.py 1.60 KiB
#import pylibi2c;
#import
from periphery import I2C;
import time
import logging
#bus = pylibi2c.I2CDevice('/dev/i2c-1'
#read=0: write to register
#read=1: read from register
#read=2: write to register (common in group)
#read=3: wait ms second
I2Ccounter=0;
i2c1=I2C("/dev/i2c-1")
def I2C1server(addr,data,reg=None,read=0):
# print("I2C",addr,reg,data,read)
try:
if read==3:
time.sleep(data[0]/1000.)
return True
logging.debug(str(("I2C",addr,reg,data,read)))
if read==1:
if not(reg is None): i2c1.transfer(addr,[I2C.Message(reg)])
msgs=[I2C.Message(data,read=True)]
i2c1.transfer(addr,msgs)
data[:]=msgs[0].data
else:
if reg is None:
msgs=[I2C.Message(data)]
else:
msgs=[I2C.Message(reg),I2C.Message(data)]
i2c1.transfer(addr,msgs)
return True;
except:
return False;
i2c4=I2C("/dev/i2c-1")
def I2C1server(addr,data,reg=None,read=0):
# print("I2C",addr,reg,data,read)
try:
if read==3:
time.sleep(data[0]/1000.)
return True
logging.debug(str(("I2C",addr,reg,data,read)))
if read==1:
if not(reg is None): i2c4.transfer(addr,[I2C.Message(reg)])
msgs=[I2C.Message(data,read=True)]
i2c4.transfer(addr,msgs)
data[:]=msgs[0].data
else:
if reg is None:
msgs=[I2C.Message(data)]
else:
msgs=[I2C.Message(reg),I2C.Message(data)]
i2c4.transfer(addr,msgs)
return True;
except:
return False;