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

📄 kkk.tcl

📁 sensor network specifications example
💻 TCL
📖 第 1 页 / 共 2 页
字号:
			# Generated by MannaSim		# http://www.mannasim.dcc.ufmg.br/				puts "Initializing MannaSim Script..."		#Consumo de energia do sensor node - Dados do Mica Motes		set mica(sensing_power) 0.015 ;# i = 5mA, V = 3 --> P = ixV = 15 mW = 0.015 W		set mica(processing_power) 0.024 ;# i = 8mA, V = 3 --> P = ixV = 24 mW = 0.024 W		set mica(instructions_per_second) 8000000 ;# Atmel 128L 8MHZ --> 8MIPS				#Consumo de energia do sensor node - Dados do WINS		set wins(sensing_power) 0.064 ;# 64 mW = 0.064 W		set wins(processing_power) 0.360 ;# 360 mW = 0.360 W		set wins(instructions_per_second) 150000000 ;# Intel StrongArm 1100 133 MHZ --> 150 MIPS				#Seta valores para consumo de energia com o radio		set mica(consumo_transmissao) 0.036 ;#i = 12mA, V = 3 --> P = ixV = 36mW = 0.036W		set mica(consumo_recepcao) 0.024 ;#i = 8mA, V = 3 --> P = ixV = 24mW = 0.024W				set wins(consumo_transmissao)	3.75 ;# 3.75 250m, 0.6 600 mW - 100m		set wins(consumo_recepcao) 1.875 ;# 1.875 250m,  0.3 300 mW				#seta a taxa de transmissao		#Phy/WirelessPhy set  bandwidth_		set mica(taxa_transmissao) 28.8*10e3 ;#28.8 kbps		set wins(taxa_transmissao) 100*10e3 ;#100 kbps				proc setup_mica2 { antenna range }  {					puts "Setting up mica 2 mote with $antenna and range = $range"					#Phy/WirelessPhy set CPThresh_ 10.0			#Phy/WirelessPhy set CSThresh_ 1.559e-11			#Phy/WirelessPhy set RXThresh_ 2.78869e-09	; # 100 meters			#Phy/WirelessPhy set RXThresh_ 1.11548e-08	; # 50 meters			#Phy/WirelessPhy set Rb_ 2*1e6						Phy/WirelessPhy set Pt_ 0.281838			Phy/WirelessPhy set freq_ 2.4e09			Phy/WirelessPhy set L_ 1.0			Phy/WirelessPhy set lambda_ 0.125			Phy/WirelessPhy set RXThresh_ [TwoRay 0.281838 [$antenna set Gt_] [$antenna set Gr_] 0.8 0.8 1.0 $range 0.125]			Phy/WirelessPhy set bandwidth_ 28.8*10e3 		;#28.8 kbps						Node/MobileNode/SensorNode set sensingPower_ 0.015			Node/MobileNode/SensorNode set processingPower 0.024			Node/MobileNode/SensorNode set instructionsPerSecond_ 8000000		}				##########################################		# CONSTANTES		#########################################		# Continuo: 0		# Programada: 1		# Sob Demanda: 2		########################################				proc create_common_app {destination_id disseminating_type disseminating_interval} {		  global val		  if { $val(commonApp) == "Application/SensorBaseApp/CommonNodeApp/LeachApp" } {		  	  if { $val(n_ch) == 0 } {		  	  	   puts "NO CLUSTER HEADS HAS BEEN DEFINED! Assuming 20% of common nodes."		  	  	   set val(n_ch) [expr int($val(n_common) * 2 / 10)]		  	  }		  	  set app_ [new $val(commonApp) $val(nn) $val(n_ch) [expr sqrt($val(x) * $val(x) + $val(y) * $val(y))]]		  } else {			  set app_ [new $val(commonApp)]			  $app_ set destination_id_ $destination_id		  }		  $app_ set disseminating_type_ $disseminating_type		  $app_ set disseminating_interval_ $disseminating_interval		  return $app_		}				set val(commonApp) "Application/SensorBaseApp/CommonNodeApp"		set val(chApp)     "Application/SensorBaseApp/ClusterHeadApp"		set val(apApp)	   "Application/AccessPointApp"				proc create_cluster_head_app {destination_id disseminating_type disseminating_interval} {		  global val		  set app_ [new $val(chApp)]		  $app_ set destination_id_ $destination_id		  $app_ set disseminating_type_ $disseminating_type		  $app_ set disseminating_interval_ $disseminating_interval		  return $app_		}				proc create_access_point_app {outside_network} {		  global val		  set app_ [new $val(apApp)]		  $app_ set outside_network_ $outside_network		  return $app_		}				proc create_temp_data_generator {sensing_interval sensing_type avg_measure std_deviation maximumTemperatureAllowedValue} {		  set temp_gen_ [new DataGenerator/TemperatureDataGenerator]		  $temp_gen_ set sensing_interval_ $sensing_interval		  $temp_gen_ set sensing_type_ $sensing_type		  $temp_gen_ set avg_measure $avg_measure		  $temp_gen_ set std_deviation $std_deviation		  $temp_gen_ set maximumTemperatureAllowedValue_ $maximumTemperatureAllowedValue		  return $temp_gen_		}		proc create_data_generator {generator sensing_interval sensing_type avg_measure std_deviation maximumTemperatureAllowedValue} {		  set temp_gen_ [new DataGenerator/$generator]		  $temp_gen_ set sensing_interval_ $sensing_interval		  		  if {$sensing_type=="continuous"} {			  $temp_gen_ set sensing_type_ 0		  } elseif {$sensing_type=="programmed"} {			  $temp_gen_ set sensing_type_ 1		  } elseif {$sensing_type=="on demand"} {			  $temp_gen_ set sensing_type_ 2		  } else {		  			  $temp_gen_ set sensing_type_ $sensing_type		  }		  $temp_gen_ set avg_measure $avg_measure		  $temp_gen_ set std_deviation $std_deviation		  $temp_gen_ set maximumTemperatureAllowedValue_ $maximumTemperatureAllowedValue		  return $temp_gen_		}				proc create_common_node { iniEnergy x y z father_addr start stop } {			global val ns_ node_ topo udp_ app_ gen_ contador_nodos rng trace					if { [llength $start] == 0 }  {				set start [expr $val(start) + [$rng uniform 0 1]]				set stop $val(stop)			}					$ns_ node-config -sensorNode ON \			-adhocRouting $val(rp) \			-llType $val(ll) \			-macType $val(mac) \			-ifqType $val(ifq) \			-ifqLen $val(ifqlen) \			-antType $val(antenna) \			-propType $val(prop) \			-energyModel $val(en) \			-phyType $val(netif) \			-channelType $val(chan) \			-topoInstance $topo \			-agentTrace $trace(agent) \			-routerTrace $trace(router) \			-macTrace $trace(mac) \			-rxPower 0.024 \			-txPower 0.036 \			-initialEnergy $iniEnergy \			-movementTrace $trace(movement)						set node_($contador_nodos) [$ns_ node]			$node_($contador_nodos) random-motion 0				#	set x [$rng uniform 0.0 $val(x)]		#	set y [$rng uniform 0.0 $val(y)]		#			set bla [expr int(sqrt($val(nn)))]#			set x [expr (($contador_nodos) % $bla) * $val(x) / ($bla - 1)]#			set y [expr (($contador_nodos) / $bla) * $val(y) / ($bla - 1)]			$node_($contador_nodos) set X_ $x			$node_($contador_nodos) set Y_ $y			$node_($contador_nodos) set Z_ $z			puts "* Node [$node_($contador_nodos) node-addr] = $contador_nodos created in ($x, $y, $z)"					set app_($contador_nodos) [create_common_app $father_addr $val(disseminating_type) $val(disseminating_interval)]			if { $val(leach) == 1 } {			  set agent [new Agent/RCAgent]			  			  $agent set sport_ 0			  $agent set dport_ 0						  $node_($contador_nodos) attach $agent 0			  $app_($contador_nodos) attach-agent $agent			 			  $agent add-ll [$node_($contador_nodos) set ll_(0)] [$node_($contador_nodos) set mac_(0)]			} else {				set udp_($contador_nodos) [new Agent/UDP]				$node_($contador_nodos) attach $udp_($contador_nodos) $val(port)			}			$node_($contador_nodos) add-app $app_($contador_nodos)					set processing_($contador_nodos) [new $val(processing)]					$app_($contador_nodos) node $node_($contador_nodos)			if { $val(leach) != 1 } {				$app_($contador_nodos) attach-agent $udp_($contador_nodos)			}					$app_($contador_nodos) attach-processing $processing_($contador_nodos)			$processing_($contador_nodos) node $node_($contador_nodos)					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"			}				#[create_temp_data_generator  5.0 0 27.0 10.0 50]			set gen_($contador_nodos) $val(data_generator)							$app_($contador_nodos) attach_data_generator $gen_($contador_nodos)					incr contador_nodos				}		proc create_cluster_head_node { iniEnergy x y z father_addr start stop } {					global val ns_ node_ topo udp_ app_ gen_ contador_nodos rng trace					if { [llength $start] == 0 }  {				set start [expr $val(start) + [$rng uniform 0 1]]				set stop $val(stop)			}					$ns_ node-config -sensorNode ON \			-adhocRouting $val(rp) \			-llType $val(ll) \			-macType $val(mac) \			-ifqType $val(ifq) \			-ifqLen $val(ifqlen) \			-antType $val(antenna) \			-propType $val(prop) \			-energyModel $val(en) \			-phyType $val(netif) \			-channelType $val(chan) \			-topoInstance $topo \			 -agentTrace $trace(agent) \			-routerTrace $trace(router) \			-macTrace $trace(mac) \			-rxPower 0.024 \			-txPower 0.036 \			-initialEnergy $iniEnergy \			-movementTrace $trace(movement)						set node_($contador_nodos) [$ns_ node]			$node_($contador_nodos) random-motion 0				#	set x [$rng uniform 0.0 $val(x)]		#	set y [$rng uniform 0.0 $val(y)]		#			set bla [expr int(sqrt($val(nn)))]#			set x [expr (($contador_nodos) % $bla) * $val(x) / ($bla - 1)]#			set y [expr (($contador_nodos) / $bla) * $val(y) / ($bla - 1)]			$node_($contador_nodos) set X_ $x			$node_($contador_nodos) set Y_ $y			$node_($contador_nodos) set Z_ $z			puts "* Cluster head [$node_($contador_nodos) node-addr] = $contador_nodos created in ($x, $y, $z)"					set udp_($contador_nodos) [new Agent/UDP]					set app_($contador_nodos) [create_cluster_head_app $father_addr $val(disseminating_type) $val(disseminating_interval)]						$node_($contador_nodos) attach $udp_($contador_nodos) $val(port)			$node_($contador_nodos) add-app $app_($contador_nodos)		#CN#		set processing_($contador_nodos) [new $val(processing)]					$app_($contador_nodos) node $node_($contador_nodos)			$app_($contador_nodos) attach-agent $udp_($contador_nodos)		#CN#		$app_($contador_nodos) attach-processing $processing_($contador_nodos)			$processing_($contador_nodos) node $node_($contador_nodos)					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"			}		#CN#		set gen_($contador_nodos) $val(data_generator)#CN#		$app_($contador_nodos) attach_data_generator $gen_($contador_nodos)					incr contador_nodos				}				proc create_access_point { iniEnergy x y z start stop} {			global ns_ val node_ app_ udp_ contador_nodos topo trace rng						if { [llength $start] == 0 }  {				set start [expr $val(start) + [$rng uniform 0 1]]				set stop $val(stop)			}						$ns_ node-config -sensorNode ON \			-adhocRouting $val(rp) \			-llType $val(ll) \			-macType $val(mac) \			-ifqType $val(ifq) \			-ifqLen $val(ifqlen) \			-antType $val(antenna) \			-propType $val(prop) \			-energyModel $val(en) \			-phyType $val(netif) \			-channelType $val(chan) \			-topoInstance $topo \			 -agentTrace $trace(agent) \			-routerTrace $trace(router) \			-macTrace $trace(mac) \			-rxPower 0.5 \			-txPower 0.5 \			-initialEnergy $iniEnergy \			-movementTrace $trace(movement)			set node_($contador_nodos) [$ns_ node]			$node_($contador_nodos) random-motion 0			set app_($contador_nodos) [create_access_point_app [$node_(0) node-addr]]									if { $val(leach) == 1 } {			  set agent [new Agent/RCAgent/LeachAgent]			  			  $agent set sport_ 0			  $agent set dport_ 0						  $node_($contador_nodos) attach $agent 0			  $app_($contador_nodos) attach-agent $agent			 			  $agent add-ll [$node_($contador_nodos) set ll_(0)] [$node_($contador_nodos) set mac_(0)]			} else {

⌨️ 快捷键说明

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