2013-06-11 28 views
-1

我已經工作了幾個星期來運行這個tcl腳本(不是我寫的)dsrc,但我從來沒有成功。請我需要你的幫助。錯誤是:dsrc vanet ns2 tcl scipt不工作

invalid command name "10" 
    while executing 
"$val(payload)" 
    invoked from within 
"set payload [$val(payload)]" 
    (file "singleBroadcast.tcl" line 7) 

所以爲了不使thgs非常複雜,我將在這裏分析,我覺得有個錯誤代碼的一部分:

set val(modIndex) [lindex $argv 0] 
set val(ncars) [lindex $argv 1] 
set val(payload) [lindex $argv 2] 
set val(comRange) [lindex $argv 3] ;#"intended" Communication Range 
set val(vseed)  [lindex $argv 4] 

set payload $val(payload) 
set modulationIndex $val(modIndex) 

#Calculate the needed Transmission power corresponding to the intended Communication  Range 
set lambda  [expr 3e+8/5.9e+9] ;# lambda = c/f 
set pi    3.1415926535897931 
set yi   [expr $pi*4] 
set yi2   [expr $yi*[$val(comRange)]] 
set M   [expr $lambda/$yi2]; 
set Pr2Pt  [expr [expr 5.118 * 5.118 * $M * $M ]/1]; 
set Pt   [expr 3.162e-12/$Pr2Pt] 
set PtmW  [expr $Pt * 1000] 
puts "mod Index is $val(modIndex)" 

請指正,我認爲有5個參數,所以要運行它,我必須輸入ie:ns test.tcl 10 12 4 10 2

問題出在comRange。

1-我以正確的方式思考,這是正確的如何運行它?

2-你能幫我糾正嗎?

非常感謝你 你的幫助是非常感激

+0

你的錯誤似乎不符合片段。如果你正在調用帶有參數'10 12 4 10 2'的腳本,你的'set payload $ val(payload)'應該可以正常工作,但是'set yi2 [expr $ yi * [$ val(comRange)]]]'將會失敗。這不是錯誤所說的。你能證實嗎? – pn8830

回答

0

不知道爲什麼你的錯誤看起來是這樣,但有上線14個錯誤,您需要更改:

set yi2 [expr $yi*[$val(comRange)]] 

的東西像:

set yi2 [expr { $yi*$val(comRange) }] 

除非$val(comRange)應該是argv中提供了有效的Tcl命令。

+0

謝謝:) 它工作:) – user2475065