在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,結果出現錯誤。看來還是小心為上,不然倒霉的是自己……