From ff256b1a30c7c3aa19057bd2726d899d0502d99a Mon Sep 17 00:00:00 2001
From: kruger <kruger@astron.nl>
Date: Sat, 3 Jul 2021 17:08:51 +0200
Subject: [PATCH] RCU lookup table added

---
 config/RECVTR.yaml   | 3 ++-
 config/UNB2TR.yaml   | 3 ++-
 i2cserv/i2c_array.py | 6 +++---
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/config/RECVTR.yaml b/config/RECVTR.yaml
index f22105d..4fa566b 100644
--- a/config/RECVTR.yaml
+++ b/config/RECVTR.yaml
@@ -9,7 +9,8 @@ drivers:
  - name: I2C_RCU 
    type: i2c_array #An array of similar devices connected to an I2C switch
    parent: I2C1
-   parameters: [0,31,5] #start,number of RCUs, error count to disable I2C (14 for LTS?)
+   parameters: [20,22,0,2,4,6,10,12,14,16,18,24,26,28,30,8,7,5,3,1,23,21,19,13,11,9,15,17,31,29,27,25] #RCU lookup table 
+   I2Ccut: 5 #error count to disable I2C (14 for LTS?)
    status: RECVTR_I2C_error
  - name: I2C_HBAT
    type: hba1 #Special driver to manage HBAT1s.
diff --git a/config/UNB2TR.yaml b/config/UNB2TR.yaml
index 1f7c3ed..6c15cd8 100644
--- a/config/UNB2TR.yaml
+++ b/config/UNB2TR.yaml
@@ -10,7 +10,8 @@ drivers:
  - name: switch_UNB2
    type: i2c_array
    parent: I2C1
-   parameters: [0,1,10] 
+   parameters: [0,1] #lookup table
+   I2Ccut: 10
    status: UNB2TR_I2C_bus_error
 
  - name: switch_PS
diff --git a/i2cserv/i2c_array.py b/i2cserv/i2c_array.py
index 77a11fb..7d2d8ce 100644
--- a/i2cserv/i2c_array.py
+++ b/i2cserv/i2c_array.py
@@ -15,11 +15,11 @@ class i2c_array(i2c_dev):
 #        self.SWcallback=Switchcallback
 #        self.previousHBA=np.zeros([number,3,32],dtype='int')
         pars=config['parameters'];
-        self.RCU_Switch1=range(pars[0],pars[1]+1);
+        self.RCU_Switch1=pars; #range(pars[0],pars[1]+1);
         self.N=len(self.RCU_Switch1);
         self.I2Cmask=[0]*self.N
-        self.I2Ccut=pars[2];
-        self.disableI2ConError=pars[2]>0;
+        self.I2Ccut=config.get('I2Ccut',5);#pars[2];
+        self.disableI2ConError=self.I2Ccut>0;
 #        self.devregs,RCU_storeReg=DevRegList(yaml)
 #        print("Init",config['name'],'len=',len(self.RCU_Switch1),' stored reg=',RCU_storeReg)
 #        self.previous   =np.zeros([self.N,RCU_storeReg],dtype='int')
-- 
GitLab