在网上搜了下加入模块的教程,搜到了一个帖子: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的更多相关文章

  1. ns3 Tutorial 中的日志模块(翻译)

      转载地址:http://blog.sina.com.cn/s/blog_8ecca79b0101d7fe.html     1  日志模块的使用   在运行 first.cc 脚本时,我们已经简单 ...

  2. LTE 测试文档(翻译)

    Testing Documentation 翻译 (如有不当的地方,欢迎指正!)     1 概述   为了测试和验证 ns-3 LTE 模块,文档提供了几个 test suites (集成在 ns- ...

  3. LTE Module User Documentation(翻译4)—— 使用 Fading Trace

    LTE用户文档 (如有不当的地方,欢迎指正!) 7 使用 Fading Trace   本节描述如何在 LTE 仿真中使用 fading traces .   (1)生成 Fading Traces  ...

  4. LTE Module User Documentation(翻译1)——背景、使用概述、基本的仿真程序和配置LTE模型参数

    LTE用户文档 (如有不当的地方,欢迎指正!) 1.背景 假定读者已经熟悉 ns-3 simulator ,能运行一般的仿真程序.如果不是的话,强烈推荐读者参考 [ns3tutorial].   2. ...

  5. (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序

    (五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...

  6. 在 ns-3.25中添加 plc(电力线载波) 模块

    上一篇安装好了 ns-3.25,这里继续往里添加 plc 模块.整理之前现推荐一个网站,大家可以参考. 英属哥伦比亚大学(University of British Columbia,UBC)提供NS ...

  7. NS3 日志(Logging)、命令行参数、Tracing系统概述(转载)

    NS-3日志子系统的提供了各种查看仿真结果的渠道: 一.使用Logging Module 1 [预备知识]日志级别及其对应的宏 NS-3 提供了若干个日志级别来满足不同的 Debug 需求,每一级的日 ...

  8. 读Zepto源码之Event模块

    Event 模块是 Zepto 必备的模块之一,由于对 Event Api 不太熟,Event 对象也比较复杂,所以乍一看 Event 模块的源码,有点懵,细看下去,其实也不太复杂. 读Zepto源码 ...

  9. Ubuntu12.04下安装NS3.25

    实验室项目的需求,要使用到NS3做仿真,使用实验室的电脑,Ubuntu12.04,版本比较低,建议大家使用16.04,这样安装依赖文件时不会出现版本过低的问题 (没管最后也安装成功了).下面就安装步骤 ...

随机推荐

  1. [ nginx ] 代理后端tomcat 无法显示图片报错:ERR_CONTENT_LENGTH_MISMATCH

    问题日志如下:

  2. 阿里云OSS C#回调服务实例代码

    先贴出客户端上传文件代码和毁掉函数的定义 需要的引用有:using Aliyun.OSS: 通过nuget包,获取aliyun.oss   dll string url = "http:// ...

  3. private,public,protected 的作用

    public  修饰的变量和函数可以在类的内部和外部都可以访问 protected   修饰的变量和函数只可以在类的内部访问,如果该类派生出子类,那么在子类中该变量和函数也可以使用 private   ...

  4. Selenium2+python自动化47-判断弹出框存在(alert_is_present)【转载】

    前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(ex ...

  5. QT各个版本的下载的地址

    http://download.qt.io/archive/qt/ USE [master]GO/****** Object:  Database [BookDB]    Script Date: 0 ...

  6. 1087: Common Substrings (哈希)

    1087: Common Substrings Time Limit:3000/1000 MS (Java/Others)   Memory Limit:163840/131072 KB (Java/ ...

  7. 火狐浏览器信息提取工具Dumpzilla

    火狐浏览器信息提取工具Dumpzilla   浏览器会自动保存用户访问网站的各项信息,如Cookie.网址.下载记录.书签等.通过分析这些信息,可以获取使用者的诸多个人信息和行为习惯.Kali Lin ...

  8. SD 一轮集训 day1 carcar

    可以发现每条边只能选一次或者两次,并且最后每个点的度数(∑邻接边选的次数和)都是偶数(代表有欧拉回路). 然后根据题意列一个 n 行 m+1 列的01矩阵,每一行代表一个异或方程组(每个点的度数是偶数 ...

  9. 【置换群】Codeforces Round #393 (Div. 1) A. Pavel and barbecue

    就是先看排列p,必须满足其是一个环,才满足题意.就处理出有几个环,然后把它们合起来,答案就是多少. 然后再看序列b,自己稍微画一画就会发现,如果有偶数个1肯定是不行哒,否则,它就会再置换一圈回到它自己 ...

  10. Ajax 使用formdata 实现 无刷新表单上传

    FormData对象的作用就类似于这里的serialize()方法,不过FormData是浏览器原生的,且支持二进制文件 1.这里实现一个无刷新上传图片,成功后页面显示 点击button 触发隐藏的 ...