Почему ключ dataChangeFilterDeadbandValue не работает при использовании клиента Apache Camel OPC UA?

Я использую клиентский компонент Apache Camel OPC UA для тестирования фильтра изменения данных со значением зоны нечувствительности для получения значения одного тега от сервера Industrial Gateway OPCUA.

Текущая версия загрузки Spring и компонента Camel-Milo:

implementation group: 'org.apache.camel', name: 'camel-milo', version: '3.22.2'
implementation group: 'org.apache.camel.springboot', name: 'camel-spring-boot-starter', version: '4.4.2'

Чтение документации клиента Apache Camel OPC UA для применения функции фильтра мертвой зоны. Если я хорошо понял, мне нужно использовать следующий ключ свойств:

  1. dataChangeFilterTrigger = StatusValue (я использую statusValue для проверки значения)
  2. dataChangeFilterDeadbandValue = xx (это зависит от зоны нечувствительности, которую я хочу применить к тегу)

Мои выполненные тесты говорят мне, что фильтр мертвой зоны не работает, как я показал в следующих тестах:

Базовый маршрут со значениями заполнителей, замененными на выполненный идентификатор теста:

from("milo-client:opc.tcp://127.0.0.1:49310?
keyStoreUrl=file:C:\\Temp\\application\\certificate\\clientkeystore.jks
&keyPassword=123456
&keyStorePassword=123456
&applicationUri=urn:8409:test:camelopcua
&applicationName=camelopcua&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_BP)
&dataChangeFilterDeadbandValue=@placeholderTest_x@
&dataChangeFilterTrigger=@placeholderTest_x@
&monitorFilterType=dataChangeFilter")
.log("**** ${body}")
.routeId("routeDeadband");

Тест_1)

dataChangeFilterTrigger = СтатусЗначение

dataChangeFilterDeadbandValue = 0,001

2024-07-04 06:36:51,852 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486117072252, javaDate=Thu Jul 04 06:36:51 UTC 2024}, serverTime=DateTime{utcTime=133645486117072252, javaDate=Thu Jul 04 06:36:51 UTC 2024}}2024-07-04 06:36:52,853 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.9666667}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486126951326, javaDate=Thu Jul 04 06:36:52 UTC 2024}, serverTime=DateTime{utcTime=133645486126951326, javaDate=Thu Jul 04 06:36:52 UTC 2024}}2024-07-04 06:36:53,849 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486136802804, javaDate=Thu Jul 04 06:36:53 UTC 2024}, serverTime=DateTime{utcTime=133645486136802804, javaDate=Thu Jul 04 06:36:53 UTC 2024}}2024-07-04 06:36:54,844 milo-shared-thread-pool-2 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.05}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486146648052, javaDate=Thu Jul 04 06:36:54 UTC 2024}, serverTime=DateTime{utcTime=133645486146648052, javaDate=Thu Jul 04 06:36:54 UTC 2024}}2024-07-04 06:36:55,854 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.942857}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486156406461, javaDate=Thu Jul 04 06:36:55 UTC 2024}, serverTime=DateTime{utcTime=133645486156406461, javaDate=Thu Jul 04 06:36:55 UTC 2024}}2024-07-04 06:36:56,849 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.9666667}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486166262211, javaDate=Thu Jul 04 06:36:56 UTC 2024}, serverTime=DateTime{utcTime=133645486166262211, javaDate=Thu Jul 04 06:36:56 UTC 2024}}2024-07-04 06:36:57,851 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486171756029, javaDate=Thu Jul 04 06:36:57 UTC 2024}, serverTime=DateTime{utcTime=133645486171756029, javaDate=Thu Jul 04 06:36:57 UTC 2024}}2024-07-04 06:36:58,844 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486187076878, javaDate=Thu Jul 04 06:36:58 UTC 2024}, serverTime=DateTime{utcTime=133645486187076878, javaDate=Thu Jul 04 06:36:58 UTC 2024}}2024-07-04 06:36:59,849 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486196926821, javaDate=Thu Jul 04 06:36:59 UTC 2024}, serverTime=DateTime{utcTime=133645486196926821, javaDate=Thu Jul 04 06:36:59 UTC 2024}}2024-07-04 06:37:00,851 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486206806697, javaDate=Thu Jul 04 06:37:00 UTC 2024}, serverTime=DateTime{utcTime=133645486206806697, javaDate=Thu Jul 04 06:37:00 UTC 2024}}2024-07-04 06:37:01,846 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.05}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486216593861, javaDate=Thu Jul 04 06:37:01 UTC 2024}, serverTime=DateTime{utcTime=133645486216593861, javaDate=Thu Jul 04 06:37:01 UTC 2024}}
2024-07-04 06:37:02,847 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486222116969, javaDate=Thu Jul 04 06:37:02 UTC 2024}, serverTime=DateTime{utcTime=133645486222116969, javaDate=Thu Jul 04 06:37:02 UTC 2024}}
2024-07-04 06:37:03,849 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486236275381, javaDate=Thu Jul 04 06:37:03 UTC 2024}, serverTime=DateTime{utcTime=133645486236275381, javaDate=Thu Jul 04 06:37:03 UTC 2024}}
2024-07-04 06:37:04,849 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486247209000, javaDate=Thu Jul 04 06:37:04 UTC 2024}, serverTime=DateTime{utcTime=133645486247209000, javaDate=Thu Jul 04 06:37:04 UTC 2024}}
2024-07-04 06:37:05,853 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486257072613, javaDate=Thu Jul 04 06:37:05 UTC 2024}, serverTime=DateTime{utcTime=133645486257072613, javaDate=Thu Jul 04 06:37:05 UTC 2024}}
2024-07-04 06:37:06,851 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486266939791, javaDate=Thu Jul 04 06:37:06 UTC 2024}, serverTime=DateTime{utcTime=133645486266939791, javaDate=Thu Jul 04 06:37:06 UTC 2024}}
2024-07-04 06:37:07,848 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486276787705, javaDate=Thu Jul 04 06:37:07 UTC 2024}, serverTime=DateTime{utcTime=133645486276787705, javaDate=Thu Jul 04 06:37:07 UTC 2024}}
2024-07-04 06:37:08,846 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645486286565108, javaDate=Thu Jul 04 06:37:08 UTC 2024}, serverTime=DateTime{utcTime=133645486286565108, javaDate=Thu Jul 04 06:37:08 UTC 2024}}

