我正在尝试将FreeOpcUa用作与服务器签名和加密连接的测试客户端。此设置运行良好,我可以访问现有节点(get_value)。我的服务器提供测试数据作为数组,但我无法访问数据进行写入(set_value)。我检查过这些例子并搜索了网,但直到现在还没有找到解决方案。应该是这样的:
...
var = client.get_node(ua.NodeId(.., ..))
data = var.get_value()
for x in range (32):
...
var.set_value(data[x])
...
我不是python的专家,所以我的问题:有人能告诉我一个如何让这个工作的例子吗?我知道我必须注意排名和数组维度,但不知道如何处理这个问题。谢谢!...
#set node value
print("Data will be read ...")
var = client.get_node(ua.NodeId(3, 4))
data = var.get_value()
print(data)
for x in range (32):
data[x] = x
print("Data will be set ...")
var.set_value(data)
print(var.get_value())
Data will be read ...
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Data will be set ...
[0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0]
我没有收到错误......但即使不是我预期的结果。测试是使用32个UInt32元素,但看起来set_value()访问不同的东西?