2013-10-20 68 views
0

我想用Esper生成事件事件。我試圖在每個時間段內檢測機器人運動的變化,並想知道什麼是最佳實施方式。Esper生成事件

用於產生從事件集的規則將是

  • 如果新的事件時間(例如7秒,機器人A)的機器人的是超過3秒比最新的事件(例如3秒,同一機器人的機器人A),新事件屬於新的事件。
  • 每集應僅表示一個機器人

輸入數據(例如2秒,ROBOTA和3秒,robotB應該輸出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.如何創建每個機器人的獨特時間窗口?


感謝您的建議和任何幫助,我們將不勝感激。

回答

0

我認爲表達式批處理窗口可以完成這項工作,它允許比較和輸出一個不包含當前事件的批處理。