返回

为方便读者,本教材中连续四行及以上程序源码(脚本),本网站将直接提供,直接输入使用。

(1)第45页倒数第7行共5行代码如下:
netconvert --osm-files lab4.osm -o lab4.net.xml
polyconvert --osm-files lab4.osm --net-file lab4.net.xml --type-file $SUMO_HOME/data/typemap/osmPolyconvert.typ.xml -o lab4.poly.xml
python3 $SUMO_HOME/tools/randomTrips.py -n lab4.net.xml -r lab4.rou.xml -e 100 -l
(2)第46页倒数第9行共4行代码如下:
sumo -c lab4.sumo.cfg --fcd-output lab4.sumo.xml
python3 $SUMO_HOME/tools/traceExporter.py --fcd-input lab4.sumo.xml --ns2config-output lab4.tcl --ns2activity-output lab4_activity.tcl --ns2mobility-output lab3_mobility.tcl
(3)第46页倒数第2行到第47页第6行完整代码如下:
BEGIN {
}
{
	if ((NF > 6) && ($6 <= 0)) next;
	else print $0;
}
END {
}
(4)第50页第2行开始25行代码如下:
BEGIN {
recvdSize = 0;
startTime = 400;
stopTime = 0;
}
{
	event = $1;
	time = $2;
	pkt_size = $8;
	level = $4;
	if (level == "AGT" && event == "s" && pkt_size >= 89) {
		if (time < startTime) {
			startTime = time;
		}
	}
	if (level == "AGT" && event == "r" && pkt_size >= 89) {
		if (time > stopTime) {
			stopTime = time;
		}
		recvdSize += pkt_size;
	}
}
END {
	printf("Average Throughput [kbps] = %.2f\tstartTime=%.2f\tstopTime=%.2f\n",
(recvdSize/(stopTime-startTime))*(8/1000),startTime,stopTime);
}

(5)第51页第15行开始12行代码如下:

BEGIN {
	recvd=0;
	rt_pkts=0;
}
{
	if (( $1 == "r") && ( $7 == "cbr" || $7 =="tcp" ) && ( $4=="AGT" )) recvd++;
	if (($1 == "s" || $1 == "f") && $4 == "RTR" && 
	    ($7 =="AODV" || $7 =="message" || $7 =="DSR")) rt_pkts++;
}
END {
	printf("Normalized Routing Load: %.5f\n", rt_pkts/recvd);
}