SERVFORU

Tcl and OTcl Tutorial For NS2 - Procedures


Procedures

Procedures are an essential component of Tcl and can be used to make programming ns simpler. As in any functional programming language, procedures can be used for repetitive tasks, or simply to logically break down the tasks in the program.Procedures are defined in Tcl as follows:
proc proc1 {} {
    puts "in procedure proc1"
}
This defines a procedure that takes no parameters and prints out "in procedure proc1". To call this procedure
proc1
can be used.A procedure with parameters can be defined as follows:
proc proc2 {parameter1} {
    puts "the value of parameter1 is $parameter1"
}
This procedure can be invoked as follows:
proc2 10
A procedure that returns a value can be defined as follows:
proc proc3 {min max} {
    set randomvar [rand $min $max]
    return $randomvar
}
This procedure generates a random variable and returns it to the calling function. This can be invoked as follows
set randomvar [proc3 0 1]
to obtain a uniform random value between 0 and 1.Sometimes it is necessary within a procedure to reference a variable that has global scope. This is the purpose of the global keyword. So, for example, in an ns script, the simulator object typically is called ns, and typically has global scope. So, it could be referenced in a procedure as follows:
proc proc4 {} {
    global ns
    $ns at 10.0 "exit 0"
}
A logical way to break down an ns script can be as follows:
set ns [new Simulator]
create_topology
create_agents
create_sources
create_recorders
$ns run
where create_topologycreate_agentscreate_sources and create_recorders are all procedures.
Share this article :
 

+ comments + 5 comments

January 10, 2013 at 10:01 PM

hi friends, is it possible to send user required data from one node to another node in wireless sensors..., i mean by asking user to enter data n then sending that from one node to another node...,

Anonymous
May 1, 2013 at 4:20 PM

Very nice write-up. I absolutely love this website.
Continue the good work!

my web blog ... satellite for Free

Anonymous
May 2, 2013 at 4:53 AM

Greetings! Very helpful advice within this article! It's the little changes that make the greatest changes. Thanks for sharing!

Feel free to surf to my weblog buy cccam

Post a Comment

 
Support : Ebin EPhrem | Ebin Ephrem | #Gabbarism
Copyright © 2011. Services | Embedded Support | Reviews | Virtual Technologys - All Rights Reserved
Template Created by ebinephrem.com Published by Ebin Ephrem
Proudly powered by Blogger