Skip to content
Snippets Groups Projects

Work gijs

Closed Gijs Schoonderbeek requested to merge Work_Gijs into master
5 files
+ 917
0
Compare changes
  • Side-by-side
  • Inline
Files
5
I2C_serial.py 0 → 100644
+ 92
0
 
'''
 
I2C Class
 
 
'''
 
import sys
 
sys.path.insert(0,'c:\python34\lib\site-packages')
 
import serial
 
from time import *
 
 
DEBUG=False
 
 
ser = serial.Serial()
 
ser.baudrate = 57600
 
ser.port = 'COM11'
 
ser.parity = serial.PARITY_NONE
 
ser.timeout = 1
 
 
class I2C:
 
 
def __init__(self, ADDRESS='040'):
 
self.I2C_Address = ADDRESS
 
 
 
# def chk_ack(self):
 
# return ret_ack
 
# def write_bytes(self,register,data):
 
# return ret_ack
 
# def write_last_reg(self,data):
 
# return ret_ack
 
 
def read_bytes(self, register, bytes_to_read=2):
 
serial_string='S{0:x}{1:{fill}2x}PS{2:x}{3:02}45P'.format(self.I2C_Address*2, register, (self.I2C_Address*2+1), bytes_to_read, fill = '0')
 
serial_string=serial_string.upper()
 
ret_ack = 1
 
if DEBUG:
 
print(serial_string)
 
ret_value="0F"
 
else:
 
ser.open()
 
ser.write(bytes(serial_string, 'utf-8'))
 
ret_value = ser.read(bytes_to_read*2)
 
ser.close()
 
ret_value = ret_value.decode("utf-8")
 
return ret_ack, ret_value
 
 
 
def read_last_reg(self, bytes_to_read):
 
serial_string='S{0:x}{1:02}P'.format((self.I2C_Address*2+1), bytes_to_read)
 
serial_string=serial_string.upper()
 
ret_ack = 1
 
if DEBUG:
 
print(serial_string)
 
ret_value="0F"
 
else:
 
ser.open()
 
ser.write(bytes(serial_string, 'utf-8'))
 
ret_value = ser.read(bytes_to_read*2)
 
ser.close()
 
ret_value = ret_value.decode("utf-8")
 
return ret_ack,ret_value
 
 
def write_bytes(self, register, data):
 
ret_value=[]
 
serial_string='S{0:x}{1:02x}{2:02x}P'.format(self.I2C_Address*2, register, data)
 
serial_string=serial_string.upper()
 
ret_ack = 1
 
if DEBUG:
 
print(serial_string)
 
else:
 
ser.open()
 
ser.write(bytes(serial_string, 'utf-8'))
 
ser.close()
 
return ret_ack
 
 
def write_pointer(self, register):
 
ret_value=[]
 
serial_string='S{0:x}{1:02x}P'.format(self.I2C_Address*2, register)
 
serial_string=serial_string.upper()
 
ret_ack = 1
 
if DEBUG:
 
print(serial_string)
 
else:
 
ser.open()
 
ser.write(bytes(serial_string, 'utf-8'))
 
ser.close()
 
return ret_ack
 
 
if __name__ == "__main__":
 
I2C_Device = I2C(0x40)
 
I2C_Device.write_bytes(0x00, 0x00)
 
ret_ack, ret_value = I2C_Device.read_bytes(0x8C, 2)
 
print(ret_value)
Loading