Тест_2)

dataChangeFilterTrigger = СтатусЗначение

dataChangeFilterDeadbandValue = 0,01

2024-07-04 06:34:09,570 milo-shared-thread-pool-2 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484491791570, javaDate=Thu Jul 04 06:34:09 UTC 2024}, serverTime=DateTime{utcTime=133645484491791570, javaDate=Thu Jul 04 06:34:09 UTC 2024}}
2024-07-04 06:34:10,573 milo-shared-thread-pool-2 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484501646388, javaDate=Thu Jul 04 06:34:10 UTC 2024}, serverTime=DateTime{utcTime=133645484501646388, javaDate=Thu Jul 04 06:34:10 UTC 2024}}
2024-07-04 06:34:11,569 milo-shared-thread-pool-2 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484511409944, javaDate=Thu Jul 04 06:34:11 UTC 2024}, serverTime=DateTime{utcTime=133645484511409944, javaDate=Thu Jul 04 06:34:11 UTC 2024}}
2024-07-04 06:34:12,568 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484521286485, javaDate=Thu Jul 04 06:34:12 UTC 2024}, serverTime=DateTime{utcTime=133645484521286485, javaDate=Thu Jul 04 06:34:12 UTC 2024}}
2024-07-04 06:34:13,570 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484531171024, javaDate=Thu Jul 04 06:34:13 UTC 2024}, serverTime=DateTime{utcTime=133645484531171024, javaDate=Thu Jul 04 06:34:13 UTC 2024}}
2024-07-04 06:34:14,567 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484541032215, javaDate=Thu Jul 04 06:34:14 UTC 2024}, serverTime=DateTime{utcTime=133645484541032215, javaDate=Thu Jul 04 06:34:14 UTC 2024}}
2024-07-04 06:34:15,566 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484550859004, javaDate=Thu Jul 04 06:34:15 UTC 2024}, serverTime=DateTime{utcTime=133645484550859004, javaDate=Thu Jul 04 06:34:15 UTC 2024}}
2024-07-04 06:34:16,570 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484561764724, javaDate=Thu Jul 04 06:34:16 UTC 2024}, serverTime=DateTime{utcTime=133645484561764724, javaDate=Thu Jul 04 06:34:16 UTC 2024}}
2024-07-04 06:34:17,571 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484571580985, javaDate=Thu Jul 04 06:34:17 UTC 2024}, serverTime=DateTime{utcTime=133645484571580985, javaDate=Thu Jul 04 06:34:17 UTC 2024}}
2024-07-04 06:34:18,573 milo-shared-thread-pool-2 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.9666667}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645484581482454, javaDate=Thu Jul 04 06:34:18 UTC 2024}, serverTime=DateTime{utcTime=133645484581482454, javaDate=Thu Jul 04 06:34:18 UTC 2024}}

