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

📄 kkk.tcl

📁 sensor network specifications example
💻 TCL
📖 第 1 页 / 共 2 页
字号:
			  set  udp_($contador_nodos) [new Agent/UDP]			  $node_($contador_nodos) attach $udp_($contador_nodos) $val(port)			  $app_($contador_nodos) attach-agent $udp_($contador_nodos)			}			$node_($contador_nodos) set X_ $x			$node_($contador_nodos) set Y_ $y			$node_($contador_nodos) set Z_ $z			puts "* Access point [$node_($contador_nodos) node-addr] = $contador_nodos created in ($x, $y, $z)"						for { set i 0 } { $i < [llength $start] } { incr i } {				$ns_ at $start "$app_($contador_nodos) start"			}						for { set i 0 } { $i < [llength $stop] } { incr i } {				$ns_ at $stop "$app_($contador_nodos) stop"			}			incr contador_nodos				}				###		# Grid distribution.				proc get_next_x {} {					global val						set aux [expr int(sqrt($val(nn)))]						return [expr (($contador_nodos) % $aux) * $val(x) / ($aux - 1)]					}				proc get_next_y {} {					global val			set aux [expr int(sqrt($val(nn)))]			return [expr (($contador_nodos) / $aux) * $val(y) / ($aux - 1)]					}				####		# Calculating the receiving threshold (RXThresh_ for Phy/Wireless)		# Wei Ye, weiye@isi.edu, 2000				proc Friis { Pt Gt Gr lambda L d} {		  set M [expr $lambda / (4 * 3.14159265359 * $d)]		  return [expr ($Pt * $Gt * $Gr * ($M * $M)) / $L]		}				proc TwoRay { Pt Gt Gr ht hr L d lambda } {		        set crossover_dist [expr (4 * 3.14159265359 * $ht * $hr) / $lambda]				        if { $d < $crossover_dist } {		                return [Friis $Pt $Gt $Gr $lambda $L $d]		        } else {		                return [expr $Pt * $Gt * $Gr * ($hr * $hr * $ht * $ht) / ($d * $d * $d * $d * $L)]		       }		}				###		proc set_default_settings {} {					global val					####			# Default network settings											set val(antenna) "Antenna/OmniAntenna"					Antenna/OmniAntenna set X_ 0 ;					Antenna/OmniAntenna set Y_ 0 ;					Antenna/OmniAntenna set Z_ 1.5 ;					Antenna/OmniAntenna set Gt_ 1.0 ;					Antenna/OmniAntenna set Gr_ 1.0 ;				 			###						 											# Using Mica 2 Mote settings																	set val(range) 100																setup_mica2 $val(antenna) $val(range)										set val(bandwidth) [Phy/WirelessPhy set bandwidth_]											set val(mac)	Mac/802_11									set val(ifq)	Queue/DropTail					set val(ifqlen)	200									set val(ll)	LL					set val(rp)	"LEACH"									# Configuration adjustment					if { $val(rp) == "LEACH" } {							set val(rp) DumbAgent				set val(leach) 1								if { $val(ll) != "RCALinkLayer" } {					puts "LEACH requires RCALinkLayer! Forcing it!!!"										set val(ll)	RCALinkLayer				}								if { $val(netif) != "Phy/WirelessPhy/LeachWirelessPhy" } {					puts "LEACH requires LeachWirelessPhy! Forcing it!!!"					set val(netif) Phy/WirelessPhy/LeachWirelessPhy				}								if { $val(mac) != "Mac/Sensor" } {					puts "LEACH requires Mac/Sensor! Forcing it!!!"					set val(mac) Mac/Sensor				}								set val(port) 0								Agent/RCAgent set sport_           $val(port)				Agent/RCAgent set dport_           $val(port)				Agent/RCAgent set packetMsg_       0				Agent/RCAgent set distEst_         0				Agent/RCAgent set packetSize_      0	                                                                                                                 				RCALinkLayer set delay_            25us				RCALinkLayer set bandwidth_        [Phy/WirelessPhy set bandwidth_]				RCALinkLayer set off_prune_        0				RCALinkLayer set off_CtrMcast_     0				RCALinkLayer set macDA_            0				RCALinkLayer set debug_            0			} else {				set val(leach) 0			}			if { $val(rp) == "DIRECTED DIFFUSION" } {				set val(rp) "Directed_Diffusion"			}				}				set val(father_addr) 0 		set val(port)	2020				set val(netif)	Phy/WirelessPhy				set_default_settings				# Global network settings						set contador_nodos 0				set val(chan)	Channel/WirelessChannel				# Propagation						set val(prop)	Propagation/TwoRayGround						# Energy model						set val(en)	EnergyModel/Battery						# Nodes		set val(n_pas)	1		set val(n_common) 10		set val(n_ch) 0		set val(nn)	[expr $val(n_pas) + $val(n_common) + $val(n_ch)]				puts "\nNodes count:"		puts " - $val(n_pas) access points"		puts " - $val(n_common) common nodes"		puts " - $val(n_ch) cluster heads"		puts " - $val(nn) nodes"		puts " - $val(rp) routing protocol"		puts " - $val(ll) link layer"		puts " - $val(netif) network interface"				# Scenario size		set val(x)	100.0		set val(y)	100.0				puts "\nScenario size: $val(x) x $val(y)"		set val(start)	0.0		set val(stop)	[expr $val(start) + 15.0]		set ns_		[new Simulator]							# Trace			puts "\nUsing trace.tr as trace file"			set traceFile	[open /root/Desktop/trace.tr w]			$ns_ trace-all $traceFile			$ns_ use-newtrace											set trace(mac) ON									set trace(router) ON									set trace(agent) ON									set trace(movement) ON								set topo	[new Topography]		$topo load_flatgrid $val(x) $val(y)		create-god $val(nn)		set rng [new RNG]		$rng seed [clock seconds]#-------------------------------------------------------------------------------------------				# Creating an access point		puts "Creating an access point..."				set_default_settings							# Using Mica 2 Mote settings						puts "Using mica 2 mote settings"											set val(range) 100										setup_mica2 $val(antenna) $val(range)						set local(x) 0.0				set local(y) 0.0				set local(z) 0.0				set local(start) ""		set local(stop) ""								set local(energy) 100.0				set val(apApp) Application/AccessPointApp/AccessPointLeachApp				create_access_point $local(energy) $local(x) $local(y) $local(z) $local(start) $local(stop)			# Creating common node		puts "Creating common node..."				set_default_settings							# Using Mica 2 Mote settings						puts "Using mica 2 mote settings"											set val(range) 100										setup_mica2 $val(antenna) $val(range)				# Disseminating settings						set val(disseminating_type) 0		;# Continuous				puts "Setting disseminating type to continuous"						set val(disseminating_interval)	20.0			puts "Setting disseminating interval: $val(disseminating_interval)"						set local(start) ""		set local(stop) ""								set local(energy) 10.0				set local(father_addr) $val(father_addr)					set val(processing) Processing/AggregateProcessing		set val(data_generator) "[create_data_generator {TemperatureDataGenerator} {5.0} {continuous} {25.0} {5.0} {30.0}]"			for { set common_node_i 0 } { $common_node_i < 10 } { incr common_node_i } {								set local(x) [$rng uniform 0.0 $val(x)]						set local(y) [$rng uniform 0.0 $val(y)]						set local(z) 0.0									set val(commonApp) Application/SensorBaseApp/CommonNodeApp/LeachApp				create_common_node $local(energy) $local(x) $local(y) $local(z) $local(father_addr) $local(start) $local(stop)				}		  		$ns_ at [expr $val(stop)] "flush stdout"		$ns_ at [expr $val(stop)+0.0001] "finish"		proc finish {} {		    global ns_ traceFile namtrace tempoInicio val				    $ns_ flush-trace		#    close $namtrace				    $ns_ halt		    $ns_ flush-trace		    $ns_ nam-end-wireless $val(stop)				    close $traceFile				    flush stdout				    exit 0		}		puts "Starting Simulation..."		$ns_ run			

⌨️ 快捷键说明

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