在ad hoc網(wǎng)絡(luò)仿真中使用src / routing  / wlan_mac_intf / wlan_mac層次的節(jié)點模型,仿真時出現(xiàn)如下錯誤:

<<< Recoverable Error >>>
  * Time:      15:12:26 ÐÇÆÚÈý ÁùÔÂ 10
  * Product:   modeler
  * Program:   op_runsim (Version 8.1.A PL8 Build 1575)
  * System:    Windows NT 5.1 Build 2600
  * Package:   process (Bestsink_wlan_mac_intf_test) at module (top.Office Network.ap_1.wlan_mac_intf)
  * Function:  Bestsink_wlan_mac_intf_test () [idle exit execs]
  * Error:     Current event is not a stream or access interrupt.
               T (0), EV (194), MOD (top.Office Network.ap_1.wlan_mac_intf)


分析:
通過debugger查看得知stream interrupt并不在EV(194)處,而是更靠后的事件,但在仿真到EV(194)處就要讀取stream上的包,從而導(dǎo)致“Current event is not a stream or access interrupt”的錯誤。

查找原因:
由T(0)可知錯誤出現(xiàn)在仿真開始時,此時除了src模塊外routing  / wlan_mac_intf / wlan_mac均無數(shù)據(jù)包發(fā)送的動作,所以暫定錯誤出現(xiàn)的原因是src模塊在0.0s時發(fā)包,此時wlan_mac_intf模塊的初始化尚未完畢,從而導(dǎo)致事件序列的混亂。

糾錯方法:
將src模塊的發(fā)包start time定為10.0s,避免其他模塊未初始化完畢的尷尬局面。實驗證明方法有效。

總結(jié):
src模塊的start time缺省值就是10.0s,本人擅做主張改成0.0s,結(jié)果出現(xiàn)錯誤。看來還是小心為上,不然倒霉的是自己……