NS-3 PyViz is a live simulation visualizer, meaning that it uses no trace files. It can be most useful for debugging purposes, i.e. to figure out if mobility models are what you expect, where packets are being dropped, etc. There’s also a builtin interactive python console that can be used to debug the state of the running objects. Although it is mostly written in Python, it works both with Python and pure C++ simulations.
NS-3 PyViz是在线模拟仿真可视化工具,使用python编写,在python和c++环境中都可以使用。
使用Pyviz工具可以更加直观的看出节点间通信的效果。
在ns-3的3.10版本之后,ns-3中包括了PyViz。(因此不需要单独下载,只需要配置一下就可以了)
sudo ./waf configure --build-profile=debug --enable-example --enable-tests --with-pybindgen=/home/jnbai/tarballs/ns-allinone-3.29/pybindgen-0.17.0.post58+ngcf00cc0 --enable-sudo
若有错误提示:PyViz visualizer : not enabled (Missing python modules: pygraphviz),执行以下:
#3.29:
sudo pip3 install pygraphviz
sudo ./waf configure --build-profile=debug --enable-example --enable-tests --with-pybindgen=/home/jnbai/tarballs/ns-allinone-3.29/pybindgen-0.17.0.post58+ngcf00cc0 --enable-sudo
#3.30:
sudo apt-get install python-pydot python-pydot-ng graphviz graphviz-dev
sudo pip3 install pygraphviz
若有错误提示:No visualization support (No module named _gi_cairo).
No visualization support (No module named _gi_cairo).
Traceback (most recent call last):
File “”, line 2, in
File “/home/w/tarballs/ns-allinone-3.29/ns-3.29/src/visualizer/visualizer/core.py”, line 1847, in start
import sys
RuntimeError: maximum recursion depth exceeded while calling a Python object
安装gi.cairo即可解决:
sudo apt-get install gi.cairo
成功!
测试一下:
#在ns-3.XX目录下:
cp examples/tutorial/first.cc scratch
./waf --run first --vis
NetAnim is an offline animator based on the Qt toolkit. It currently animates the simulation using an XML trace file collected during simulation. The first version was developed by George F Riley.
先安装三个插件:
sudo apt-get install qt4-qmake # 安装工具
sudo apt-get purge libqt4-opengl-dev # 绘图工具(用这个命令可能出错sudo apt-get install libqt4-dev)
sudo apt-get install libxml2-dev # netanim读取程序生成的xml文件,离线展示动画
安装:
cd ns-allinone-3.xx
cd netanim-3.xxx
make clean
qmake NetAnim.pro
make
启动:
./NetAnim
出现界面:
运行:
cp examples/tutorial/first.cc scratch
chmod 777 scratch/first.cc
vim scratch/first.cc
修改scratch/first.cc文件:
//加头文件
#include "ns3/netanim-module.h"
//在Simulator::Run();前面加这三句
//生成文件名为first.xml的xml格式的追踪文件
AnimationInterface anim("first.xml");
//AnimationInterface需要设置所有节点的位置,通过SetConstantPosition(Ptr<Node> n,double x, double y);在移动模型中设置节点静态位置的x、y坐标
anim.SetConstantPosition(nodes.Get(0), 1.0, 2.0);//描述节点0的坐标
anim.SetConstantPosition(nodes.Get(1), 2.0, 3.0);//描述节点1的坐标
其他可选语句:
//设置记录节点位置的周期,默认为250ms
anim.SetMobilityPollInterval(Seconds(1));
//设置动画记录内容在仿真过程中的开始和结束时间
anim.SetStartTime(Seconds(150));
anim.SetStopTime(Seconds(150));
//使用构造函数,使每个动画XML文件仅可包含50000个数据分组,如果动画接口捕获了150000个分组,使用以下构造函数将捕获的记录分成3个XML文件
AnimationInterface anim("first.xml",50000);
//设置XML文件记录包括元数据,用来提供更好的统计和过滤,如TCP序号、源节点和目的节点的IP地址等。启用该特性会导致XML记录文件增大,建议WIMAX仿真不要用
anim.EnablePacketMetadate(true);
保存退出。
# (普通用户)在ns-3.xx文件下,编译程序
sudo ./waf --run scratch/first
# 在netanim文件夹下重新启动
# 注:在超级用户sudo下可能用以下语句不显示界面,因此在普通用户下执行
./NetAnim
在netanim界面中点击open->first.xml->play
成功!
文章浏览阅读1.7k次。总述:Remote procedure calls (RPC) appear to be a useful paradig m for providing communication across anetwork between programs written in a high-level language. This paper describes a package providinga remote procedure call facility, the options that f_rpc英文文献
文章浏览阅读1.8w次,点赞10次,收藏98次。当我们处理gps设备传过来的数据时,最让人头疼的事情莫过于设备定位异常所传输的异常点了,我们习惯的叫它为飘点。这些数据是设备层面的异常,目前没有什么有效的方法来减少设备发送的飘点。但是我们可以通过程序来过滤掉这些点。原理获取时间范围内(默认一天)设备的连续gps信息。 遍历这些信息,计算两个相邻点的距离,这个距离要根据实际情况确定 若距离大于可容忍距离。则证明该两个相邻点其中有..._gps抖动处理算法
文章浏览阅读992次。1.获取redis镜像docker pull redis 查看镜像docker images创建配置文件目录存放redis.conf,文件从官网下载。创建文件夹,新建配置文件贴入从官网下载的配置文件并修改mkdir /usr/local/redismkdir /usr/local/redis/data将下载下来的redis.conf复制到/usr/local/redis目录下vim /usr/local/redis/redis.conf修改启动默认配置(从上至下依次):b_docker 后台模式启动redis
文章浏览阅读6.6k次。使用CreateProcess可以执行cmd命令,也可以执行一些可执行程序。//摘自msdn的示例代码#include #include #include void _tmain( int argc, TCHAR *argv[] ){ STARTUPINFO si; PROCESS_INFORMATION pi;_c++ createprocess执行命令行语句
文章浏览阅读2.2w次,点赞61次,收藏171次。解决 remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead._remote: support for password authentication was removed on august 13, 2021.
文章浏览阅读112次。HDS公司已经公布了日立内容智能方案(Hitachi Content Intelligence,简称HCI),这款软件专门负责立足于多种结构化与非结构化数据孤岛进行搜索与内容读取,随后对其加以分析。HDS公司指出,其可利用内容智能化方案解决输入数据井喷的问题HCI能够从各孤岛当中提取数据并将其引入工作流,从而通过多种方式加以处理。HCI的用户亦需..._hds hci
文章浏览阅读661次。一周时间快速阅读了400页的《javascript基础教程》,理解了主要概念。解决了一个很久之前的疑问。我的网站是使用flask框架搭建的,介绍flask web的一本著名的书(之前提到过)作者搭建个人博客时,向读者推荐了flask-bootstrap,flask_moment这两个库,前者能快速的解决前端样式问题,后者提供了时间戳功能。但在某种情况下,比如网络延迟或者运营商的问题,访问网..._bootstrap 速度慢 maxcdn
文章浏览阅读1.7k次。前端 音频/视频(Audio/Video)开始加载以及播放的过程_video.addeventlistener
文章浏览阅读2.2k次。怎么用光盘重装系统?很多小伙伴只会系统光盘安装系统的方法,除了系统光盘重装系统,还有硬盘安装、一键重装、U盘重装、Ghost重装系统等等方法,下面除了教你怎么用光盘重装系统之外,还给你介绍下一键重装系统的操作步骤。光盘重装系统图文首先安装前准备:保证电脑带有光驱功能,并且光驱处于正常状态以及系统光盘能够正常读取。1、首先系统光盘放入电脑光驱位置,等待电脑读取光盘成功后,就继续怎么用光盘重装系统了。..._光盘放入光驱显示可用字节为0
文章浏览阅读1.5k次。Angularjs1.6对接后台导出Excel的接口,代码:$http({url: 'http://localhost:8083/console/devices/poi',method: "POST",data: {"email": "官方邮箱"},headers: {'Content-type': 'application/json'},responseType: 'arraybuffer'})..._excelwriter [object object]
文章浏览阅读6k次。第二周A......1.用simpleguitk创建的应用程序框架是由哪三部分组成的?标题·控制区域鼠标边框·画布键盘·状态区域背景区域选择区域2.假设在程序中已经导入simpleguitk,下列哪项对create_frame()函数的调用是正确的?(如果不肯定你的答案,先在PyCharm中测试,然后再作答)·frame=simpleguitk.create_frame(100,100,1..._导入simpleguitk图形界面开发包的语句是?_____(小写)
文章浏览阅读1.4k次。v一、前言由于之前写过的一片文章 (java接口签名(Signature)实现方案)收获了很多好评,此次来说一下另一种简单粗暴的签名方案。相对于之前的签名方案,对body、paramenter、path variable的获取都做了简化的处理。也就是说这种方式针所有数据进行了签名,并不能指定某些数据进行签名。v二、签名规则1、线下分配appid和appsecret,针对不同的调用方分配不同的ap..._signature签名的方式