dsrc에 대해이 tcl 스크립트 (저에게 쓴 것이 아니라)를 실행하는 데 수 주일 동안 노력했지만 성공하지 못했습니다. 제발 내가 도움이 필요해. 오류는 다음과 같습니다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을하지 않기 위해, 나는 여기에 내가 거기 SA 실수 생각하는 코드의 일부 구문 분석 :
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가 있다고 생각하면 실행해야합니다. ie : ns test.tcl 10 12 4 10 2
문제는 comRange에 있습니다.
1- 올바른 방법으로 생각하고 있습니다. 올바른 방법은 무엇입니까?
2 나는 그것을 바로 잡을 수 있습니까?
이 감사합니다 너무 많은 당신의 도움이 많은 감사입니다 그것을
오류가 스 니펫과 일치하지 않는 것 같습니다. '10 12 4 10 2' 인자로 스크립트를 호출한다면'set payload $ val (payload)'는 잘 동작하지만'set yi2 [expr $ yi * [$ val (comRange)]]'는 실패 할 것입니다. 그것은 오류가 말하는 것이 아닙니다. 그걸 확인해 줄 수 있니? – pn8830