2012-02-22 106 views
0

我捕獲與tshark的數據,並從報文頭保存某些數據處理它們,以便檢測網絡中的一些incedants。我保存在我的Lua程序中的一個表中的數據(這是在cmd使用命令(-Xlua_script :)) 運行與tshark的,現在我想在捕捉運行單獨處理每分鐘的數據。這是一個在線處理。首先:任何機構知道這是否可以實現?其次,我需要一個計時器,我不知道如何做到這一點,我想要一種方式,我可以採取表中的數據來處理它們,重置表獲得下一分鐘的新數據,而不會丟失任何數據。 任何建議或想法??如何使用定時器在Lua

+0

請你把心中,我在盧阿新,我不認爲不是職業程序員。請儘可能澄清這個想法,謝謝 – leena 2012-02-22 11:20:25

回答

1

lua中並沒有像其他一些語言中的'timer'概念,您可以在其中創建一個並設置事件處理程序,並在定時器關閉時通知您的主程序...但是,您可以定期檢查os.clock()以確定自從您完成某些處理以來已經過了多長時間,並且如果一分鐘過去了,請繼續處理數據。

這樣的事情可能是你需要的東西:

lastTimeProcessed = os.clock() 

function IsTimeToProcess(currentTime) 
    span = currentTime - lastTimeProcessed 
    if span >= 60 then 
     lastTimeProcessed = currentTime 
     return true 
    end 

    return false 
end 

while true do 
    if IsTimeToProcess(os.clock()) then 
     -- process some data here 
    end 
    -- otherwise do another round of whatever you're doing 
end