我的OPC-UA服务器中有两个相同设备的表示。我有一个节点代表一个有八个位置的led阵列,另一个是一个一字节的led字
我有一个方法,随机选择两个节点中的一个,并随机更改其值
一旦更改,将触发数据更改事件。现在我必须使这两个值相等,使它们相同。但更改会再次触发数据更改事件。等等,等等。。。我的程序进入了一个永无止境的循环
def _make_variables_equal(chaning_node, val):
if chaning_node == led_array and isinstance(val, list):
led_word.set_value(_boolean_list_to_int(val))
elif chaning_node == led_word and isinstance(val, int):
led_array.set_value(_int_to_boolean_list(val))
else:
print("[SERVER] FATAL ERROR ON _make_variables_equal. Unexpected chaning_node.")
class SubHandler(object):
def datachange_notification(self, node, val, data):
# New data change event
_make_variables_equal(node, val)
led_array = tablero.add_variable(idx, "led_array", ua.Variant([
False,
False,
False,
False,
False,
False,
False,
False,], ua.VariantType.Boolean))
led_word = tablero.add_variable(idx, "led_word", 0, ua.VariantType.Byte)
handler = SubHandler()
sub = server.create_subscription(500, handler)
handle = sub.subscribe_data_change([led_array, led_word])
目前没有回答
相关问题 更多 >
编程相关推荐