dsrc vanet ns2 tcl脚本无法正常工作

时间:2013-06-11 15:15:44

标签: tcl ns2 802.11

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

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

问题在于comRange。

凌晨1点我以正确的方式思考,运行它是否正确?

你可以帮我纠正一下吗?

非常感谢你 你的帮助非常感谢

1 个答案:

答案 0 :(得分:0)

不确定为什么你的错误看起来像这样,但第14行有一个错误。你需要改变:

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

类似于:

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

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