ns3加入模块之vanet-highway
在网上搜了下加入模块的教程,搜到了一个帖子:ns3加入模块 ,可是这个帖子只给出了如何加入的步骤。我认为写的比較简单,当我们须要加入别的模块时就不知道如何操作了。
所以,我写这个帖子,会将非常多遇到的细节问题和原因展现出来。
vanet-highway,这个模块是Bradley Dupont在Arbabi, Weigle的基础上进行改进的模块代码,使用了xml文件以及增加了很多其它的场景因素,详细能够參见相关文档。代码文档和介绍文档能够在google code中下载:谷歌code下载链接 ,有些不能翻墙的同学下载不了,我上传一份到csdn上:csdn代码下载
。这份代码来自于谷歌的ns3论坛:谷歌论坛代码下载,相对于google code中的代码更加符合module的目录分类。
分模块编译,能够參考这个帖子:ns3模块编译,用一个简单的样例。教你如何加入模块。ns3的官方也有教程。在ns3-manual中。ns3.20是在第18.2节:Adding a New Module to ns-3. 详细就不翻译了,非常好的參考资料。有一个python文件能够帮助你生成模块的相关文件和文件夹:
- ./create-module.py new-module
vanet-highway中是给了样例的。为了跑这个样例。在加入好模块之后(直接新建一个文件,然后将上述压缩文件拷贝进去就能够了)。然后须要使用waf来编译模块,在编译模块的过程中。因为ns3版本号的不断升级,ns3.15的使用方法和ns3.20的使用方法已经产生了一些改变,如今把编译过程中的一些问题(编译使用./waf),依照先后问题,做记录,以作參考:
1.(.text+0x18):对‘main’没有定义的引用。这个是我自己加入測试模块时。main函数拼写错误造成,还有可能是文件有没有保存。
2.BuildContext'
object has no attribute 'new_task_gen',对照一下文件,就知道新版的wscript的写法做了改变。例如以下改动就可以:
- #headers = bld.new_task_gen(features=['ns3header'])
- headers = bld(features='ns3header')
3.../src/vanet-highway/model/WifiConfigurationXml.h:50:36: error: ‘WIFI_PHY_STANDARD_80211p_CCH’ was not declared in this scope
使用谷歌搜索,搜索到了这个文件:http://www.nsnam.org/~pdbarnes/doxygen/wifi-phy-standard_8h_source.html,依照这个文件把这两个变量加入进去就可以。注意改动src中的代码。否则cleanproject之后又会丢掉。
4.../src/vanet-highway/model/Highway.cc:255:85:
error: ‘min’ was not declared in this scope
查看这个文件。math.h中没有这个函数,用fmin函数取代这个函数。
或者使用#include <algorithm>,然后用std::min来取代
5../src/vanet-highway/model/Highway.cc:83:28:
error: expected type-specifier before ‘list’
在list前面加一个std::list。
6.程序的执行方式,能够自己阅读样例程序。也能够參见:https://code.google.com/p/ns-3-highway-mobility/wiki/HighwayMobilityAndVehicularNetworksInNs3#How_To_Run
7.生成了文件vehicleTrace.csv和networkTrace.csv,详细含义。也能够在wiki中查看。
剩下的是分析代码,以及尝试用netanim来绘出车辆的运动轨迹。google
code中还提供了一个vehicle viewer代码。能够尝试使用下。
ns3加入模块之vanet-highway的更多相关文章
- ns3 Tutorial 中的日志模块(翻译)
转载地址:http://blog.sina.com.cn/s/blog_8ecca79b0101d7fe.html 1 日志模块的使用 在运行 first.cc 脚本时,我们已经简单 ...
- LTE 测试文档(翻译)
Testing Documentation 翻译 (如有不当的地方,欢迎指正!) 1 概述 为了测试和验证 ns-3 LTE 模块,文档提供了几个 test suites (集成在 ns- ...
- LTE Module User Documentation(翻译4)—— 使用 Fading Trace
LTE用户文档 (如有不当的地方,欢迎指正!) 7 使用 Fading Trace 本节描述如何在 LTE 仿真中使用 fading traces . (1)生成 Fading Traces ...
- LTE Module User Documentation(翻译1)——背景、使用概述、基本的仿真程序和配置LTE模型参数
LTE用户文档 (如有不当的地方,欢迎指正!) 1.背景 假定读者已经熟悉 ns-3 simulator ,能运行一般的仿真程序.如果不是的话,强烈推荐读者参考 [ns3tutorial]. 2. ...
- (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序
(五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...
- 在 ns-3.25中添加 plc(电力线载波) 模块
上一篇安装好了 ns-3.25,这里继续往里添加 plc 模块.整理之前现推荐一个网站,大家可以参考. 英属哥伦比亚大学(University of British Columbia,UBC)提供NS ...
- NS3 日志(Logging)、命令行参数、Tracing系统概述(转载)
NS-3日志子系统的提供了各种查看仿真结果的渠道: 一.使用Logging Module 1 [预备知识]日志级别及其对应的宏 NS-3 提供了若干个日志级别来满足不同的 Debug 需求,每一级的日 ...
- 读Zepto源码之Event模块
Event 模块是 Zepto 必备的模块之一,由于对 Event Api 不太熟,Event 对象也比较复杂,所以乍一看 Event 模块的源码,有点懵,细看下去,其实也不太复杂. 读Zepto源码 ...
- Ubuntu12.04下安装NS3.25
实验室项目的需求,要使用到NS3做仿真,使用实验室的电脑,Ubuntu12.04,版本比较低,建议大家使用16.04,这样安装依赖文件时不会出现版本过低的问题 (没管最后也安装成功了).下面就安装步骤 ...
随机推荐
- scrapy模拟知乎登录(无验证码机制)
---恢复内容开始--- spiders 文件夹下新建zhihu.py文件(从dos窗口中进入虚拟环境,再进入工程目录之后输入命令 scrapy genspider zhihu www.zhihu.c ...
- crontab执行脚本失败问题
如果脚本在终端执行正常,而在crontab里执行失败, 一般跟root用户无关,而是和系统变量有关,一般加上绝对路径执行java命令即可: /usr/java/jdk/bin/java xxx.jar
- request.getRequestDispatcher(url).forward(request, response)
request.getRequestDispatcher().forward(request, response) 意思是将客户端的请求转向到 getRequestDispatcher()方法中参数定 ...
- Python 进阶 之 enumerate()函数
enumerate()是Python的内置函数,无需依赖包,enumerate()作用是可以将生成器包装成生成器,类似于range,但enumerate()可以自动生成索引. enumerate(pa ...
- RESTful 接口实现简明指南
REST 简介 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」,这是个很拗口的词.我的建议是先不要强行理解,直接看怎么做,等对实施 ...
- C# 调试程序时如何输入命令行参数
调试程序时如何输入命令行参数http://www.a769.com/archives/320.html 开发命令行程序时,我们会疑惑,从那里输入参数呢?请看下面的教程,让你摆脱困扰. 1.点击菜单栏: ...
- java 8中撤销永久代,引入元空间
撤销永久代,引入元空间: 在 JDK 1.8 中,HotSpot 已经没有 “PermGen space”这个空间了,取而代之是一个叫做 Metaspace(元空间) 的东西. Java7中已经将字符 ...
- [mysql] 添加用户,赋予不同的管理权限
增加新用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数 ...
- CF 990A. Commentary Boxes【数学/模拟】
[链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...
- UVA 1514 Piece it together (二分图匹配)
[题目链接] Link [题目大意] 给你一些由一块黑块和两块白块组成的L形拼图,问你是否能够拼成给出的图 [题解] 我们将所有的黑块拆点,拆分为纵向和横向,和周围的白块连边, 如果能够得到完美匹配, ...