Openvisualizer 搭建教程(零基础)


前言

本文主要是一篇搭建流程以及在搭建过程中遇到的问题的记录。Openvisualizer是是加州大学伯克利分校的OpenWSN项目的一部分,可以对无线传感器网络进行模拟仿真。在项目网页上有对OV的搭建教程,这里附上链接。之前没怎么用过python,因为学习需要,作为一个小白,和同门在安装这个包的时候遇到了很多问题。OV最早在2013年发布了第一个版本,所以只支持python2.7。目前python已经更新到3.11,很多依赖包已经不兼容了。所以其实按照官方的步骤进行搭建,绝大多数的问题都是版本兼容问题。接下来按照链接里的步骤进行搭建,并对我遇到的问题进行整理。


一、软件准备

1.下载 OpenWSN

首先要下载OpenWSN这个项目的依赖包,主要包含以下三个:
在这里插入图片描述
根据官方的解释来看,coap是实现应用层CoAP协议的python模块。openvisualizer是保存在本地的软件源代码,我个人的理解的话这个包应该是提供了一个交互界面以及对整个项目操作的指令等。openwsn-fw保存运行在(模拟)微尘上的固件源代码。因为这三个包的源都是人家的github,可以用Git来进行下载,所以可以先下载Git(在OV2.0中仍会用到)(教程里用的是tortoisegit)。

下载安装后,在桌面点击右键,选择 Git Clone ,在 URL 中粘贴包的网址:
openwsn-fw:https://github.com/openwsn-berkeley/openwsn-fw.git
openvisualizer:https://github.com/openwsn-berkeley/openvisualizer.git
coap:https://github.com/openwsn-berkeley/coap.git
在这里插入图片描述
在这里插入图片描述

依次下载好后,三个包会在桌面上。这里有几个点要说一下:
1、在下载Git和tortoisegit的时候可能会存在科学上网的问题;
2、用这种方式下载的包是最新的版本,特别是openvisualizer得到的其实是2.0版,它里面依赖包的版本都不一样,在后面无法进行编译和仿真。
因为现在OV2.0已经投入使用,其搭建流程会在后面发布。但OV1.0也能用,并且项目官方提供的搭建教程也是针对的OV1.0,所以可以在文末附上的网盘里下载三个包。

2.下载 mingw

根据项目页的描述,mingw提供了构建固件的所有工具。安装的时候路径选择 C:\MingGW\ ,然后将 C:\MinGW\bin 加入Path环境变量。(添加环境变量的教程在网上有很详细,这里不赘述)。
打开mingw,在选择 Basic setup 里选中 ming32-base、msys-base
在这里插入图片描述
点击Installation->Apply Changes。
在这里插入图片描述
等待安装。
在这里插入图片描述
安装成功(这里有可能会报错,显示某文件安装失败,可以尝试重复步骤,或者remove后重新来过)
验证是否成功:打开cmd,输入指令

gcc --version


能看到版本号相关信息即为安装成功。(cmd命令在网上的资料也很详细,在这里的教程只需简单指令应用)

3.Python安装

OV只支持Python2.7,安装包在文末网盘链接

在这里插入图片描述
这里的安装过程全部使用的默认选择。安装后,将 C:\Python27C:\Python27\Scripts 加入Path环境变量。
验证:输入指令

python --version

在这里插入图片描述
OK!

4.下载pywin32

