Входящие события:
EventStream = {id = 1, Temp1Event = 35,5, Temp2Event = 37,2, PressureEvent = 896,99}
t = t.plus (2 секунды)
EventStream = {id = 2, Temp1Event = 37,4, Temp2Event = 39,1, PressureEvent = 869,5}
t = t.plus (2 секунды)
EventStream = {id = 3, Temp1Event = 48,3, Temp2Event = 51,9, PressureEvent = 908,56}
t = t.plus (2 секунды)
EventStream = {id = 4, Temp1Event = 55,7, Temp2Event = 56,9, PressureEvent = 928,82}
t = t.plus (2 секунды)
EventStream = {id = 5, Temp1Event = 66,5, Temp2Event = 39,48, PressureEvent = 0}
t = t.plus (2 секунды)
EventStream = {id = 6, Temp1Event = 52.3745930271536, Temp2Event = 31.1136121636059, PressureEvent = 0}
t = t.plus (2 секунды)
EventStream = {id = 7, Temp1Event = 41.9102341671244, Temp2Event = 24.9156396131152, PressureEvent = 0}
Логика правила:
Подайте предупреждение об открытой двери камеры давления (= правило срабатывает), если давление становится равным «0», и из-за этого температура быстро падает.
Мое утверждение:
SELECT * FROM pattern [every (a = EventStream (PressureEvent = 0) -> b = EventStream (Temp1Event [0]> 0,7 * Temp1Event [2]))]. Win: длина (3);
Я ожидаю, что правило сработает, если а) событие давления становится равным 0 и б) после этого температура быстро падает, что подтверждается значением из первого входящего события и значением второго входящего события.
Я знаю, что есть функции "lastEvent" и "firstEvent". Может быть, они являются возможным решением. Несмотря на это, я надеюсь получить возможность, аналогичную индексу «DataTuple [x]», так как я думаю, что он более гибкий.
Большое спасибо заранее! :)