close
OMNet++ 有個強大的地方就是 timer,就是模擬的時間,我不知道 NS2 有沒
有利用時間控制流程的功能,就是到某個時間驅動某個事件,雖然這功能在
OMNet++ 不是很直觀,但為了寫 real time 的 simulation 這是必要的。
OMNet++ 是以 message trigger,所有事件的發生、處理、停止都是藉由
message,所以如何讓時間跑也是靠 message,當程式一開始可以發個 message
給自己,而當自己收到此 message 後再加上一個特定時間再把這 message 丟給
自己,於是就相隔特定時間不斷的處理這個訊息,時間軸就會往前推進,而在每
個時間點也就可以處理事情,不用等其他人丟事件才能動。
因為是用 message 推著時間跑,所以多少 message type 就可以有多少
timer,利用 multi-timer 的觀念就可以實現"史瑞德" thread,不用真的用 C++
去寫 thread 了,至少我覺得 C 的 thread 很難寫 >"
想更了解 OMNet++ 的時間可以參考 cSimulation 這個 class,simTime( )
和 scheduleAt( ) 都在那。
全站熱搜