broadcast_validation.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:5k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # Copyright (C) 2007
  2. # Mercedes-Benz Research & Development North America, Inc. and
  3. # University of Karlsruhe (TH)
  4. # All rights reserved.
  5. #
  6. # Qi Chen                 : qi.chen@daimler.com
  7. # Felix Schmidt-Eisenlohr : felix.schmidt-eisenlohr@kit.edu
  8. # Daniel Jiang            : daniel.jiang@daimler.com
  9. # For further information see:
  10. # http://dsn.tm.uni-karlsruhe.de/english/Overhaul_NS-2.php
  11. # Parameters: seed
  12. set val(seed) [lindex $argv 0]
  13. Mac/802_11 set CWMin_               15
  14. Mac/802_11 set CWMax_               1023
  15. Mac/802_11 set SlotTime_            0.000009
  16. Mac/802_11 set SIFS_                0.000016
  17. Mac/802_11 set ShortRetryLimit_     7
  18. Mac/802_11 set LongRetryLimit_      4
  19. Mac/802_11 set PreambleLength_      60
  20. Mac/802_11 set PLCPHeaderLength_    60
  21. Mac/802_11 set PLCPDataRate_        6.0e6
  22. Mac/802_11 set RTSThreshold_        2000
  23. Mac/802_11 set basicRate_           6.0e6
  24. Mac/802_11 set dataRate_            6.0e6
  25. Mac/802_11Ext set CWMin_            15
  26. Mac/802_11Ext set CWMax_            1023
  27. Mac/802_11Ext set SlotTime_         0.000009
  28. Mac/802_11Ext set SIFS_             0.000016
  29. Mac/802_11Ext set ShortRetryLimit_  7
  30. Mac/802_11Ext set LongRetryLimit_   4
  31. Mac/802_11Ext set HeaderDuration_   0.000020 
  32. Mac/802_11Ext set SymbolDuration_   0.000004
  33. Mac/802_11Ext set BasicModulationScheme_ 0
  34. Mac/802_11Ext set use_802_11a_flag_ true
  35. Mac/802_11Ext set RTSThreshold_     2000
  36. Mac/802_11Ext set MAC_DBG           0
  37. Phy/WirelessPhy set CSThresh_       6.30957e-12
  38. Phy/WirelessPhy set Pt_             0.001
  39. Phy/WirelessPhy set freq_           5.18e9
  40. Phy/WirelessPhy set L_              1.0
  41. Phy/WirelessPhy set RXThresh_       3.652e-10
  42. Phy/WirelessPhy set bandwidth_      20e6
  43. Phy/WirelessPhy set CPThresh_       10.0
  44. Phy/WirelessPhyExt set CSThresh_           6.30957e-12
  45. Phy/WirelessPhyExt set Pt_                 0.001
  46. Phy/WirelessPhyExt set freq_               5.18e9
  47. Phy/WirelessPhyExt set noise_floor_        2.51189e-13
  48. Phy/WirelessPhyExt set L_                  1.0
  49. Phy/WirelessPhyExt set PowerMonitorThresh_ 2.10319e-12
  50. Phy/WirelessPhyExt set HeaderDuration_     0.000020
  51. Phy/WirelessPhyExt set BasicModulationScheme_ 0
  52. Phy/WirelessPhyExt set PreambleCaptureSwitch_ 1
  53. Phy/WirelessPhyExt set DataCaptureSwitch_  0
  54. Phy/WirelessPhyExt set SINR_PreambleCapture_ 2.5118
  55. Phy/WirelessPhyExt set SINR_DataCapture_   100.0
  56. Phy/WirelessPhyExt set trace_dist_         1e6
  57. Phy/WirelessPhyExt set PHY_DBG_            0
  58. Phy/WirelessPhyExt set CPThresh_           0 ;# not used at the moment
  59. Phy/WirelessPhyExt set RXThresh_           0 ;# not used at the moment
  60. #=====================================================================
  61. #configure RF model parameters
  62. Antenna/OmniAntenna set Gt_ 1.0
  63. Antenna/OmniAntenna set Gr_ 1.0
  64. Propagation/Nakagami set use_nakagami_dist_ false
  65. Propagation/Nakagami set gamma0_ 2.0
  66. Propagation/Nakagami set gamma1_ 2.0
  67. Propagation/Nakagami set gamma2_ 2.0
  68. Propagation/Nakagami set d0_gamma_ 200
  69. Propagation/Nakagami set d1_gamma_ 500
  70. Propagation/Nakagami set m0_  1.0
  71. Propagation/Nakagami set m1_  1.0
  72. Propagation/Nakagami set m2_  1.0
  73. Propagation/Nakagami set d0_m_ 80
  74. Propagation/Nakagami set d1_m_ 200
  75. #=======================================================================
  76. set val(chan)       Channel/WirelessChannel
  77. set val(prop)       Propagation/TwoRayGround
  78. set val(netif)      Phy/WirelessPhyExt
  79. set val(mac)        Mac/802_11Ext
  80. set val(ifq)        Queue/DropTail/PriQueue
  81. set val(ll)         LL
  82. set val(ant)        Antenna/OmniAntenna
  83. set val(x)          1100    ;# X dimension of the topography
  84. set val(y)          20    ;# Y dimension of the topography
  85. set val(ifqlen)     20           ;# max packet in ifq
  86. set val(nn)         200         ;# how many nodes are simulated
  87. set val(rtg)        DumbAgent
  88. set val(stop)       5           ;# simulation time
  89. # =====================================================================
  90. # Main Program
  91. # ======================================================================
  92. #
  93. # Initialize Global Variables
  94. #
  95. global defaultRNG
  96. $defaultRNG seed $val(seed)
  97. set ns_ [new Simulator]
  98. set topo [new Topography]
  99. set tracefd stdout
  100. $ns_ trace-all $tracefd
  101. #$ns_ use-newtrace
  102. $topo load_flatgrid $val(x) $val(y)
  103. set god_ [create-god $val(nn)]
  104. $god_ off
  105. set chan [new $val(chan)]
  106. $ns_ node-config -adhocRouting $val(rtg) 
  107.                  -llType $val(ll) 
  108.                  -macType $val(mac) 
  109.                  -ifqType $val(ifq) 
  110.                  -ifqLen $val(ifqlen) 
  111.                  -antType $val(ant) 
  112.                  -propType $val(prop) 
  113.                  -phyType $val(netif) 
  114.                  -channel $chan 
  115.          -topoInstance $topo 
  116.          -agentTrace ON 
  117.                  -routerTrace OFF 
  118.                  -macTrace OFF 
  119.                  -phyTrace OFF
  120. for {set i 0} {$i < 200 } {incr i} {
  121.     set ID_($i) $i
  122.     set vehicle_($i) [$ns_ node]
  123.     $vehicle_($i) set id_  $ID_($i)
  124.     $vehicle_($i) set address_ $ID_($i)
  125.     $vehicle_($i) set X_ [expr $i * 5]
  126.     $vehicle_($i) set Y_ 10
  127.     $vehicle_($i) set Z_ 0
  128.     $vehicle_($i) nodeid $ID_($i)
  129.     set agent_($i) [new Agent/PBC]
  130.     $ns_ attach-agent $vehicle_($i)  $agent_($i)
  131.     $agent_($i) set Pt_ 1e-4
  132.     $agent_($i) set payloadSize 1000
  133.     $agent_($i) set peroidcaBroadcastInterval 0.2
  134.     $agent_($i) set peroidcaBroadcastVariance 0.05
  135.     $agent_($i) set modulationScheme 1
  136.     $agent_($i) PeriodicBroadcast ON
  137.     $ns_ at $val(stop).0 "$vehicle_($i) reset";
  138. }
  139. $ns_ at $val(stop).0002 "puts "NS EXITING..." ; $ns_ halt"
  140. $ns_ at $val(stop).0003 "$ns_ flush-trace"
  141. puts "Starting Simulation..."
  142. $ns_ run