dsrc vanet ns2 tcl scipt不工作

dsrc vanet ns2 tcl scipt不工作,tcl,ns2,wifi,Tcl,Ns2,Wifi,我已经为dsrc运行这个tcl脚本(不是我写的)工作了几个星期,但我从未成功过。我需要你的帮助。错误是: invalid command name "10" while executing "$val(payload)" invoked from within "set payload [$val(payload)]" (file "singleBroadcast.tcl" line 7) 因此,为了不使THG变得非常复杂,我将在这里解析代码的一部分,我认为这是一个错误

我已经为dsrc运行这个tcl脚本(不是我写的)工作了几个星期,但我从未成功过。我需要你的帮助。错误是:

invalid command name "10"
    while executing
"$val(payload)"
    invoked from within
"set payload [$val(payload)]"
    (file "singleBroadcast.tcl" line 7)
因此,为了不使THG变得非常复杂,我将在这里解析代码的一部分,我认为这是一个错误:

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个参数,所以要运行它,我必须键入,即:ns test.tcl 10 12 4 10 2

问题在范围之内

1-我是否以正确的方式思考,我如何运行它是否正确

2-你能帮我纠正一下吗

多谢各位
非常感谢您的帮助

我不知道为什么您的错误看起来像这样,但第14行有一个错误。您需要更改:

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

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

除非
$val(comRange)
应该是argv中提供的有效Tcl命令。

您的错误似乎与代码段不匹配。如果使用参数调用脚本
10124102
set payload$val(payload)应该可以正常工作,但是
set yi2[expr$yi*[$val(comRange)]]
将失败。错误并不是这么说的。你能确认一下吗?