DCS-WORLD 数据获取
任务:
获取DCS-World的姿态数据,发送到6自由度平台。
过程:
1.获取dcs-bios
https://github.com/DCSFlightpanels/dcs-bios
2.复制DCS-BIOS文件夹和Export.lua放到游戏指定位置:
用户/保存的游戏/DCS/Scripts/
3.根据数据输出协议获取数据。
以下部分翻译自 https://github.com/DCSFlightpanels/dcs-bios/blob/master/Scripts/DCS-BIOS/doc/developerguide.adoc
1.数据输出
驾驶舱当前状态使用二进制协议从 DCS 导出(参见下方 DCS-BIOS 导出协议)。此数据通过 UDP 发送到多播地址 239.255.50.10,环回接口 (127.0.0.1) 上的端口 5010。
如果不能或不想处理多播 UDP,您也可以通过编辑 BIOSConfig.lua 使 DCS-BIOS 将导出数据流的副本发送到单播地址。
还可以使用 socat 程序将串行端口连接到 DCS-BIOS 导入和导出流。
另一种方法是打开到端口 7778 的 TCP 连接。可以使用此连接向 DCS-BIOS 发送命令并接收导出数据。
2.DCS-BIOS 导出协议
每个驾驶舱状态都被编码为整数或字符串,并在 16 位地址空间内分配一个地址。
(1)整数值
整数值的位置由一个 16 位字地址定义,该地址指定数据所在的 16 位字的开始,一个 16 位掩码指定该字中的哪些位属于该值,以及一个移位值(也可以从掩码中推导出来)。
给定起始地址、掩码和移位值,以下伪 C 代码解码一个值:
char[] state;
unsigned int value = (((uint16_t*)state)[start_address/2] & mask) >> shift
对状态数据的更改被编码为对该地址空间的写访问,并以下列格式写入导出数据流:
<起始地址(16位)> <数据长度(16位)>数据
起始地址和数据长度总是偶数(在内部,DCS-BIOS 将数据视为 16 位整数列表)。这确保没有写访问部分更新整数值(整数可能占用不超过 16 位)。
所有整数值都以 litte-endian 字节顺序写入。
以下字节序列是从地址 0x1000 开始的四个字节的写访问示例:
0x00 0x10 0x04 0x00 0x41 0x2d 0x31 0x30
(2)字符串值
字符串的位置由它的 16 位起始地址和以字节为单位的长度定义(所有字符串值都有一个固定的最大长度,并且从 16 位对齐的地址开始)。
可以部分更新最大长度大于两个字符的字符串值。为避免不一致的中间状态,接收 DCS-BIOS 导出数据的应用程序应在下一个帧同步序列中应用对字符串值的更改(参见下一节)。
(3)同步顺序
DCS-BIOS 尝试每秒发送 30 次更新。
DCS-BIOS 将在每次更新开始时发送四个字节 0x55 0x55 0x55 0x55。如果字节序列 0x55 0x55 0x55 0x55 出现在单个写入访问中,DCS-BIOS 将通过将其分成两个单独的写入来避免这种情况。
3. 添加新的飞机模块
DCS-BIOS 中的导出模块。DCS-BIOS 包含几个导出模块,每个导出模块分配给一架或多架飞机,可以同时激活多个导出模块。
MetadataStart 和 MetadataEnd 模块始终处于活动状态,即使没有活动的飞机(例如,多人游戏中的旁观者模式)。
当 AircraftList.lua 中的任何飞机处于活动状态时,CommonData 模块始终处于活动状态。它导出高度、位置和航向等通用信息。
每个导出模块都在 lib 子目录中自己的文件中定义。
每个导出模块都由 BIOS.lua 中的 dofile(...) 行加载。
每个导出模块都需要 control-reference.html 中的 <script> 标记以显示在控件参考文档中。
DCS-WORLD 数据获取的更多相关文章
- 干货 | 快速实现数据导入及简单DCS的实现
干货 | 快速实现数据导入及简单DCS的实现 原创: 赵琦 京东云开发者社区 4月18日 对于多数用户而言,在利用云计算的大数据服务时首先要面临的一个问题就是如何将已有存量数据快捷的导入到大数据仓库 ...
- 数据获取以及处理Beta版本展示
产品描述 这个产品的目的是为了学霸网站提供后台数据获取以及处理操作.在alpha阶段基本调通的基础至上,我们希望在bate版本中加入对于问答对的处理,图片的获取等功能. 预期目标 在alpha阶段,我 ...
- 数据获取以及处理系统 --- 功能规格说明书V2.0
产品规格说明书: 版本号: V2.0 版本说明: Version 1.0 简单得需求分析以及构思,初稿形成 Version 2.0 细化beta阶段设计,增加典型用户尝尽以及功能罗列 1. 引言 1. ...
- Java学习-031-JSON 之五 -- 特定数据获取(JSONObject满足特定键值)
前面几篇博文分别讲述了 JSON 的 概要知识.简单数据获取.封装cssSelector数据获取方法.JSONObject 是否包含 key_value,请自行阅读相关博文. 在日常的接口测试脚本编写 ...
- C++使用POST方法向网页提交数据-----C++发送HTTP数据获取Google天气预报
例1:C++使用POST方法向网页提交数据 转自:http://www.it165.net/pro/html/201208/3534.html 在C++中可以使用POST方法向网页中提交数据,这 ...
- Kinect for Windows V2和V1对照开发___深度数据获取并用OpenCV2.4.10显示
V1深度分辨率:320x240 V2深度分辨率:512x424 1. 打开深度图像帧的方式 对于V1: hr = m_PNuiSensor->NuiImageStreamOpen( NUI_I ...
- 在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法
在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法 ==========方法1: --------1. 选相应 ...
- Kinect for Windows V2和V1对照开发___彩色数据获取并用OpenCV2.4.10显示
V1彩色分辨率:640x480 V2彩色分辨率:1920x1080 1,打开彩色图像帧的方式 对于V1: 使用NuiImageStreamOpen方法打开 hr = m_PNuiSensor-> ...
- PHP. 01. C/S架构、B/S架构、服务器类型、服务器软件、HTTP协议/服务器、数据库、服务器web开发、PHP简介/常见语法、PHPheader()、 PHP_POST/GET数据获取和错误处理
C/S架构 Client/Server 指客户端,服务器 架构的意思 优点:性能性高:可将一部分的计算工作放在客户端上,服务器只需处理出局即可 洁面炫酷,可使用更多系统提供的效果 缺点:更新软件需 ...
- servlet文件上传2——复合表单提交(数据获取和文件上传)
上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...
随机推荐
- 技术前沿:ISP芯片终极进化——VP芯片(AI视觉处理器)
1.计算机视觉的定义 广义与狭义 从广义上说,计算机视觉就是"赋予机器自然视觉能力"的学科.自然视觉能力,就是指生物视觉系统体现的视觉能力. 从狭义上讲,计算机视觉是以图像(视频) ...
- gRPC 入门(一)
前言 在学习 gRPC 之前,先学习 protobufu 协议,简单的来理解,我们可以使用他来定义 消息 和 服务.然后你只需要实现服务即可,剩下的东西,gRPC 会帮你自动完成. protobufu ...
- vs code 提交代码弹框提示:请确保已在git中配置您的“user.name”和“user.email” ——解决方法
修改完项目代码,准备提交到git上,结果提交失败,弹框提示:请确保已在Git中配置您的"user.name"和"user.email" 打开终端,配置运行一下命 ...
- 【记录】 iSCSI服务器的搭建与使用[Debian]
序言 更换系统后需要一个网络文件存储用于备份文件,本想用NFS多方便,但是timeshift不支持网络存储,备份路径必须是一个块存储设备, 但是你还必须分好文件系统,这不是多此一举???反正我只用rs ...
- 【阿里云ACP】-03(数据库RDS)
OSS快速使用入门:创建Bucket 1.用户创建一个Bucket时,可以根据费用单价.请求来源分布.响应延迟等方面的考虑,为该bucket选择所在的数据中心 阿里云所有数据中心都提供OSS公众服务 ...
- mysql表关联更新
UPDATE enterprise_test t1, enterprise_development_relation t2 SET t1.development_area_id = t2.develo ...
- ESP32-IDF 在vscode环境搭建
前言 由于许多的未知原因,我尝试过许多网上教程,在vscode上搭建ESP-IDF环境,但结果是耗费了大把时间,结果还非常不理想. 在参考了(一)esp32开发环境搭建(VSCode+IDF实现单步调 ...
- excel 巧用功能
1. 分类汇总 数据-->分类汇总--> 解决问题:解决了我按字段分类并分页打印的问题,例如几十个村数据,要按村分页打印相关数据这时不能把村分别复制粘贴到一个一个工作薄,太麻烦了. 处理方 ...
- 记录自己在对订单进行按日期查询时使用的一种查询的方法,这里的orders是订单表,你也可以改成别的什么表对于最终数据不会造成影响,除非你那个表的数据只有几条那样就会出现查不到日期的情况
SELECT @date := DATE_ADD(@date, INTERVAL + 1 DAY) days FROM ( SELECT @date := DATE_ADD("2019-06 ...
- base64 转图片
data:image+jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg% ...