Skip to content
Snippets Groups Projects
Commit 5bbc8fb5 authored by Paulus Kruger's avatar Paulus Kruger
Browse files

RCU status added

parent ff4d6f3e
Branches
Tags
1 merge request!11Pypcc2
...@@ -209,11 +209,10 @@ variables: ...@@ -209,11 +209,10 @@ variables:
dim: 32 dim: 32
- name: RCU_state - name: RCU_state
description: State of RCUs 0=unknown, 1=ready, 2=busy, 3=error description: State of RCUs 0=unknown, 1=ready, 2=busy, 3= wait PPS, 4=error
driver: I2C_RCU
rw: variable #server variable, not linked to IO rw: variable #server variable, not linked to IO
dtype: uint8 dtype: uint8
dim: 32 dim: 1
- name: RCU_attenuator - name: RCU_attenuator
description: Attenuator before ADC description: Attenuator before ADC
...@@ -348,6 +347,7 @@ methods: ...@@ -348,6 +347,7 @@ methods:
driver: I2C_RCU driver: I2C_RCU
hidden: True hidden: True
instructions: instructions:
- RCU_state: 2
- RCU_IO1_GPIO1: Update - RCU_IO1_GPIO1: Update
- RCU_IO1_GPIO2: Update - RCU_IO1_GPIO2: Update
- RCU_IO2_GPIO1: Update - RCU_IO2_GPIO1: Update
...@@ -360,11 +360,16 @@ methods: ...@@ -360,11 +360,16 @@ methods:
# - IO3.GPIO1: Update # - IO3.GPIO1: Update
# - IO3.GPIO2: Update # - IO3.GPIO2: Update
- IO3.CONF1: Update - IO3.CONF1: Update
- RCU_mask: True
- RCU_update: 0
- RCU_mask: False
- RCU_state: 1
- name: RCU_on - name: RCU_on
driver: I2C_RCU driver: I2C_RCU
mask: RCU_mask mask: RCU_mask
instructions: instructions:
- RCU_state: 2
- IO2.CONF1: 0 #Set device register, can also specify a register adress direction e.g. OIO2.0: 0 - IO2.CONF1: 0 #Set device register, can also specify a register adress direction e.g. OIO2.0: 0
- IO2.GPIO1: 0x4A - IO2.GPIO1: 0x4A
- IO2.GPIO2: 0x55 - IO2.GPIO2: 0x55
...@@ -385,21 +390,18 @@ methods: ...@@ -385,21 +390,18 @@ methods:
# - ADC2_on: 0 # - ADC2_on: 0
# - WAIT: 500 #ms to wait # - WAIT: 500 #ms to wait
- RCU_update: 0 - RCU_update: 0
- RCU_state: 1
- name: RCU_update - name: RCU_update
driver: I2C_RCU driver: I2C_RCU
mask: RCU_mask mask: RCU_mask
debug: True debug: True
instructions: instructions:
# - RCU_ADC_lock: Update
- RCU_IO1_GPIO1 : Update
- RCU_IO1_GPIO2 : Update
- RCU_IO2_GPIO1 : Update
- RCU_IO2_GPIO2 : Update
- RCU_IO3_GPIO1 : Update
- RCU_IO3_GPIO2 : Update
- RCU_Pwr_dig: Update #Read value and update the OPC-UA variable - RCU_Pwr_dig: Update #Read value and update the OPC-UA variable
- RCU_ADC_lock: Update - RCU_ADC_lock: Update
- RCU_Pwr_dig: Update
- RCU_ID: Update
- RCU_version: Update
- name: ADC1_on - name: ADC1_on
...@@ -430,5 +432,7 @@ methods: ...@@ -430,5 +432,7 @@ methods:
driver: I2C_RCU driver: I2C_RCU
mask: RCU_mask mask: RCU_mask
instructions: instructions:
- RCU_state: 3
- HB_UC_update.wait_pps : 1 - HB_UC_update.wait_pps : 1
- RCU_state: 1
...@@ -200,7 +200,7 @@ class i2c_array(i2c_dev): ...@@ -200,7 +200,7 @@ class i2c_array(i2c_dev):
value[:]=value2[:]; value[:]=value2[:];
if devreg['store']: if devreg['store']:
storearray=self.getstorearray(devreg,len(value)); storearray=self.getstorearray(devreg,len(value));
storearray[self.RCUi]=value[:] storearray[self.RCUi]=value[0]
logging.debug(str(("Store buffer",self.RCUi,value[0]))) logging.debug(str(("Store buffer",self.RCUi,value[0])))
# print("Stored values:",self.getstorearray(devreg)) # print("Stored values:",self.getstorearray(devreg))
if (width!=l1*8) or (bitoffset>0): if (width!=l1*8) or (bitoffset>0):
......
...@@ -253,7 +253,7 @@ class i2c_dev(hwdev): ...@@ -253,7 +253,7 @@ class i2c_dev(hwdev):
if devreg['store']: if devreg['store']:
devreg['storeval']=value[0]; devreg['storeval']=value[0];
l1=int(np.floor((width+bitoffset+7)/8)) l1=int(np.floor((width+bitoffset+7)/8))
print(value[0],width,bitoffset,l1) #print(value[0],width,bitoffset,l1)
if (width!=l1*8) or (bitoffset>0): if (width!=l1*8) or (bitoffset>0):
if (width<8): if (width<8):
for i in range(len(value)): for i in range(len(value)):
......
...@@ -47,8 +47,8 @@ class yamlreader(yamlconfig): ...@@ -47,8 +47,8 @@ class yamlreader(yamlconfig):
var1=AddVarR(name+"_R",varvalue2,v['id'],v.get('debug')) var1=AddVarR(name+"_R",varvalue2,v['id'],v.get('debug'))
v['OPCR']=var1 v['OPCR']=var1
logging.debug("Var added:"+name+"_R") logging.debug("Var added:"+name+"_R")
self.server.readvar(v['id']) # self.server.readvar(v['id'])
time.sleep(0.1); # time.sleep(0.1);
# Inst=Vars.Instr(Vars.DevType.VarUpdate,v,dim2,varvalue2) # Inst=Vars.Instr(Vars.DevType.VarUpdate,v,dim2,varvalue2)
# Q1.put(Inst) # Q1.put(Inst)
...@@ -179,7 +179,12 @@ class yamlreader(yamlconfig): ...@@ -179,7 +179,12 @@ class yamlreader(yamlconfig):
if dtype=="double": if dtype=="double":
scale=float(v.get('scale',1.)) scale=float(v.get('scale',1.))
data2=[(d*scale) for d in data2] data2=[(d*scale) for d in data2]
data3=v['OPCR'].get_value(); var1=v.get('OPCR')
if not(var1): var1=v.get('OPCW')
if not(var1):
logging.warn("OPC variable not found!!");
return;
data3=var1.get_value();
# print("OPCset",v['name'],data3,mask) # print("OPCset",v['name'],data3,mask)
if mask: #Only update masked values if mask: #Only update masked values
step=len(data2)//len(mask) step=len(data2)//len(mask)
...@@ -190,7 +195,7 @@ class yamlreader(yamlconfig): ...@@ -190,7 +195,7 @@ class yamlreader(yamlconfig):
data3=data2; data3=data2;
if len(data3)==1: data3=data3[0]; if len(data3)==1: data3=data3[0];
logging.info(str(("OPCset",v['name'],data3))) logging.info(str(("OPCset",v['name'],data3)))
v['OPCR'].set_value(data3); var1.set_value(data3);
def Monitor(self): def Monitor(self):
T1=self.monitorvar.get_value()*10; T1=self.monitorvar.get_value()*10;
......
...@@ -37,7 +37,7 @@ var1=RCU_conf.getvarid('CLK_I2C_OK') ...@@ -37,7 +37,7 @@ var1=RCU_conf.getvarid('CLK_I2C_OK')
#RCU_I2C.setvar(var1,[True]) #RCU_I2C.setvar(var1,[True])
var1=RCU_conf.getvarid('CLK_PLL_locked') var1=RCU_conf.getvarid('CLK_PLL_locked')
#RCU_I2C.readvar(var1,[]) RCU_I2C.readvar(var1,[])
var1=RCU_conf.getvarid('CLK_PLL_locked_SPI') var1=RCU_conf.getvarid('CLK_PLL_locked_SPI')
...@@ -45,7 +45,6 @@ var1=RCU_conf.getvarid('CLK_PLL_locked_SPI') ...@@ -45,7 +45,6 @@ var1=RCU_conf.getvarid('CLK_PLL_locked_SPI')
RCU_I2C.readvar(var1,[]) RCU_I2C.readvar(var1,[])
#var1=RCU_conf.getmethodid('CLK_on'); #var1=RCU_conf.getmethodid('CLK_on');
var1=RCU_conf.getmethodid('CLK_PLL_setup'); var1=RCU_conf.getmethodid('CLK_PLL_setup');
#RCU_I2C.callmethod(var1,[]) #RCU_I2C.callmethod(var1,[])
......
...@@ -11,7 +11,7 @@ import sys ...@@ -11,7 +11,7 @@ import sys
import signal import signal
from yamlconfig import Find; from yamlconfig import Find;
logging.basicConfig(level="DEBUG",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s') logging.basicConfig(level="INFO",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s')
RunTimer=True; RunTimer=True;
#def signal_handler(sig, frame): #def signal_handler(sig, frame):
...@@ -44,6 +44,10 @@ if False: ...@@ -44,6 +44,10 @@ if False:
N=32; N=32;
mask=[i<8 for i in range(N)]; mask=[i<8 for i in range(N)];
data=[0]*N; data=[0]*N;
elif True:
var1=RCU_conf.getvarid('RCU_ADC_lock');
N=32*3;
mask=[i<5*3 for i in range(N)];
elif False: elif False:
var1=RCU_conf.getvarid('RCU_attenuator'); var1=RCU_conf.getvarid('RCU_attenuator');
N=32*3; N=32*3;
...@@ -59,7 +63,7 @@ else: ...@@ -59,7 +63,7 @@ else:
#print("mask=",mask); #print("mask=",mask);
#print("data=",data); #print("data=",data);
#RCU_I2C.setvar(var1,data,mask); #RCU_I2C.setvar(var1,data,mask);
#RCU_I2C.readvar(var1,mask); RCU_I2C.readvar(var1,mask);
var1=RCU_conf.getvarid('RCU_temperature'); var1=RCU_conf.getvarid('RCU_temperature');
N=32; N=32;
...@@ -77,7 +81,7 @@ mask=[i<7 for i in range(N)]; ...@@ -77,7 +81,7 @@ mask=[i<7 for i in range(N)];
#RCU_I2C.callmethod(var1,mask) #RCU_I2C.callmethod(var1,mask)
time.sleep(2); time.sleep(5);
while RCU_I2C.data_waiting(): while RCU_I2C.data_waiting():
varid,data,mask=RCU_I2C.readdata() varid,data,mask=RCU_I2C.readdata()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment