NS3学习笔记:安装、ns3-gym、ns3-leo、vscode联调

一、安装

已经安装过n个版本了。。。

现在除了版本号>=3.36的用cmake代替了waf编译以外,好像没有什么变化

下载具体流程参考以下网址,改改版本号就行,其他都一样,目前我用的是3.35

Ubuntu上安装NS3(最详细的图文介绍)_ubuntu虚拟机安装ns3-CSDN博客

二、安装ns3-gym

直接参考这篇博客就好,非常详细

建议ubuntu用20.04,不然一直会有zmq的版本不匹配问题,很麻烦

在Ubuntu 20.04上安装NS3.34和NS3-gym - Minaduki's Blog

三、安装ns-3-leo

这个模块是拿来做卫星leo仿真的,还在研究中,版本可能有点限制,论文用的是3.30,目前还只有wscript,所以我用的3.35版本,据说源码还有大坑,唉再看吧

从github上可以下载,解压后放到/ns-allinone-3.35/ns-3.35/src

根据wscript(ns3-users论坛上的大佬有提到)要改名为:leo

然后重新configure、build就好

sudo ./waf configure --enable-examples --enable-tests
sudo ./waf build

但是有不少坑

  1. 可能会报错找不到“ns3/xxxx.h”:最简单粗暴的方法就是去找这个头文件,直接复制到/build/ns3/目录下,多半是编译的时候没有吧这个头文件编译进去,更底层的原因我也不知道了
  2. 找不到"“epedemic-routing-module.h”:一开始死活找不到这个头文件,后来才看明白“xxx-module.h”就是src下面各个module编译成功形成的头文件,从网上去找了“epedemic-routing”,当做新模块插入就可以啦,注意ns3-store里面也有这个模块,但是用了CMake,幸好从github上面找到了老版本
  3. leo的examples源码运行的时候会报错,依旧是版本问题,参考这个回答,完美解决​​​​​​NS3版本细节_error: ‘default’ is not a member of ‘ns3::yanswifi-CSDN博客

四、用VScode联合调试

之前用过一段时间NS3,当时用的虚拟机,安装上VScode就已经很卡了,最后是直接用文本编辑器一段段敲的。。。

最近实在受不了卡顿的虚拟机了,果断换了双系统,不得不说流畅多了,就是操作指令还不是很适应,因为后面还要用pytorch+NS3联调,所以还是决定用VScode

  1. 安装很简单,官网下载deb再安装就行
  2. 安装好了先把插件弄好,常用的c\c++\python之类的,就选排名最靠前的就行了
  3. 最后是需要在/ns3-allinone-3.35/ns-3.35/目录下打开vscode,因为我自己还插入了模块,我发现不用sudo模块waf好像都会报错,所以选择切换成root模式打开vscode
  4. 打开了以后要去修改一些配置文件,都会自动出现在当前文件夹下的.vscode文件夹下,可以参考这两篇文章【ns-3】VS Code开发环境配置_如何用vscode打开ns3-CSDN博客
    1. C\C++ Edit Configurations:用ctrl+shift+P打开配置,搜索,然后打开json或者ui格式编辑都可以,主要改"includePath",可以实现代码提示,这个看了网上很多教程都没有成功,最后在youtube上找到了教程,这里的路径多加了一条就ok了
    2. tasks.json:一开始怎么也找不到,网上说是版本问题,现在的vscode应该是隐藏了这些文件,后面是选中了xx.cpp文件,在"终端-配置默认任务”里面选择cpp的那个选项,会自动生成task.json的模版文件,主要修改文件目录和编译命令"command"
    3. launch,json:这个也是完全找不到,最后是在vscode左边的调试那里新建调试文件才有的,一样是修改"program“的路径
  5. 最后ctrl+shift+B重新编译运行就可以啦,注意NS3默认运行的目录是在scratch下面,我一般是把代码copy过去,这样也不影响源代码
#1.打开
#普通打开
code .
#管理员模式打开
sudo code --no-sandbox --disable-gpu-sandbox --user-data-dir=/root/.vscode/

#2.修改c_cpp_
 "includePath": [

                "${workspaceFolder}/build/ns3/**"
                "home/zoe/ns-allinone-3.35/ns-3.35/build/"

            ], 

#3.修改task.json
"command":"./waf"

#4.修改launch.json
"programs":"/home/zoe/ns-allinone-3.35/ns-3.35/build/scratch/${fileBasenameNoExtension}"


终于把NS3搞好了,接下来还要coding,继续努力吧,也欢迎大家来和我讨论,每一步的坑要走出来都不容易啊~

  • 40
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
IoT是物联网(Internet of Things)的缩写,是指通过物理设备和传感器等技术将物理世界与互联网连接起来的概念。Sensor是传感器的意思,是一种能够感知和测量周围环境参数的装置。Gym master是指健身房的管理系统。那么,"IoT-Sensor-Gym-Master"指的是结合物联网、传感器技术和健身房管理系统的项目或产品。 在这个项目中,通过在健身房内部部署各种类型的传感器设备,可以实时感知和监控健身房的各种环境参数以及用户的行为。例如,可以使用体感传感器来监测用户的运动状态,心率传感器来监测用户心率变化,温湿度传感器来监测环境的温度和湿度等等。这些传感器会把收集到的数据通过物联网技术传输到云端服务器进行处理和分析。 在云端服务器上,会有一个健身房管理系统,通过对接收到的传感器数据进行分析和处理,可以提供各种健身相关的功能和服务。例如,可以根据用户的运动状态自动调整健身器材的强度,提供个性化的健身方案;还可以通过用户心率数据实时预警和监控用户的身体状况,保证用户的健康安全;同时,还可以通过温湿度传感器来实时监测健身房的环境,保证用户的舒适度。 总之,"IoT-Sensor-Gym-Master"项目结合了物联网、传感器技术和健身房管理系统的优势,将智能化和个性化服务引入健身领域,为用户提供更好的健身体验和管理服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值