对于OMNET++来说,SUMO相当于后台有一个守护程序,这样就可以使两个仿真(sumo-launchd)运行起来更容易.
sumo-launchd是设计在幕后,监听到来的需求。在每一个到来的连接中,它能在XML脚本语言上接受仿真的启动,
然后启动一个新的SUMO的独立实例,并且在OMNET++和SUMO中代理请求。
sumo-launchd管理所有网络端口和文件。我们可以自由的启动和关闭SUMO的实例,极大地简化了批次量的执行仿
真的运行。
跑SUMO-launchd启动如下:
~/src/inet/etc/sumo-launchd.py -vv -c /c/Users/[...]/sumo.exe
这个命令行参数如下(注意这些只能工作在POSIX系统上,不在Windows上):
-h, --help show this help message and exit
-c COMMAND, --command=COMMAND
run SUMO as COMMAND [default: sumo]
-s, --shlex treat command as shell string to execute, replace {}
with command line parameters [default: no]
-p PORT, --port=PORT listen for connections on PORT [default: 9999]
-b ADDRESS, --bind=ADDRESS
bind to ADDRESS [default: 127.0.0.1]
-L LOGFILE, --logfile=LOGFILE
log messages to LOGFILE [default: TMPDIR/sumo-
launchd.log]
-v, --verbose increase verbosity [default: don't log infos, debug]
-q, --quiet decrease verbosity [default: log warnings, errors]
-d, --daemon detach and run as daemon [default: no]
-k, --kill send SIGTERM to running daemon first [default: no]
-P PIDFILE, --pidfile=PIDFILE
if running as a daemon, write pid to PIDFILE [default:
/tmp/sumo-launchd.pid]
-t, --keep-temp keep all temporary files [default: no]
一个XML 的启动配置如下:
<?xml version="1.0"?>
<launch>
<copy file="demo.net.xml" />
<copy file="demo.rou.xml" />
<copy file="demo.sumo.cfg" type="config" />
</launch>
在sumo终端结束后,一个在详细模式下的sumo-launchd的运行,会显示它的推出代码和退出状态,如下所示:
<?xml version="1.0"?> <status> <exit-code>XXX</exit-code> <start>0</start> <end>1</end> <status>XXX</status> <stdout><![CDATA[XXX]]></stdout> <stderr><![CDATA[XXX]]></stderr> </status>
范例如下:
SUMO运行成功:
- exit code: 0
- status: Done.
SUMO没有启动(由于没找到路径):
- exit code: -1
- status: Could not start SUMO (/tmp/sumo -c erlangen.sumo.cfg): [Error 2] The system cannot find the file specified
SUMO启动了,但是之后又失败了(尝试运行GUI版本的):
- exit code: 1
- status: Exited with error code 1
- stderr: Error: Requested command not implemented (0xcc): Command not implemented in sumo
SUMO启动了,但是失败了(因为网络文件被损坏了):
- exit code: 1
- status: Exited with error code 1
- stderr: Error: expected end of tag 'net' In file 'my.net.xml' At line/column 10948/3. Quitting (on error).
学veins可以仔细查找下这个软件:
http://www.ccs-labs.org/teaching/