[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ns] Using now command in TCL



declare $ns as global in your precedure. Thanks.

-chen xuan

On Mon, 30 Apr 2001, Nikolaos Katsarakis Austauschstud. (M. Schweigel) wrote:

> Hello
> 
> I am trying to modify Marc Greis's recv procedure for the ping agent in
> ping.tcl in order to print the virtual time when the agent received the
> ping reply.
> 
> I tried to use [$ns now] or [$ns_ now] but it didn't work. Could
> somebody tell me how to access the virtual time from within the agent
> class?
> 
> The ping.tcl file follows. The arrows mark the change.
> 
> Thanking you in advance
> 
> Nick
> 
> --------------------------------
> 
> #Create a simulator object
> set ns [new Simulator]
> 
> #Open a trace file
> set nf [open out.nam w]
> $ns namtrace-all $nf
> 
> #Define a 'finish' procedure
> proc finish {} {
>         global ns nf
>         $ns flush-trace
>         close $nf
>         exec nam out.nam &
>         exit 0
> }
> 
> #Create three nodes
> set n0 [$ns node]
> set n1 [$ns node]
> set n2 [$ns node]
> 
> #Connect the nodes with two links
> $ns duplex-link $n0 $n1 1Mb 10ms DropTail
> $ns duplex-link $n1 $n2 1Mb 10ms DropTail
> 
> #Define a 'recv' function for the class 'Agent/Ping'
> Agent/Ping instproc recv {from rtt} {
>  $self instvar node_
> 
> #original output code here
> <----------------------
> # puts "node [$node_ id] received ping answer from \
> #              $from with round-trip-time $rtt ms."
> 
> #changed output code here
> <----------------------
>  puts "At [$ns now] sec. node [$node_ id] received ping answer from \
>               $from with round-trip-time $rtt ms."
> }
> 
> #Create two ping agents and attach them to the nodes n0 and n2
> set p0 [new Agent/Ping]
> $ns attach-agent $n0 $p0
> 
> set p1 [new Agent/Ping]
> $ns attach-agent $n2 $p1
> 
> #Connect the two agents
> $ns connect $p0 $p1
> 
> #Schedule events
> $ns at 0.2 "$p0 send"
> $ns at 0.4 "$p1 send"
> $ns at 0.6 "$p0 send"
> $ns at 0.6 "$p1 send"
> $ns at 1.0 "finish"
> 
> #Run the simulation
> $ns run
> 
> 

-- 
Xuan Chen
USC/ISI