在ad hoc網絡仿真中使用src / routing / wlan_mac_intf / wlan_mac層次的節點模型,仿真時出現如下錯誤:
<<< 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上的包,從而導致“Current event is not a stream or access interrupt”的錯誤。
查找原因:
由T(0)可知錯誤出現在仿真開始時,此時除了src模塊外routing / wlan_mac_intf / wlan_mac均無數據包發送的動作,所以暫定錯誤出現的原因是src模塊在0.0s時發包,此時wlan_mac_intf模塊的初始化尚未完畢,從而導致事件序列的混亂。
糾錯方法:
將src模塊的發包start time定為10.0s,避免其他模塊未初始化完畢的尷尬局面。實驗證明方法有效。
總結:
src模塊的start time缺省值就是10.0s,本人擅做主張改成0.0s,結果出現錯誤。看來還是小心為上,不然倒霉的是自己……