Я разрабатываю маршрут Apache Camel, который должен создать OPC UA Server с тремя переменными. Маршрут также должен инициализировать эти три значения.
Я попытался сделать это так, как описано в официальной документации Apache Camel. Я могу подключиться к серверу с любым клиентом OPC UA и увидеть значения.
Это код моего маршрута:
<route id="opcuaserver">
<from uri="timer://runOnce?repeatCount=1&delay=5000"/>
<to uri="milo-server:velocity"/>
<to uri="milo-server:laufmeter"/>
<to uri="milo-server:lfm_reset"/>
<!-- INITIALIZE OPCUA SERVER VARIABLES -->
<setHeader headerName="serverUrl">
<simple>opc.tcp://NBTC363:12685</simple>
</setHeader>
<setBody>
<simple>
ns=2;s=items-velocity?0
ns=2;s=items-laufmeter?0
ns=2;s=items-lfm_reset?0
</simple>
</setBody>
<bean ref="OpcuaBean" method="doWriteOneOrMany"/>
<log message="${body}"/>
<to uri="mock:opcuaInitResult"/>
</route>
Информация в заголовке и теле обрабатывается моим компонентом в соединение с сервером и список идентификаторов узлов и их желаемых значений. Этот список затем используется для окончательной записи желаемых значений на сервер. После того как процесс записи завершен, бин записывает результирующие коды состояния в журнал верблюдов.
Результатом, который я ожидал, является успешная запись на сервер с сообщением StatusCode, например:
[StatusCode{name=Good, value=0, quality=good}
Но на самом деле значение на сервере по-прежнему равно нулю с типом данных, равным нулю, что приводит к следующему StatusCode:
[StatusCode{name=Good, value=0x00000000, quality=good}
Я знаю, что это означает, что я все сделал правильно на стороне клиента, поэтому мне интересно, сделал ли я что-то не так на стороне сервера.
Я следовал примерам серверного компонента camel opc и не могу найти какие-либо параметры или параметры, которые будут полезны для меня в этом выпуске.