Функция чтения не вызывается в коде ExampleNamespace
Я запустил пример ExampleNamespace. Я могу просмотреть узел и правильно вернуть все узлы. Я могу запустить пример чтения клиента в порядке.
Но когда я запускаю клиент, чтобы прочитать значение HelloWorld.Dynamic.Double
Время ожидания истекло, и функция чтения переопределения в ExampleNamespace не вызывается.
// synchronous read request via VariableNode
NodeId nodeId = new NodeId(2, "HellowWorld.Dynamic.Double");
VariableNode node= client.getAddressSpace().createVariableNode(nodeId);
CompletableFuture<DataValue> datavalue = client.readValue(1.0, TimestampsToReturn.Source, nodeId);
DataValue value = datavalue.get();
Я забыл что-нибудь сделать?
1 ответ
Во второй строке вашего кода вы устанавливаете экземпляр для node
переменная как VariableNode
введите, сделав звонок через client
объект, который выглядит правильно.
Тем не менее, вы никогда не используете новый node
переменная позже. Следующая строка кода все еще пытается readValue
через то же самое client
объект. Я могу рекомендовать вам заменить client
с node
переменная следующим образом:
CompletableFuture<DataValue> datavalue = node.readValue(1.0, TimestampsToReturn.Source, nodeId);
Более простой способ сделать ту же операцию чтения может быть следующим:
// synchronous read request via VariableNode object (node)
VariableNode node = client.getAddressSpace().createVariableNode(nodeId);
DataValue datavalue = node.readValue().get();