示例中的节点值的数据类型为自定义的多层嵌套的结构体如下:
获取改结构体的成员值:
import opcua
from opcua import ua
from opcua.ua import uatypes
def user_defined_vars(value_dict, # 自定义数据类型的变量值
name_prefix, # 成员名前缀比如aa.bb
data_dict2, # 用于保存最终的结构体变量信息
class_name, # 结构体名
c, # 嵌套的层数
names_l, # 自定义数据类型名组成的列表
):
"""
获取将自定义的结构中的数据组成的字典
:param names_l: 自定义数据类型的名字组成的列表
:param value_dict: 自定义数据类型值,用Node.get_value获取
:param name_prefix: 成员名前缀比如aa.bb中的aa
:param data_dict2: 用于保存最终的结构体变量信息
:param class_name:
:param c: 结构体名
:return: {'BCJ.UU': [0, 'yyCJ', 'int', 36], 'BCJ.qq.bb': [1, 'aa', 'int', 0], 'BCJ.qq.hh.UU': [2, 'yyNJ', 'int', 0]}
'BCJ.qq.bb': [1, 'aa', 'int', 0]: 字典的Key是有变量名组成,Key对应的值为列表:[当前成员所在的嵌套层数, '结构体名', 元素的数据类型, 成员值]
"