• 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代码。能够尝试使用下。


      




  • 相关阅读:
    try-catch 回滚事务,避免回滚失效的操作
    Java 7中的Try-with-resources
    Linux开发环境之配置静态IP地址
    Windows和Linux系统如何退出python命令行
    Python基础(一)
    Linux开发环境之nginx
    Linux开发环境之安装自带jdk
    Linux删除命令的几种方式
    MySQL之新建索引原则
    webapp环境搭建(一)
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7270807.html
Copyright © 2020-2023  润新知