Тест_3)

dataChangeFilterTrigger = СтатусЗначение

dataChangeFilterDeadbandValue = 0,1

 2024-07-04 06:38:56,790 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487367572683, javaDate=Thu Jul 04 06:38:56 UTC 2024}, serverTime=DateTime{utcTime=133645487367572683, javaDate=Thu Jul 04 06:38:56 UTC 2024}}
2024-07-04 06:38:57,787 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487373034158, javaDate=Thu Jul 04 06:38:57 UTC 2024}, serverTime=DateTime{utcTime=133645487373034158, javaDate=Thu Jul 04 06:38:57 UTC 2024}}
2024-07-04 06:38:58,785 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487387204906, javaDate=Thu Jul 04 06:38:58 UTC 2024}, serverTime=DateTime{utcTime=133645487387204906, javaDate=Thu Jul 04 06:38:58 UTC 2024}}
2024-07-04 06:38:59,790 milo-shared-thread-pool-3 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487397079011, javaDate=Thu Jul 04 06:38:59 UTC 2024}, serverTime=DateTime{utcTime=133645487397079011, javaDate=Thu Jul 04 06:38:59 UTC 2024}}
2024-07-04 06:39:00,789 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487402524037, javaDate=Thu Jul 04 06:39:00 UTC 2024}, serverTime=DateTime{utcTime=133645487402524037, javaDate=Thu Jul 04 06:39:00 UTC 2024}}
2024-07-04 06:39:01,783 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487412409085, javaDate=Thu Jul 04 06:39:01 UTC 2024}, serverTime=DateTime{utcTime=133645487412409085, javaDate=Thu Jul 04 06:39:01 UTC 2024}}
2024-07-04 06:39:02,785 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.05}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487427749867, javaDate=Thu Jul 04 06:39:02 UTC 2024}, serverTime=DateTime{utcTime=133645487427749867, javaDate=Thu Jul 04 06:39:02 UTC 2024}}
2024-07-04 06:39:03,787 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.05}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487437559370, javaDate=Thu Jul 04 06:39:03 UTC 2024}, serverTime=DateTime{utcTime=133645487437559370, javaDate=Thu Jul 04 06:39:03 UTC 2024}}
2024-07-04 06:39:04,791 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487447390847, javaDate=Thu Jul 04 06:39:04 UTC 2024}, serverTime=DateTime{utcTime=133645487447390847, javaDate=Thu Jul 04 06:39:04 UTC 2024}}
2024-07-04 06:39:05,782 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487457187133, javaDate=Thu Jul 04 06:39:05 UTC 2024}, serverTime=DateTime{utcTime=133645487457187133, javaDate=Thu Jul 04 06:39:05 UTC 2024}}
2024-07-04 06:39:06,789 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.05}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487467051678, javaDate=Thu Jul 04 06:39:06 UTC 2024}, serverTime=DateTime{utcTime=133645487467051678, javaDate=Thu Jul 04 06:39:06 UTC 2024}}
2024-07-04 06:39:07,783 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645487472586697, javaDate=Thu Jul 04 06:39:07 UTC 2024}, serverTime=DateTime{utcTime=133645487472586697, javaDate=Thu Jul 04 06:39:07 UTC 2024}}

Тест_4)

dataChangeFilterTrigger = СтатусЗначение

dataChangeFilterDeadbandValue = 1

2024-07-04 06:40:24,583 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488242348177, javaDate=Thu Jul 04 06:40:24 UTC 2024}, serverTime=DateTime{utcTime=133645488242348177, javaDate=Thu Jul 04 06:40:24 UTC 2024}}
2024-07-04 06:40:25,584 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.05}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488252284656, javaDate=Thu Jul 04 06:40:25 UTC 2024}, serverTime=DateTime{utcTime=133645488252284656, javaDate=Thu Jul 04 06:40:25 UTC 2024}}
2024-07-04 06:40:26,584 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488257747604, javaDate=Thu Jul 04 06:40:25 UTC 2024}, serverTime=DateTime{utcTime=133645488257747604, javaDate=Thu Jul 04 06:40:25 UTC 2024}}
2024-07-04 06:40:27,586 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488273022197, javaDate=Thu Jul 04 06:40:27 UTC 2024}, serverTime=DateTime{utcTime=133645488273022197, javaDate=Thu Jul 04 06:40:27 UTC 2024}}
2024-07-04 06:40:28,584 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488282885735, javaDate=Thu Jul 04 06:40:28 UTC 2024}, serverTime=DateTime{utcTime=133645488282885735, javaDate=Thu Jul 04 06:40:28 UTC 2024}}
2024-07-04 06:40:29,583 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488292682931, javaDate=Thu Jul 04 06:40:29 UTC 2024}, serverTime=DateTime{utcTime=133645488292682931, javaDate=Thu Jul 04 06:40:29 UTC 2024}}
2024-07-04 06:40:30,588 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.8}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488302517455, javaDate=Thu Jul 04 06:40:30 UTC 2024}, serverTime=DateTime{utcTime=133645488302517455, javaDate=Thu Jul 04 06:40:30 UTC 2024}}
2024-07-04 06:40:31,587 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.9666667}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488312376079, javaDate=Thu Jul 04 06:40:31 UTC 2024}, serverTime=DateTime{utcTime=133645488312376079, javaDate=Thu Jul 04 06:40:31 UTC 2024}}
2024-07-04 06:40:32,588 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488322267329, javaDate=Thu Jul 04 06:40:32 UTC 2024}, serverTime=DateTime{utcTime=133645488322267329, javaDate=Thu Jul 04 06:40:32 UTC 2024}}
2024-07-04 06:40:33,586 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488327669740, javaDate=Thu Jul 04 06:40:32 UTC 2024}, serverTime=DateTime{utcTime=133645488327669740, javaDate=Thu Jul 04 06:40:32 UTC 2024}}
2024-07-04 06:40:34,581 milo-shared-thread-pool-0 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.0}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645488342986708, javaDate=Thu Jul 04 06:40:34 UTC 2024}, serverTime=DateTime{utcTime=133645488342986708, javaDate=Thu Jul 04 06:40:34 UTC 2024}}

Тест_5)

dataChangeFilterTrigger = СтатусЗначение

dataChangeFilterDeadbandValue = 10

2024-07-04 09:00:48,048 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572479092312, javaDate=Thu Jul 04 09:00:47 UTC 2024}, serverTime=DateTime{utcTime=133645572479092312, javaDate=Thu Jul 04 09:00:47 UTC 2024}}
2024-07-04 09:00:49,049 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572490049997, javaDate=Thu Jul 04 09:00:49 UTC 2024}, serverTime=DateTime{utcTime=133645572490049997, javaDate=Thu Jul 04 09:00:49 UTC 2024}}
2024-07-04 09:00:50,056 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572499931469, javaDate=Thu Jul 04 09:00:49 UTC 2024}, serverTime=DateTime{utcTime=133645572499931469, javaDate=Thu Jul 04 09:00:49 UTC 2024}}
2024-07-04 09:00:51,056 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=2.925}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572509718650, javaDate=Thu Jul 04 09:00:50 UTC 2024}, serverTime=DateTime{utcTime=133645572509718650, javaDate=Thu Jul 04 09:00:50 UTC 2024}}
2024-07-04 09:00:52,057 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572519602261, javaDate=Thu Jul 04 09:00:51 UTC 2024}, serverTime=DateTime{utcTime=133645572519602261, javaDate=Thu Jul 04 09:00:51 UTC 2024}}
2024-07-04 09:00:53,053 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572525013237, javaDate=Thu Jul 04 09:00:52 UTC 2024}, serverTime=DateTime{utcTime=133645572525013237, javaDate=Thu Jul 04 09:00:52 UTC 2024}}
2024-07-04 09:00:54,056 milo-shared-thread-pool-1 INFO - [routeDeadband] - **** DataValue{value=Variant{value=3.1333334}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=133645572539303064, javaDate=Thu Jul 04 09:00:53 UTC 2024}, serverTime=DateTime{utcTime=133645572539303064, javaDate=Thu Jul 04 09:00:53 UTC 2024}}

