Esper生成剧集

时间:2013-10-20 09:45:25

标签: esper nesper

我想使用Esper生成事件集。我试图检测每个时间段内机器人运动的变化,并想知道什么是最好的实施方式。

从事件中生成剧集的规则将是

  • 如果机器人的新事件时间(例如,7秒,机器人A)比同一机器人的最新事件(例如,3秒,机器人A)超过3秒,新事件属于新剧集。
  • 每集只应代表一个机器人(例如2秒,机器人A和3秒,机器人B应该输出2集)

输入数据:

Event   Time     Robot     Position
1         1        A         0
2         2        A         1
3         6        A         2

输出数据应为:

Array[0]={Event 1,Event 2}
Array[1]={Event 3} //more than 3 sec

输入数据:

Event     Time     Robot     Position
1         1        A         0
2         2        A         1
3         4        B         0
4         6        A         2

输出数据应为:

Array[0]={Event 1,Event 2}
Array[1]={Event 3} //different robot
Array[2]={Event 4}

请帮忙提供建议。我已经尝试使用多个侦听器,每个机器人一个,创建剧集,它可以工作,但我试图使用单个EPL语句来做到这一点。我尝试了win:time_accum(3sec) group by robot,但第二个示例输出:

Array[0]={Event 1,Event 2, Event 4}
Array[1]={Event 3}

由于每次事件进入时移动时间窗口,系统仍然认为事件4由于事件3而小于3秒。如何为每个机器人创建一个唯一的时间窗口?


感谢您的建议,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为表达式批处理窗口可以完成这项工作,它允许比较和输出不包含当前事件的批处理。