Присвоение значений между событиями

У нас есть вопрос, касающийся назначения значений между событиями в Fiware CEP.

Предположим, что на основе двух инициированных событий инициируется третье событие. Итак, давайте предположим, что они называются событиями A, B и C. Если A и B срабатывают, C должно срабатывать, при условии, что условия в EPA соблюдены.

Из файлов журнала мы можем определить, что события A и B запускаются, а событие C запускается, но пусто. Пока что мы не можем присвоить значения событий A и B событию C. Наша цель — предоставить событию C детали (сумма двух целых чисел от событий A и B) событий, которыми оно вызвано.

Не могли бы вы предоставить нам некоторую информацию о том, как мы можем присвоить значения от одного события к новому событию. Можно ли использовать 2 события в качестве входных значений для нового события? Мы попытались присвоить значения событию C, предоставив им значения по умолчанию (т. е. ссылаясь на A.variable_1). Также мы попытались назначить новые атрибуты событий в EPA -> производные -> атрибуты событий.

В нашем проактивном авторском инструменте мы не можем найти решение нашей проблемы. Мы знаем математические функции, как описано в руководстве пользователя, но нам не удалось вывести, как присвоить значение математической функции от одного события к новому событию.


person iotproject001    schedule 08.09.2015    source источник


Ответы (1)


Если вы хотите сгенерировать событие C, когда произошло событие A, B, вы можете использовать EPA типа All и поместить оба A, B события как участники событий EPA.

В этом EPA вам нужно добавить событие C в качестве производного события. В инструменте разработки откройте определение EPA и выберите добавление C в качестве производного события, откройте таблицу его атрибутов и установите атрибут, который должен быть равен некоторой функции, основанной на событиях A, B ( например, A.Value + B.Value).

См. снимок экрана, сделанный в инструменте разработки CEP, где атрибуту Value производного события C присвоено значение A.Value + B.Value

Убедитесь, что вы запускаете CEP с обновленным файлом определения. Вам необходимо экспортировать его в репозиторий (из инструмента разработки), а затем остановить и запустить CEP, чтобы он работал с обновленным набором определений.

Установите атрибут Value производного события C

person Tal Haham    schedule 08.09.2015
comment
При выполнении вышеописанного ничего не происходит. Вывод остается пустым (мы проверили вывод события C, перенаправив его в текстовый файл). Мы считаем, что это связано либо с составным контекстом, либо с EPA. Наш составной контекст основан на контексте сегментации, где мы определяем только выражение, удовлетворяющее определенному числовому значению. Из файлов журнала мы видим, что события инициируются на сервере Proton. Что касается составного контекста, нужно ли добавлять к нему события A и B? В любом случае, мы оба добавили их туда. - person iotproject001; 10.09.2015
comment
Что касается EPA, каковы точные параметры? У нас есть следующее: вкладка 1, общая: тип EPA ‹все›, с групповым событием нашего собственного ‹составного контекста›. вкладка 1, выбор события: участники событий A и B. Выбор экземпляра ‹первый› для обоих. Оба имеют условие, т.е. значение › 0. вкладка 3, условие: пусто. вкладка 4, вывод: мы добавили сюда событие C, содержащее параметры события A и B (как на скриншоте). Чтобы проверить, работает ли это, мы отправляем производное событие потребителю, который записывает его в текстовый файл. Когда мы запускаем события, он записывает новый файл, однако он пуст. - person iotproject001; 10.09.2015
comment
Что касается вашего первого вопроса - да, события A, B необходимо добавить в составной контекст, поскольку они используются в EPA, использующем этот контекст. Что касается вашей проблемы - может быть, вы не работаете с обновленными определениями? вам нужно экспортировать его в репозиторий (из инструмента разработки), а затем остановить и запустить CEP, чтобы он работал с обновленным набором определений. - person Tal Haham; 16.09.2015
comment
Мы по-прежнему не можем генерировать содержимое в выходном файле. Мы удалили выходной файл. При появлении нового события CEP создает новый выходной файл. Кажется, это работает. Но в файле нет содержимого. Есть ли тестовый пример, который создает контекст в выходном файле? Проблема в том, что мы не можем видеть, открывает ли CEP выходной файл, помещает ли содержимое в файл и сохраняет ли его. Во-вторых, может ли CEP работать в режиме ошибки? - person iotproject001; 18.09.2015
comment
Еще раз спрашиваю: вы уверены, что запускаете CEP с обновленным файлом определения? вам нужно экспортировать его в репозиторий (из инструмента разработки), а затем остановить и запустить CEP, чтобы он работал с обновленным набором определений. - person Tal Haham; 20.09.2015
comment
Если мы попытаемся экспортировать в наш репозиторий из авторского файла, мы получим ошибку сервера. В частности, java.lang.NullPointerException com.ibm.hrl.proton.admin.webapp.resources.DefinitionsResource.getAllDefinitions(DefinitionsResource.java:76) (я не думаю, что публиковать остальную часть стека ошибок полезно...) В любом случае, NullPointerException, похоже, предполагает, что чего-то не хватает? - person iotproject001; 23.09.2015
comment
Итак, проблема в том, что экспорт в CEP не удался, и CEP все еще работает со старым набором определений. - person Tal Haham; 24.09.2015
comment
Мы подумали, что новый вопрос будет более уместным. См.: stackoverflow.com/questions/32839582/ - person iotproject001; 29.09.2015