В проведенных тестах поведение всегда одинаковое. если вы посмотрите значения данных последовательности DataValue{value=Variant{value=xx} каждого теста в нескольких случаях, мне не пришлось бы получать никаких значений, потому что значение зоны нечувствительности не было преодолено.

если я попытаюсь установить то же значение зоны нечувствительности, что и Test_4, с помощью клиента Prosys OPC UA, у меня будет правильное поведение

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
84
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Можете ли вы получить запись всего сеанса в Wireshark?

Возможно, клиент не создает MonitoredItems с правильными настройками, а также возможно, что сервер просто игнорирует зону нечувствительности, и в этом случае вам ничего не остается, как пожаловаться этому поставщику сервера.

редактировать:

Похоже, вы не устанавливаете значение конфигурации dataChangeFilterDeadbandType. См. https://github.com/apache/camel/blob/camel-3.22.x/comComponents/camel-milo/src/main/java/org/apache/camel/comComponent/milo/client/MonitorFilterConfiguration.java.

посмотрите пост со снимком экрана: если я попробую с клиентом Prosys OPC UA, значение зоны нечувствительности будет работать нормально. Учтите, что обе службы (сервер и клиент OPC UA) находятся на одном компьютере. Может ли Wireshark работать, когда обе службы находятся на одном компьютере? Могу ли я иметь альтернативу, чтобы проверить то, что вы мне сказали?

Stefano 04.07.2024 16:35

Wireshark работает, когда оба программного обеспечения установлены на одном компьютере. Я недостаточно знаком ни с клиентским, ни с серверным программным обеспечением, чтобы предложить альтернативный метод. Wireshark дает объективное представление о происходящем.

Kevin Herron 04.07.2024 17:38

Смотрите мое недавнее редактирование.

Kevin Herron 04.07.2024 17:43

Я добавил тест с ответом на мой вопрос. Устанавливаю значение dataChangeFilterDeadbandType, но у меня возникает ошибка TypeConversionException.

Stefano 05.07.2024 11:07

Начиная с документации, dataChangeFilterDeadbandType по умолчанию равен нулю.

Я попытался установить для dataChangeFilterDeadbandType значение 0 или 1 и другие значения, но получил ту же ошибку.

Проведенные испытания:

Тест_6

ВХОДНЫЕ ПАРАМЕТРЫ ЗАПРОСА:

dataChangeFilterTrigger = StatusValue

dataChangeFilterDeadbandValue = 10

dataChangeFilterDeadbandType = 0

РЕЗУЛЬТАТ

Главная причина:

Caused by: org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger with value 0 due to org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger] for value [0]

Полная трассировка стека:

2024-07-05 08:37:36,335 main INFO - [c.b.f.j.QuartzRoutingJobService] - START OPCUA route config
2024-07-05 08:37:36,366 main INFO - [c.b.f.j.QuartzRoutingJobService] - END Scanning routes

