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

Added debug OPC-UA object

parent 0b9610bc
No related branches found
No related tags found
1 merge request!11Pypcc2
......@@ -56,3 +56,5 @@ variables:
rw: variable #server RW variable, not linked to IO
dtype: boolean
methods:
- name: CLK_on
\ No newline at end of file
......@@ -236,6 +236,7 @@ variables:
dtype: uint8
dim: 96
mask: Ant_mask
debug: True
- name: RCU_GPIO2
driver: I2C_RFCHAIN
......@@ -245,6 +246,7 @@ variables:
dtype: uint8
dim: 96
mask: Ant_mask
debug: True
- name: RCU_LED0
driver: I2C_RCU
......@@ -342,6 +344,7 @@ variables:
methods:
- name: RCU_update
mask: RCU_mask
debug: True
instructions:
- RCU_ADC_lock: Update
......@@ -368,14 +371,16 @@ methods:
- WAIT: 500 #ms to wait
- RCU_ADC_lock: Update
- name: ADC1_on
rw: hidden
debug: True
# rw: hidden
instructions:
- ADC1.JESD_control1 : 0x14
# - ADC1.SYNC_control: 1 #Setup ADCs
# - ADC1.CML_level: 0x7
- ADC1.Update: 1 #Needed to update ADC registers
- name: ADC2_on
rw: hidden
debug: True
# rw: hidden
instructions:
- ADC2.JESD_control1 : 0x14
# - ADC2.SYNC_control: 1 #Setup ADCs
......
......@@ -56,28 +56,31 @@ def AddVar(name,value):
myvar2.set_writable()
return myvar2
def AddVarR(vname,varvalue2,v):
myvar = PCCobj.add_variable(idx, vname, varvalue2)
def AddVarR(vname,varvalue2,v,debug):
obj=(DEBUGobj if debug else PCCobj)
myvar = obj.add_variable(idx, vname, varvalue2)
logging.info(str(("Variable added: ",vname,len(varvalue2))))
Vars_R[myvar.nodeid.Identifier]=[vname,myvar.get_data_value(),varvalue2,v]
return myvar
def AddVarW(vname,varvalue2,v,Q1):
def AddVarW(vname,varvalue2,v,Q1,debug):
logging.info(str(("Variable added: ",vname)))#,'=',varvalue2)
myvar2 = PCCobj.add_variable(idx, vname, varvalue2)
obj=(DEBUGobj if debug else PCCobj)
myvar2 = obj.add_variable(idx, vname, varvalue2)
myvar2.set_writable()
Vars_W[myvar2.nodeid.Identifier]=[vname,myvar2.get_data_value(),v,Q1]
handle = sub.subscribe_data_change(myvar2)
return myvar2
def Addmethod(vname,v,Q1):
myvar = PCCobj.add_method(idx, vname, lambda ObjectId,name=vname,inst=v,Q1=Q1 : CallMethod(ObjectId,name,inst,Q1), [],[] )
def Addmethod(vname,v,Q1,debug):
obj=(DEBUGobj if debug else PCCobj)
myvar = obj.add_method(idx, vname, lambda ObjectId,name=vname,inst=v,Q1=Q1 : CallMethod(ObjectId,name,inst,Q1), [],[] )
logging.info(str(("AddMethod:",vname)))
def InitServer(port=4840):
# setup our server
global server,running,PCCobj,idx,sub;
global server,running,PCCobj,DEBUGobj,idx,sub;
server = Server()
server.set_endpoint("opc.tcp://0.0.0.0:{}/PCC/".format(port))
......@@ -89,6 +92,7 @@ def InitServer(port=4840):
# populating our address space
PCCobj = objects.add_object(idx, "PCC")
DEBUGobj = PCCobj.add_object(idx, "DEBUG")
# self.PCCobj=PCCobj
# starting!
......
......@@ -40,7 +40,7 @@ class yamlreader(yamlconfig):
elif datatype=='string': varvalue2=dim1*[""]
# print(len(varvalue2),varvalue2)
if v.get('rw') in ['ro','rw']:
var1=AddVarR(name+"_R",varvalue2,v['id'])
var1=AddVarR(name+"_R",varvalue2,v['id'],v.get('debug'))
v['OPCR']=var1
print("Var added:"+name+"_R")
self.server.readvar(v['id'])
......@@ -49,7 +49,7 @@ class yamlreader(yamlconfig):
# Q1.put(Inst)
if v.get('rw') in ['wo','rw','variable']:
var1=AddVarW(name+"_RW",varvalue2,v['id'],self)
var1=AddVarW(name+"_RW",varvalue2,v['id'],self,v.get('debug'))
v['OPCW']=var1
print("Var added:"+name+"_RW")
for v in self.conf['variables']:
......@@ -66,7 +66,7 @@ class yamlreader(yamlconfig):
if v.get('rw','')=='hidden': continue;
print(v)
# Inst1=Vars.Instr(Vars.DevType.Instr,v,0,[])
Addmethod(v['name'],v['id'],self)
Addmethod(v['name'],v['id'],self,v.get('debug'))
mask=v.get('mask');
if not(mask): continue;
mask=Find(self.conf['variables'],'name',mask)
......
......@@ -14,7 +14,7 @@ parser = argparse.ArgumentParser()
parser.add_argument("-s", "--simulator", help="Do not connect to I2c, but simulate behaviour.", action="store_true")
parser.add_argument("-p", "--port", help="Port number to listen on [%(default)s].", type=int, default=4842)
parser.add_argument("-l", "--loglevel", help="Log level [%(default)s].", type=str, choices=["DEBUG","INFO","WARNING","ERROR"], default="INFO")
#parser.add_argument("-c", "--config", help="YAML config file.",type=str, action="store_true",default='RCU')
parser.add_argument("-c", "--config", help="YAML config files, comma seperated [%(default)s]",type=str, default='RCU')
args = parser.parse_args()
# set log level
......@@ -34,8 +34,9 @@ signal.signal(signal.SIGINT, signal_handler)
#Start i2c processes as soon as possible to have minimum duplication
logging.info("Start I2C processes")
I2Cports=['UNB2']
#I2Cports=[]
#I2Cports=['UNB2','RCU','CLK']
#I2Cports=['RCU']
I2Cports=[x for x in args.config.split(',')]
threads=[]
I2Cclients=[]
for name in I2Cports:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment