Skip to content
Snippets Groups Projects
Select Git revision
  • 439267ae12dae315b05a9a40b32b5b745489f926
  • master default protected
  • dither_on_off_disabled
  • yocto
  • pypcc2
  • pypcc3
  • 2020-12-07-the_only_working_copy
  • v2.0
  • v1.0
  • v0.9
  • Working-RCU_ADC,ID
  • 2020-12-11-Holiday_Season_release
12 results

i2cdirect.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    i2cdirect.py 1.79 KiB
    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)