2024-07-05 08:37:36,642 main INFO - [o.a.c.h.Http11NioProtocol] - Stopping ProtocolHandler ["http-nio-8080"]
2024-07-05 08:37:36,658 main INFO - [o.a.c.c.StandardService] - Stopping service [Tomcat]
2024-07-05 08:37:36,658 main INFO - [o.s.b.a.l.ConditionEvaluationReportLogger] -

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-07-05 08:37:36,689 main ERROR - [o.s.b.SpringApplication] - Application run failed
org.apache.camel.FailedToCreateRouteException: Failed to create route routeDeadband: Route(routeDeadband)[From[milo-client:opc.tcp://127.0.0.1:49... because of Failed to resolve endpoint: milo-client://opc.tcp://127.0.0.1:49310?applicationName=camelopcua&applicationUri=urn%3A8409%3Atest%3Acamelopcua&dataChangeFilterDeadbandType=0&dataChangeFilterDeadbandValue=10&dataChangeFilterTrigger=StatusValue&keyPassword=xxxxxx&keyStorePassword=xxxxxx&keyStoreUrl=xxxxxx&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA) due to: Error binding property (dataChangeFilterDeadbandType=0) with name: dataChangeFilterDeadbandType on bean: milo-client://opc.tcp://127.0.0.1:49310?applicationName=camelopcua&applicationUri=urn%3A8409%3Atest%3Acamelopcua&dataChangeFilterDeadbandType=0&dataChangeFilterDeadbandValue=10&dataChangeFilterTrigger=StatusValue&keyPassword=xxxxxx&keyStorePassword=xxxxxx&keyStoreUrl=xxxxxx&node=RAW(ns=2;s=Channel2%20SIMUL.SIM_1.BNAp1.18VGG1_1XA) with value: 0
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:85) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49) ~[camel-core-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:728) ~[camel-core-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:594) ~[camel-core-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2385) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.service.BaseService.init(BaseService.java:78) ~[camel-api-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2021) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:105) ~[camel-api-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2040) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:212) ~[camel-core-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:119) ~[camel-spring-4.4.2.jar:4.4.2]
        at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:151) ~[camel-spring-4.4.2.jar:4.4.2]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:981) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.1.4.jar:6.1.4]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.3.jar:3.2.3]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) [spring-boot-3.2.3.jar:3.2.3]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) [spring-boot-3.2.3.jar:3.2.3]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) [spring-boot-3.2.3.jar:3.2.3]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) [spring-boot-3.2.3.jar:3.2.3]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) [spring-boot-3.2.3.jar:3.2.3]
        at com.xx.fileservice.FileserviceApplication.main(FileserviceApplication.java:24) [main/:?]
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: milo-client://opc.tcp://127.0.0.1:49310?applicationName=camelopcua&applicationUri=urn%3A8409%3Atest%3Acamelopcua&dataChangeFilterDeadbandType=0&dataChangeFilterDeadbandValue=10&dataChangeFilterTrigger=StatusValue&keyPassword=xxxxxx&keyStorePassword=xxxxxx&keyStoreUrl=xxxxxx&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA) due to: Error binding property (dataChangeFilterDeadbandType=0) with name: dataChangeFilterDeadbandType on bean: milo-client://opc.tcp://127.0.0.1:49310?applicationName=camelopcua&applicationUri=urn%3A8409%3Atest%3Acamelopcua&dataChangeFilterDeadbandType=0&dataChangeFilterDeadbandValue=10&dataChangeFilterTrigger=StatusValue&keyPassword=xxxxxx&keyStorePassword=xxxxxx&keyStoreUrl=xxxxxx&node=RAW(ns=2;s=Channel2%20SIMUL.SIM_1.BNAp1.18VGG1_1XA) with value: 0
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:830) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        ... 25 more
Caused by: org.apache.camel.PropertyBindingException: Error binding property (dataChangeFilterDeadbandType=0) with name: dataChangeFilterDeadbandType on bean: milo-client://opc.tcp://127.0.0.1:49310?applicationName=camelopcua&applicationUri=urn%3A8409%3Atest%3Acamelopcua&dataChangeFilterDeadbandType=0&dataChangeFilterDeadbandValue=10&dataChangeFilterTrigger=StatusValue&keyPassword=xxxxxx&keyStorePassword=xxxxxx&keyStoreUrl=xxxxxx&node=RAW(ns=2;s=Channel2%20SIMUL.SIM_1.BNAp1.18VGG1_1XA) with value: 0
        at org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:807) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doSetPropertyValue(PropertyBindingSupport.java:564) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBuildPropertyOgnlPath(PropertyBindingSupport.java:420) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBindProperties(PropertyBindingSupport.java:300) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport$Builder.bind(PropertyBindingSupport.java:1941) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.setProperties(DefaultEndpoint.java:424) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.configureProperties(DefaultEndpoint.java:396) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultComponent.setProperties(DefaultComponent.java:421) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientComponent.createEndpoint(MiloClientComponent.java:45) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:170) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:796) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        ... 25 more
Caused by: org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger with value 0 due to org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger] for value [0]
        at org.apache.camel.spring.boot.SpringTypeConverter.convertTo(SpringTypeConverter.java:73) ~[camel-spring-boot-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvert(CoreTypeConverterRegistry.java:466) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryFallback(CoreTypeConverterRegistry.java:435) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:384) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:272) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:196) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:183) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:95) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientEndpointConfigurer.configure(MiloClientEndpointConfigurer.java:37) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:805) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doSetPropertyValue(PropertyBindingSupport.java:564) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBuildPropertyOgnlPath(PropertyBindingSupport.java:420) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBindProperties(PropertyBindingSupport.java:300) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport$Builder.bind(PropertyBindingSupport.java:1941) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.setProperties(DefaultEndpoint.java:424) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.configureProperties(DefaultEndpoint.java:396) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultComponent.setProperties(DefaultComponent.java:421) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientComponent.createEndpoint(MiloClientComponent.java:45) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:170) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:796) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        ... 25 more
Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger] for value [0]
        at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47) ~[spring-core-6.1.4.jar:6.1.4]
        at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:182) ~[spring-core-6.1.4.jar:6.1.4]
        at org.apache.camel.spring.boot.SpringTypeConverter.convertTo(SpringTypeConverter.java:62) ~[camel-spring-boot-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvert(CoreTypeConverterRegistry.java:466) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryFallback(CoreTypeConverterRegistry.java:435) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:384) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:272) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:196) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:183) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:95) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientEndpointConfigurer.configure(MiloClientEndpointConfigurer.java:37) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:805) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doSetPropertyValue(PropertyBindingSupport.java:564) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBuildPropertyOgnlPath(PropertyBindingSupport.java:420) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBindProperties(PropertyBindingSupport.java:300) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport$Builder.bind(PropertyBindingSupport.java:1941) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.setProperties(DefaultEndpoint.java:424) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.configureProperties(DefaultEndpoint.java:396) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultComponent.setProperties(DefaultComponent.java:421) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientComponent.createEndpoint(MiloClientComponent.java:45) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:170) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:796) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        ... 25 more
