⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wireless-shadowing-test.tcl

📁 对IEEE 802.11e里的分布式信道接入算法EDCA进行改进
💻 TCL
字号:
# -*-	Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */## Copyright (c) 2000 University of Southern California.#  All rights reserved.                                            #                                                                #  Redistribution and use in source and binary forms are permitted#  provided that the above copyright notice and this paragraph are#  duplicated in all such forms and that any documentation, advertising#  materials, and other materials related to such distribution and use#  acknowledge that the software was developed by the University of#  Southern California, Information Sciences Institute.  The name of the#  University may not be used to endorse or promote products derived from#  this software without specific prior written permission.#  #  THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED#  WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.##  A example test program for the shadowing propagation model#  Wei Ye, weiye@isi.edu, 2000# ======================================================================# Define options# ======================================================================set opt(chan)	Channel/WirelessChannel#set opt(prop)	Propagation/Shadowingset opt(netif)	Phy/WirelessPhyset opt(mac)	Mac/802_11set opt(ifq)	Queue/DropTail/PriQueueset opt(ll)		LLset opt(ant)	Antenna/OmniAntennaset opt(adhocRouting)   DSDVset opt(x)		100   ;# X dimension of the topographyset opt(y)		100   ;# Y dimension of the topographyset opt(ifqlen)	50	      ;# max packet in ifqset opt(seed)	0.0set opt(tr)		shadowing.tr    ;# trace fileset opt(nam)            shadowing.nam   ;# nam trace fileset opt(nn)             2             ;# how many nodes are simulatedset opt(stop)		2000.0		;# simulation time# =====================================================================# Other default settingsLL set mindelay_		50usLL set delay_			25usLL set bandwidth_		0	;# not usedLL set off_prune_		0	;# not usedLL set off_CtrMcast_		0	;# not usedAgent/Null set sport_		0Agent/Null set dport_		0Agent/CBR set sport_		0Agent/CBR set dport_		0Agent/TCPSink set sport_	0Agent/TCPSink set dport_	0Agent/TCP set sport_		0Agent/TCP set dport_		0Agent/TCP set packetSize_	1460Queue/DropTail/PriQueue set Prefer_Routing_Protocols    1# unity gain, omni-directional antennas# set up the antennas to be centered in the node and 1.5 meters above itAntenna/OmniAntenna set X_ 0Antenna/OmniAntenna set Y_ 0Antenna/OmniAntenna set Z_ 0.5Antenna/OmniAntenna set Gt_ 1.0Antenna/OmniAntenna set Gr_ 1.0# Initialize the SharedMedia interface with parameters to make# it work like the 914MHz Lucent WaveLAN DSSS radio interfacePhy/WirelessPhy set CPThresh_ 10.0Phy/WirelessPhy set CSThresh_ 1.559e-11#Phy/WirelessPhy set RXThresh_ 3.652e-10Phy/WirelessPhy set RXThresh_ 1.47635e-07Phy/WirelessPhy set bandwidth_ 2e6Phy/WirelessPhy set Pt_ 0.2818Phy/WirelessPhy set freq_ 914e+6 Phy/WirelessPhy set L_ 1.0# Pt_ is transmitted signal power. The propagation model and Pt_ determines# the received signal power of each packet. The packet can not be correctly# received if received power is below RXThresh_.# ======================================================================# Main Program# ======================================================================## Initialize Global Variables## create simulator instanceset ns_		[new Simulator]# set wireless channel#set wchan	[new $opt(chan)]#define propagation model# pathlossExp_ is path-loss exponent, for predicting mean received power# std_db_ is shadowing deviation (dB), reflecting how large the propagation# property changes within the environment.# dist0_ is a close-in reference distance, usually 1.0 m for indoor#set prop	[new Propagation/Shadowing]$prop set pathlossExp_ 2.0$prop set std_db_ 4.0$prop set dist0_ 1.0$prop seed predef 0# define topologyset wtopo	[new Topography]$wtopo load_flatgrid $opt(x) $opt(y)# create trace object for ns and namset tracefd	[open $opt(tr) w]set namtrace    [open $opt(nam) w]$ns_ trace-all $tracefd$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)# use new trace file format$ns_ use-newtrace ## Create God#set god_ [create-god $opt(nn)]## define how node should be created##global node setting$ns_ node-config  -adhocRouting $opt(adhocRouting) \		 -llType $opt(ll) \		 -macType $opt(mac) \		 -ifqType $opt(ifq) \		 -ifqLen $opt(ifqlen) \		 -antType $opt(ant) \		 -propInstance $prop \		 -phyType $opt(netif) \		 -channelType $opt(chan) \		 -topoInstance $wtopo \		 -agentTrace OFF \		 -routerTrace OFF \		 -macTrace ON##  Create the specified number of nodes [$opt(nn)] and "attach" them#  to the channel. for {set i 0} {$i < $opt(nn) } {incr i} {	set node_($i) [$ns_ node]	#	$node_($i) random-motion 0		;# disable random motion#	$node_($i) topography $wtopo}# # Define node positions#$node_(0) set X_ 0.0$node_(0) set Y_ 50.0$node_(0) set Z_ 0.0$node_(1) set X_ 20.0$node_(1) set Y_ 50.0$node_(1) set Z_ 0.0set udp_(0) [new Agent/UDP]$ns_ attach-agent $node_(0) $udp_(0)set null_(0) [new Agent/Null]$ns_ attach-agent $node_(1) $null_(0)set cbr_(0) [new Application/Traffic/CBR]$cbr_(0) set packetSize_ 128$cbr_(0) set interval_ 4.0$cbr_(0) set random_ 1$cbr_(0) set maxpkts_ 10000$cbr_(0) attach-agent $udp_(0)$ns_ connect $udp_(0) $null_(0)$ns_ at 1.0 "$cbr_(0) start"# Define node initial position in namfor {set i 0} {$i < $opt(nn)} {incr i} {    # 20 defines the node size in nam, must adjust it according to your scenario    # The function must be called after mobility model is defined        $ns_ initial_node_pos $node_($i) 20}## Tell nodes when the simulation ends#for {set i 0} {$i < $opt(nn) } {incr i} {    $ns_ at $opt(stop).000000001 "$node_($i) reset";}# tell nam the simulation stop time$ns_ at  $opt(stop)	"$ns_ nam-end-wireless $opt(stop)"$ns_ at  $opt(stop).000000001 "puts \"NS EXITING...\" ; $ns_ halt"puts "Starting Simulation..."$ns_ run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -