Hello kanupriya, you have an error in proc finish {} , you didn't do 'global tracefile1' , so the following adjustments to the finish proc should make it work:
proc finish {} { global ns nf *tracefile1* $ns flush-trace #Close the trace file close $tracefile1 close $nf #Execute nam on the trace file exec nam out.nam & exit 0 } On Sun, Nov 16, 2008 at 4:15 AM, kanupriya kabra <[EMAIL PROTECTED]> wrote: > > hi > > I am not able to collect the traces using trace-all command in NS2 (on > windows): > > Here is a snapshot of my file > > #Create a simulator object > set ns [new Simulator] > > #Open the Trace file > set tracefile1 [open out.tr w] > $ns trace-all $tracefile1 > > #Open the nam trace file > set nf [open out.nam w] > $ns namtrace-all $nf > > proc finish {} { > global ns nf > $ns flush-trace > #Close the trace file > close $tracefile1 > close $nf > #Execute nam on the trace file > exec nam out.nam & > exit 0 > } > > ----rest of file > > But there is an error when I run this > > $ ns example4a.tcl > ns: finish: can't read "tracefile1": no such variable > while executing > "close $tracefile1" > (procedure "finish" line 5) > invoked from within > "finish" > > I would really appreciate if anyone could help me out with this error? > I am able to open the nam file using the open command but I am not able to > find out why tracefile1 is not getting created. > > Regards > Kanu > -- Waleed Tuffaha.