Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test_common.py 1.56 KiB
#Address="opc.tcp://odroidRCU2:4842/"
Address="opc.tcp://LTSpi:4842/"
import sys
sys.path.insert(0, "..")
import logging
import time

from opcua import Client
from opcua import ua
#import numpy as np

def connect():
    global client,root
#    logging.basicConfig(level=logging.INFO)
    logging.basicConfig(level=logging.WARN)
#    client = Client("opc.tcp://localhost:4840/freeopcua/server/")
    client = Client(Address)
    client.connect()
    client.load_type_definitions()  # load definition of server specific structures/extension objects
    root = client.get_root_node()
    return root

root=connect()

def disconnect():
    client.disconnect()

def get_value(name):
  var1 = root.get_child(["0:Objects", "2:PCC", "2:"+name])
  return var1.get_value()

def set_value(name,value):
  var1 = root.get_child(["0:Objects", "2:PCC", "2:"+name])
  var1.set_value(value)

def setRCUmask(rcu=[]):
    name="RCU_mask_RW"
    M=get_value(name)
    print(name," old:",M)
    M=[False for m in M]
    for r in rcu:
        M[r]=True
    set_value(name,M)
    print(name," new:",get_value(name))

def setAntmask(rcu=[],ant=[True,True,True]):
    name="Ant_mask_RW"
    M=get_value(name)
    print(name," old:",M)
    for i,j in enumerate(M):
      M[i]=False
    for r in rcu:
      for i in range(3):
         M[r*3+i]=ant[i]
    set_value(name,M)
    print(name," new:",get_value(name))

def callmethod(name):
          try:
            obj = root.get_child(["0:Objects", "2:PCC"])#
            return obj.call_method("2:"+name)
          except:
#            print("error")
            return None