跟虚拟tap进行交互(往后有很多包我还不清楚详细用途比如这个,但对于搭建环境并不影响)
这里有官方下载链接但版本过高会不兼容报错,这里用的是pywin32-219,网盘里也有.
在这里插入图片描述
出现successfully即为成功。(这里还有一种方法验证是否下载成功,在cmd输入:pip list
在这里插入图片描述

5.下载VCForPython27

官方链接(网盘有安装包)
在这里插入图片描述

6.搭建环境

这一步要下载的东西很多,报错也多,是小白最难的一步。

1.下载安装requirements.txt(openvisualizer)

首先打开cmd,进入openvisualizer文件夹。(在桌面打开openvisualizer,复制文件路径)
在这里插入图片描述
在cmd输入cd C:\Users\yellow\Desktop\openvisualizer
在这里插入图片描述
下载依赖包,输入pip install -r requirements.txt
在这里插入图片描述
这里报错是因为pip版本过低,升级pip后可解决。但是要注意的是,pip的版本不能过高。pip 20.3.4 是支持python 2 的最新及最后一个pip版本。所以在这里选择升级为pip 20.3.4。在cmd中输入:

python -m pip install --upgrade pip==20.3.4

在这里插入图片描述
重新在cmd进入openvisualizer文件夹,并输入pip install -r requirements.txt
在这里插入图片描述
这里可以说一下技巧,也算是搭建了数次环境后的经验之谈吧。我知道很多小伙伴在看到这种大篇幅飘红的报错多少都有些束手无措,因为我也是这样。特别是从没在cmd上操作过就上手,遇到错误基本上只能复制然后上网搜索。但是每个人遇到的问题不尽相同,可能你可以搜索到相同的错误类型,当然对于理解来说有促进作用。这里我的经验就是锁定报错的前一行代码以及错误的最后一行代码。因为前面已经说过实际上搭建环境遇到的问题基本上都是版本不兼容导致(OV的搭建)。比如上图中,在报错之前正在下载安装yappi这个包,那八九不离十就是要下载的yappi的版本不对。在上一步升级pip的时候,小伙伴可能注意到代码的最后是指定了pip的版本,那我们来看看这里这行代码:pip install -r requirements.txt 注意到requirements.txt这个文件,我们去openvisualizer文件中打开来看
在这里插入图片描述
到这已经不难猜出,这个文件记录的就是待下载的包,而代码的含义自然就是按照这个txt上的文件进行下载和安装。并且,其中yappi这个包以及其它还有几个他们是没有指定版本的。不由得狂喜,我们在执行pip install -r requirements.txt 这行代码的时候,他下载到yappi这里,但没有指定版本,就会下载最新的版本,这就可能导致与我们的python 2 不兼容。那么知道了问题,又该如何解决呢,或者说纵使知道是yappi版本导致,我们又如何能知道该下什么版本。这里附上python依赖包的官方网址,其中可以搜索到python依赖包并找到他的历史版本。至于如何确定,我们可以设身处地的去想一想这个项目及6TiSCH协议大概是2014年的,我们只需要去网站里找到这个时间点左右的包就行,因为他们研究的时候肯定也用的是那几个时间的版本嘛。
在这里插入图片描述
这里我选择的是0.94这个版本。小伙伴些可以在requirements.txt这个文件里加上==0.94,然后重新输入上面的代码,也可以单独用pip下载这个版本。我选择的是后者,在cmd输入pip install yappi==0.94
在这里插入图片描述
OK!继续执行pip install -r requirements.txt ,因为里面需要的包还没安装完。
在这里插入图片描述
这里的报错叙述的非常清楚,openwsn-coap这个包需要pylint1.9.5,但我们可以在txt文件中看到我们下载的是1.6.0。这里选择去修改openwsn-coap的版本,因为txt中明确指定了pylint1.6.0,但openwsn-coap未指定版本,所以去找后者的历史版本。我选择了0.0.2。(这种时间上对不上的情况,要么去找网上的镜像源下载未被官方记录的版本,要么就一个一个试)。
在这里插入图片描述
再次输入代码pip install -r requirements.txt
在这里插入图片描述
可以看出,这一步已经下载安装完成。

2.下载安装requirements.txt(coap)

同样先进入coap文件夹。打开coap文件,复制路径,然后在cmd输入(参考上一节的进入方式)。输入代码:pip install -r requirements.txt
在这里插入图片描述
这一步直接就完成了,应该是上一节的openwsn-coap那里已经下载安装好了。

3.安装SCons

按照官方解释,这一步是在真正构建环境。需要先进入openvisualizer文件夹,然后输入:pip install scons 也没报错。OK!

7.编译

首先在cmd进入openwsn-fw文件夹,输入scons board=python toolchain=gcc oos_openwsn
在这里插入图片描述
这一步的内容可以与官方对照,如果前面按照流程来做了应该不会报错。

8.安装 TAP 虚拟接口

下载链接(网盘中也有)下载安装完成后,按照途中步骤打开目标所在位置
在这里插入图片描述
用管理员方式打开Add开头的文件。

在左下角搜索框输入:ncpa.cpl 查看是否添加成功
在这里插入图片描述
如果有TAP V9这个接口,证明添加成功。然后将其重命名为OpenWSN。
在这里插入图片描述
这里还有需要注意的是自己联网的那个接口的名字,比如我这里是WLAN。(出于隐私就不附图)
用管理员身份打开cmd输入netsh 进入环境配置接口。依次输入:(一条一条)

interface ipv4
add address name=OpenWSN address=10.2.0.1 mask=255.255.0.0
interface ipv6
add address interface=OpenWSN address=bbbb::1/64
interface ipv4
set interface interface=WLAN forwarding=enabled  //这里的WLAN就是输入自己的接口名,后面同理
set interface interface=OpenWSN forwarding=enabled
interface ipv6
set interface interface=WLAN forwarding=enabled
set interface interface=OpenWSN forwarding=enabled
delete route bbbb::/64 OpenWSN
add    route bbbb::/64 OpenWSN fe80::8

二、模拟仿真

环境搭建已经基本完成,接下来进行模拟。打开cmd,进入openvisualizer文件,输入scons runweb --sim
在这里插入图片描述
这里的报错需要仔细阅读,可以分别打开这几个路径下的文件阅读相应的代码,它属于反复调用的问题。这里解决的方法是打开C:\Users\yellow\Desktop\coap\coap\coapObjectSecurity.py这个文件并将第14行代码注释掉。
在这里插入图片描述
保存后重新模拟。
在这里插入图片描述
至此,环境已完全搭建完成并可以模拟仿真。接下来可以尝试ping通节点等操作。打开这个网页(只有运行了模拟的代码并出现上图的界面才能打开网页)。
在这里插入图片描述
在Motes这个界面可以设置拓扑根节点,这里选择节点一并点击复选框旁的Toggle DAGroot state。如果可以科学上网的话,可以点击Topology设置拓扑图,添加节点等。
在这里插入图片描述

如果不行的话,点击Routing和Connevtively查看的连接关系就是随机的。等待(网不好的话要等一会)Routing中出现连接图就能ping通节点了。
在这里插入图片描述

另外打开一个cmd,输入ping bbbb::1415:92cc:0:2
在这里插入图片描述
OK!


总结

搭建的主要问题就是版本不兼容问题。希望这篇教程能帮助到小伙伴,如果有说的不对的地方,海涵(狗头)。附上网盘:
链接:https://pan.baidu.com/s/1vQt5r2nvOXBCMJUlc8l1zw
提取码:0000

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值