2013-12-08 58 views
0

我寫代碼,一個簡單的模擬。我們有10個節點和一個匯聚節點。 我想運行5次模擬。 目前我唯一知道的是我需要編寫set val(repeatTimes) 5,但我不知道如何在模擬中使用它。另外,我在相應的mac-simple.cc文件中添加兩行代碼,以便從ns2接收重複時間。然後我編譯.cc文件並運行模擬。但是,當我運行.tcl文件時,它顯示我找不到repeatTimes變量的錯誤。從NS2薪火repeatTime到.cc文件

這裏是我的功能的Mac()下添加兩行代碼:

tcl.evalf("Mac/Simple set repeatTimes"); 
bind("repeatTimes", &repeatTimes); 

你解決這個問題呢? 如果您不知道解決方案,請引導我進入論壇/網站,我可以尋找解決方案嗎?提前

感謝

回答

1

是在構造函數的類的對象Mac/MncPrjbind? (這就是它需要)。如果是這樣,它需要之前tcl.evalf呼叫,因爲它定義了 OTcl中的角度可變;讀取它的代碼將無法工作(並且會在綁定完成之後生成Tcl錯誤 - Tcl級別的異常 - 如果您嘗試這樣做)。

一旦你做了綁定,你可以從Tcl腳本的側讀取變量:

Mac/MncPrj set repeatTimes 

,並與寫:

Mac/MncPrj set repeatTimes $whateverTheValueIs 

你應該避免將在價值一個Tcl數組;這將是一個非現場複製,並會混淆你。 (除非你對trace add variable有更深入的瞭解,那麼肯定會會讓你感到困惑,有時會讓我迷惑)

+0

是的,綁定是Mac/Simple類。 現在問題已解決。謝謝 – Amir