name='RECVTR_LB_TEST' #YAML config file with all register values etc import logging #import argparse from pypcc.opcuaserv import opcuaserv from pypcc.opcuaserv import i2client from pypcc.opcuaserv import yamlreader #from opcuaserv import pypcc2 from pypcc.i2cserv import i2cthread #import threading import time import sys import signal from pypcc.yamlconfig import Find; import pypcc.yamlconfig as yc from datetime import datetime from pypcc.opcuaserv.yamlreader import byte2var,var2byte class i2cdirect(): def __init__(self,name): self.conf=yc.yamlconfig(name) self.conf.linkdevices() self.conf.loaddrivers() self.conf.linkdrivers() def GetVal(self,name,N=1): varid=self.conf.getvarid(name); if varid is None: logging.error("Variable "+name+" not found") return None,None var1=self.conf.getvars()[varid] drv=var1.get('drivercls'); data=drv.OPCUAReadVariable(varid,var1,[]) data=data[0].data return byte2var(var1,data),var1 def SetVal(self,name,data): varid=self.conf.getvarid(name); if varid is None: logging.error("Variable "+name+" not found") return None var1=self.conf.getvars()[varid] drv=var1.get('drivercls'); data2=var2byte(var1,data) return drv.OPCUASetVariable(varid,var1,data2,[]) def SetRegister(self,regname,value): methodid=self.conf.getmethodid("RECVTR_Init"); var1=self.conf.getmethod(methodid) drv=var1.get('drivercls'); v1=self.conf.getdevreg(regname) drv2=v1.get('drivercls') mask=[] if drv: drv.Setdevreg(v1,value,mask) elif drv2: drv2.Setdevreg(v1,value,mask) else: logging.warn("Driver not specified for instruction"+key)