Skip to content
Snippets Groups Projects

Modified the scripts to run on Raspberry Pi.

1 file
+ 15
15
Compare changes
  • Side-by-side
  • Inline
+ 15
15
@@ -16,16 +16,16 @@ from UniBoard2_I2C import *
@@ -16,16 +16,16 @@ from UniBoard2_I2C import *
I2CBUSNR=3
I2CBUSNR=3
class c_unb2c:
class c_unb2c:
def __init(self):
def __init__(self):
self.status=False
self.status=False
self.nodes=[]
self.nodes=[]
self.pols=[]
self.pols=[]
for node_cnt in range(4):
for node_cnt in range(4):
self.nodes.append(c_node(node_cnt))
self.nodes.append(c_node(node_cnt))
for pol in list(CTR_POLS.keys()):
for pol in list(CTR_POLS.keys()):
self.pols.append(c_pol(pol))
self.pols.append(c_pol(pol, type="central"))
self.dev_i2c_eeprom = I2C(EEPROM)
self.dev_i2c_eeprom = I2C(EEPROM)
self.dev_i2c_eeprom = I2CBUSNR
self.dev_i2c_eeprom.bus = I2CBUSNR
def write_eeprom(self, data=0x01):
def write_eeprom(self, data=0x01):
ret_ack, ret_value = self.dev_i2c_eeprom.read_bytes(0)
ret_ack, ret_value = self.dev_i2c_eeprom.read_bytes(0)
@@ -34,23 +34,22 @@ class c_unb2c:
@@ -34,23 +34,22 @@ class c_unb2c:
else:
else:
self.dev_i2c_eeprom.write_bytes(0x00, data)
self.dev_i2c_eeprom.write_bytes(0x00, data)
def read_eeprom(self, data):
def read_eeprom(self):
ret_ack, ret_value = self.dev_i2c_eeprom.read_bytes(0)
ret_ack, ret_value = self.dev_i2c_eeprom.read_bytes(0)
if ret_ack < 1:
if ret_ack < 1:
print("no device found")
print("no device found")
else:
else:
self.dev_i2c_eeprom.write_bytes(0x00, value)
ret_ack, ret_value = self.dev_i2c_eeprom.read_bytes(0x00, 1)
ret_ack, ret_value = I2C_eeprom.read_bytes(0x00, 1)
return ret_value
return ret_value
def wr_rd_eeprom(self):
def wr_rd_eeprom(self, value=0x34):
self.write_eeprom(0x12)
self.write_eeprom(value)
ret_value = self.read_eeprom()
ret_value = self.read_eeprom()
stri = "Wrote to EEPROM: 0x{0:X}, Read from EEPROM: 0x{1} ".format(value, ret_value)
stri = "Wrote to EEPROM: 0x{0:X}, Read from EEPROM: 0x{1} ".format(value, ret_value)
print(stri)
print(stri)
def front_led(collor):
def front_led(self, collor):
main_switch = I2C(MAIN_I2C_SWITCH)
main_switch = I2C(MAIN_I2C_SWITCH)
main_switch.bus = I2CBUSNR
main_switch.bus = I2CBUSNR
ret_ack = main_switch.write_bytes(0x20,0x20) #select LED
ret_ack = main_switch.write_bytes(0x20,0x20) #select LED
@@ -68,7 +67,7 @@ class c_unb2c:
@@ -68,7 +67,7 @@ class c_unb2c:
def read_all(self):
def read_all(self):
for node in self.nodes:
for node in self.nodes:
node.read_all()
node.read_all()
for pol in self.nodes:
for pol in self.pols:
pol.read_all()
pol.read_all()
def print_status(self):
def print_status(self):
@@ -77,7 +76,7 @@ class c_unb2c:
@@ -77,7 +76,7 @@ class c_unb2c:
self.front_led(LED_COLORS[color])
self.front_led(LED_COLORS[color])
for node in self.nodes:
for node in self.nodes:
node.print_status()
node.print_status()
for pol in self.nodes:
for pol in self.pols:
pol.print_status()
pol.print_status()
self.wr_rd_eeprom()
self.wr_rd_eeprom()
@@ -149,7 +148,6 @@ class c_qsfp:
@@ -149,7 +148,6 @@ class c_qsfp:
def read_temp(self):
def read_temp(self):
self.select_qsfp()
self.select_qsfp()
print("read QSFP")
ret_ack, raw_ret = self.qsfp_cage.read_bytes(QSFP_TEMP, 2)
ret_ack, raw_ret = self.qsfp_cage.read_bytes(QSFP_TEMP, 2)
if (ret_ack < 1) | (raw_ret[:2]=='ff'):
if (ret_ack < 1) | (raw_ret[:2]=='ff'):
# stri = "No QSFP found in port {0}".format(self.port)
# stri = "No QSFP found in port {0}".format(self.port)
@@ -239,7 +237,9 @@ class c_pol:
@@ -239,7 +237,9 @@ class c_pol:
self.tem=0
self.tem=0
if type == "node":
if type == "node":
self.set_i2c_switch()
self.set_i2c_switch()
self.pol_dev = I2C(LOC_POLS[self.name])
self.pol_dev = I2C(LOC_POLS[self.name])
 
else:
 
self.pol_dev = I2C(CTR_POLS[self.name])
self.pol_dev.bus = I2CBUSNR
self.pol_dev.bus = I2CBUSNR
sleep(0.1)
sleep(0.1)
ret_ack, ret_value = self.pol_dev.read_bytes(0)
ret_ack, ret_value = self.pol_dev.read_bytes(0)
@@ -498,6 +498,6 @@ if 0:
@@ -498,6 +498,6 @@ if 0:
# node = c_node(cnt)
# node = c_node(cnt)
# node.read_all()
# node.read_all()
# node.print_status()
# node.print_status()
unb = c_unb2c
unb = c_unb2c()
unb.read_all()
unb.read_all()
unb.print_status()
unb.print_status()
\ No newline at end of file
Loading