最近几周,我正在学习如何使用埃曼对使用预测OLSR路由协议的Ad网络进行仿真。
在计算P中ETX度量时,考虑了无人机的位置,使之不同于一般的OLSR。我很难将无人机的位置数据传送到P核心.我从上面提到的链接下载的补丁文件向协议中添加了一个gps接收器插件,该插件用于接收来自out P的位置数据,然后将其传输到P中。在olsrd.conf.example文件中,我应该为插件设置一个接口、一个多播IP地址和一个端口,我在使用EMANE仿真平台时不知道如何设置这些东西。我试图设置与事件服务组属性值相同的多播IP地址和端口。但这是不对的,因为数据格式不一致。
EMANE使用了一个名为eelgenerator的应用程序,它可以生成位置事件来传递无人机的位置数据,但这些数据是鳗鱼日志文件格式,而不是gps接收器所需要的NMEA格式。EMANE还有一个名为gpsd位置代理的应用程序,它可以处理位置事件,并将位置数据转换为NMEA格式,但是GPSd位置代理的输出只能直接连接到GPSd,或者连接到由gpsd连接的伪终端。GPSd可以从NMEA格式的位置数据中获取纬度、经度和高度信息,并通过本地主机的端口2947为其他应用程序服务。
那么,如何将位置数据传输到P核心呢?如果通过gps接收器,我应该如何设置olsrd.conf,是否需要自己编写程序?如果不使用gps接收器插件,我可以让P核心通过GPSd获取位置数据吗?如果可以,如何才能准确地认识到这一点?
PS:我的EMANE版本是emane-0.9.3。我的机器内核的版本是4.2.3-300.fc23.x86_64。
发布于 2016-05-14 03:05:54
我解决了问题。我编写了一个python脚本来读取pts中的数据并将其发送给gps接收器。下面是脚本:
import socket
fd = open("path of pts", "w+")
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(fd.readline(), (host, port))https://stackoverflow.com/questions/36895118
复制相似问题