任务:

获取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 数据获取的更多相关文章

  1. 干货 | 快速实现数据导入及简单DCS的实现

    干货 | 快速实现数据导入及简单DCS的实现 原创: 赵琦 京东云开发者社区  4月18日 对于多数用户而言,在利用云计算的大数据服务时首先要面临的一个问题就是如何将已有存量数据快捷的导入到大数据仓库 ...

  2. 数据获取以及处理Beta版本展示

    产品描述 这个产品的目的是为了学霸网站提供后台数据获取以及处理操作.在alpha阶段基本调通的基础至上,我们希望在bate版本中加入对于问答对的处理,图片的获取等功能. 预期目标 在alpha阶段,我 ...

  3. 数据获取以及处理系统 --- 功能规格说明书V2.0

    产品规格说明书: 版本号: V2.0 版本说明: Version 1.0 简单得需求分析以及构思,初稿形成 Version 2.0 细化beta阶段设计,增加典型用户尝尽以及功能罗列 1. 引言 1. ...

  4. Java学习-031-JSON 之五 -- 特定数据获取(JSONObject满足特定键值)

    前面几篇博文分别讲述了 JSON 的 概要知识.简单数据获取.封装cssSelector数据获取方法.JSONObject 是否包含 key_value,请自行阅读相关博文. 在日常的接口测试脚本编写 ...

  5. C++使用POST方法向网页提交数据-----C++发送HTTP数据获取Google天气预报

    例1:C++使用POST方法向网页提交数据    转自:http://www.it165.net/pro/html/201208/3534.html 在C++中可以使用POST方法向网页中提交数据,这 ...

  6. Kinect for Windows V2和V1对照开发___深度数据获取并用OpenCV2.4.10显示

    V1深度分辨率:320x240 V2深度分辨率:512x424 1.  打开深度图像帧的方式 对于V1: hr = m_PNuiSensor->NuiImageStreamOpen( NUI_I ...

  7. 在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法

    在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法   ==========方法1: --------1. 选相应 ...

  8. Kinect for Windows V2和V1对照开发___彩色数据获取并用OpenCV2.4.10显示

    V1彩色分辨率:640x480 V2彩色分辨率:1920x1080 1,打开彩色图像帧的方式 对于V1: 使用NuiImageStreamOpen方法打开 hr = m_PNuiSensor-> ...

  9. PHP. 01. C/S架构、B/S架构、服务器类型、服务器软件、HTTP协议/服务器、数据库、服务器web开发、PHP简介/常见语法、PHPheader()、 PHP_POST/GET数据获取和错误处理

    C/S架构 Client/Server 指客户端,服务器 架构的意思 优点:性能性高:可将一部分的计算工作放在客户端上,服务器只需处理出局即可   洁面炫酷,可使用更多系统提供的效果 缺点:更新软件需 ...

  10. servlet文件上传2——复合表单提交(数据获取和文件上传)

    上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...

随机推荐

  1. htmlApk:一个轻松在线打包生成双端app应用的网站

    htmlApk平台,基于HTML打包制作APP,只要有手机网站或者HTML文件,3分钟即可生成app多端应用,同时拥有苹果版和安卓版双系统APP,快速进入移动互联时代. 全面支持h5网址打包,可设置图 ...

  2. springboot启动类剔除扫描某个包

    // 排除api中不引数据库导致的报错包 @ComponentScan(excludeFilters = { @ComponentScan.Filter(type = FilterType.REGEX ...

  3. mysql去重保留1条记录

    delete from `wuye` where wuye_id in ( select * from ( select wuye_id from `wuye` where wuye_name in ...

  4. oracle ebs 账户组合验证

    DECLARE l_segment1 GL_CODE_COMBINATIONS.SEGMENT1%TYPE; l_segment2 GL_CODE_COMBINATIONS.SEGMENT2%TYPE ...

  5. C# Socket 通信

    C# Socket通信 Socket通信主要分为两部分,服务端和客户端,其中服务端和客户端都具有接收消息和发送消息的功能,具体通信流程就是服务端先去监听一个端口号,等待客户端的连接,客户端通过指定IP ...

  6. Winform帮助文档(C#打开chm定位到特定页面)国内最全总结写法。原文文档带翻译

    下面比较啰嗦,只一句即可:Help.ShowHelp(null,"C:\help.hcm", HelpNavigator.Topic,"index.htm")方 ...

  7. noi 2.1基本算法之枚举

    7647:余数相同问题 1.描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同. 请问满足上述条件的x的最小值是多少? 数据保证x有解. 2.输入 ...

  8. [*]Quadratic Residual Networks: A New Class of Neural Networks for Solving Forward and Inverse Problems in Physics Involving PDEs

    Accepted by SIAM International Conference on Data Mining (SDM21) 本文提出了二次残差网络,通过在应用激活函数之前,添加二次残差项到输入的 ...

  9. golang中自带base64编码和解码

    package main import ( "encoding/base64" "fmt" "log" ) func main() { in ...

  10. mysql建表常用关键字

    DISTRIBUTE BY HASH(`id`) INDEX_ALL='Y' STORAGE_POLICY='HOT'