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

Add monitoring

parent 057a82bf
No related branches found
No related tags found
1 merge request!11Pypcc2
......@@ -266,6 +266,7 @@ variables:
rw: ro
dtype: double
dim: 32
monitor: true
- name: RCU_Pwr_dig
description: Enable LDOs
......@@ -318,6 +319,7 @@ variables:
dtype: uint8
dim: 96
mask: Ant_mask
monitor: true
- name: RCU_dth1_freq
driver: I2C_RCU
......
......@@ -152,6 +152,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 2
monitor: true
- name: [UNB2_POL_QSFP_N01_VOUT,UNB2_POL_QSFP_N01_IOUT,UNB2_POL_QSFP_N01_TEMP,UNB2_POL_QSFP_N23_VOUT,UNB2_POL_QSFP_N23_IOUT,UNB2_POL_QSFP_N23_TEMP]
driver: switch_PS
......@@ -162,6 +163,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 2
monitor: true
- name: [UNB2_POL_SWITCH_1V2_VOUT,UNB2_POL_SWITCH_1V2_IOUT,UNB2_POL_SWITCH_1V2_TEMP,UNB2_POL_SWITCH_PHY_VOUT,UNB2_POL_SWITCH_PHY_IOUT,UNB2_POL_SWITCH_PHY_TEMP]
driver: switch_PS
......@@ -172,6 +174,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 2
monitor: true
- name: [UNB2_POL_CLOCK_VOUT,UNB2_POL_CLOCK_IOUT,UNB2_POL_CLOCK_TEMP]
driver: switch_PS
......@@ -182,6 +185,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 2
monitor: true
##Local MP per FPGA node
- name: UNB2_FPGA_DDR4_SLOT_TEMP
......@@ -194,6 +198,7 @@ variables:
dtype: double
scale: 0.0625
dim: 16
monitor: true
- name: UNB2_FPGA_DDR4_SLOT_PART_NUMBER
driver: switch_DDR4
......@@ -203,6 +208,7 @@ variables:
rw: ro
dtype: string
dim: 16
monitor: true
- name: [UNB2_POL_FPGA_CORE_VOUT,UNB2_FPGA_POL_CORE_IOUT,UNB2_FPGA_POL_CORE_TEMP,UNB2_FPGA_POL_ERAM_VOUT,UNB2_FPGA_POL_ERAM_IOUT,UNB2_FPGA_POL_ERAM_TEMP]
driver: switch_FPGA_PS
......@@ -213,6 +219,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 8
monitor: true
- name: [UNB2_FPGA_POL_RXGXB_VOUT,UNB2_FPGA_POL_RXGXB_IOUT,UNB2_FPGA_POL_RXGXB_TEMP,UNB2_FPGA_POL_TXGXB_VOUT,UNB2_FPGA_POL_TXGXB_IOUT,UNB2_POL_FPGA_TXGXB_TEMP]
driver: switch_FPGA_PS
......@@ -223,6 +230,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 8
monitor: true
- name: [UNB2_FPGA_POL_HGXB_VOUT,UNB2_FPGA_POL_HGXB_IOUT,UNB2_FPGA_POL_HGXB_TEMP,UNB2_FPGA_POL_PGM_VOUT,UNB2_FPGA_POL_PGM_IOUT,UNB2_FPGA_POL_PGM_TEMP]
driver: switch_FPGA_PS
......@@ -233,6 +241,7 @@ variables:
dtype: double
scale: 1.2207e-4 #2^-13
dim: 8
monitor: true
......@@ -247,6 +256,7 @@ variables:
dtype: double
scale: 0.0625 #TBC
dim: 48
monitor: true
- name: UNB2_FPGA_QSFP_CAGE_LOS
description: Bits for 4 TX, 4 RX channels
......@@ -257,6 +267,7 @@ variables:
rw: ro
dtype: uint8
dim: 48
monitor: true
methods:
......
......@@ -28,6 +28,9 @@ class i2client():
Data=OPCUAset(id1,InstType.varSet,data,mask)
self.Qout.put(Data);
def QoutLength(self):
return self.Qout.qsize()
def callmethod(self,id1,mask=[]):
Data=OPCUAset(id1,InstType.method,[],mask)
self.Qout.put(Data);
......
......@@ -68,6 +68,7 @@ def AddVarW(vname,varvalue2,v,Q1,debug):
obj=(DEBUGobj if debug else PCCobj)
myvar2 = obj.add_variable(idx, vname, varvalue2)
myvar2.set_writable()
if v:
Vars_W[myvar2.nodeid.Identifier]=[vname,myvar2.get_data_value(),v,Q1]
handle = sub.subscribe_data_change(myvar2)
return myvar2
......
......@@ -19,11 +19,14 @@ def int2bytes(i):
class yamlreader(yamlconfig):
def __init__(self,i2cserver,yamlfile='RCU'):
self.yamlfile=yamlfile;
yamlconfig.__init__(self,yamlfile)
self.server=i2cserver;
self.timecount=0;
self.monitorvarcnt=0;
def AddVars(self,AddVarR,AddVarW):
self.monitorvar=AddVarW(self.yamlfile+"_monitor_rate_RW",60,None,None,None)
for v in self.conf['variables']:
# print(v)
dim1=v.get('dim',1);
......@@ -181,3 +184,19 @@ class yamlreader(yamlconfig):
logging.debug(str(("OPCset",v['name'],data3)))
v['OPCR'].set_value(data3);
def Monitor(self):
T1=self.monitorvar.get_value()*10;
if T1<=0: return;
self.timecount+=1;
while self.timecount>=T1:
if self.server.QoutLength()>3: return;
v=self.conf['variables'][self.monitorvarcnt];
if v.get('monitor'):
mask=(v['maskOPC'].get_value() if v.get('maskOPC') else [])
# print("monitor",v['name'],mask)
self.server.readvar(self.monitorvarcnt,mask=mask)
self.monitorvarcnt+=1;
if self.monitorvarcnt>=len(self.conf['variables']):
self.monitorvarcnt=0;
self.timecount=0;
......@@ -49,6 +49,7 @@ for name in I2Cports:
#Initialise OPCUA server and load variables
logging.info("Initialised OPC-UA Server")
configs=[]
if not(args.test):
opcuaserv.InitServer(port=args.port)
logging.info("Load OPCUA variables & start i2c listing thread")
......@@ -57,6 +58,7 @@ if not(args.test):
RCU_conf=yamlreader.yamlreader(RCU_I2C,yamlfile=name)
RCU_conf.AddVars(opcuaserv.AddVarR,opcuaserv.AddVarW)
RCU_conf.AddMethod(opcuaserv.Addmethod)
configs.append(RCU_conf);
thread2=threading.Thread(target=RCU_conf.getvar); #Thread on OPC-UA side of pipe
thread2.start()
......@@ -72,7 +74,9 @@ if False:
try:
while RunTimer:
time.sleep(1)
time.sleep(0.1);
for c in configs:
c.Monitor();
finally:
if not(args.test):
logging.info("Stop OPC-UA server")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment