Функция чтения не вызывается в коде 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();
Другие вопросы по тегам