Caused by: java.lang.IllegalArgumentException: Cannot convert String [0] to target class [org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger]
        at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:222) ~[spring-core-6.1.4.jar:6.1.4]
        at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:64) ~[spring-core-6.1.4.jar:6.1.4]
        at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:50) ~[spring-core-6.1.4.jar:6.1.4]
        at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:409) ~[spring-core-6.1.4.jar:6.1.4]
        at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41) ~[spring-core-6.1.4.jar:6.1.4]
        at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:182) ~[spring-core-6.1.4.jar:6.1.4]
        at org.apache.camel.spring.boot.SpringTypeConverter.convertTo(SpringTypeConverter.java:62) ~[camel-spring-boot-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvert(CoreTypeConverterRegistry.java:466) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryFallback(CoreTypeConverterRegistry.java:435) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:384) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:272) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:196) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:183) ~[camel-base-4.4.2.jar:4.4.2]
        at org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:95) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientEndpointConfigurer.configure(MiloClientEndpointConfigurer.java:37) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:805) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doSetPropertyValue(PropertyBindingSupport.java:564) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBuildPropertyOgnlPath(PropertyBindingSupport.java:420) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport.doBindProperties(PropertyBindingSupport.java:300) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.PropertyBindingSupport$Builder.bind(PropertyBindingSupport.java:1941) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.setProperties(DefaultEndpoint.java:424) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultEndpoint.configureProperties(DefaultEndpoint.java:396) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.support.DefaultComponent.setProperties(DefaultComponent.java:421) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.component.milo.client.MiloClientComponent.createEndpoint(MiloClientComponent.java:45) ~[camel-milo-3.22.2.jar:3.22.2]
        at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:170) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:796) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730) ~[camel-base-engine-4.4.2.jar:4.4.2]
        at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61) ~[camel-support-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79) ~[camel-core-reifier-4.4.2.jar:4.4.2]
        ... 25 more

> Task :bootRun FAILED

Я неправильно установил значение формата?

Думаю, теперь вам понадобится помощь кого-нибудь, кто знаком с проектом Camel-Milo.

Kevin Herron 05.07.2024 15:20

Проблема @KevinHerron решена.

Stefano 30.07.2024 11:57
Ответ принят как подходящий

ПРОБЛЕМА РЕШЕНА

Созданный экземпляр компонента UInteger Bean имеет значение 1 в конфигурации компонента, см. следующее:

import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {
    
    @Bean("DeadbandParamater")
    public UInteger deadbandParamater() {
        return UInteger.valueOf(1);
    }

} 

После этого правильная настройка клиента OPC UA milo.

from("milo-client:opc.tcp://127.0.0.1:49310?
keyStoreUrl=file:C:\\Temp\\application\\certificate\\clientkeystore.jks
&keyPassword=123456
&keyStorePassword=123456
&applicationUri=urn:8409:test:camelopcua
&applicationName=camelopcua&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA)
&dataChangeFilterDeadbandValue=0.2
&dataChangeFilterTrigger=StatusValue
&dataChangeFilterDeadbandType=#bean:DeadbandParamater
&monitorFilterType=dataChangeFilter
&samplingInterval=1000").log("**** ${body}").routeId("routeDeadband");

ref bean с использованием синтаксиса параметров запроса

dataChangeFilterDeadbandType=#bean:DeadbandParamater

ссылка на DataChangeFilter

Проведенный тест:

Другие вопросы по теме