1.3. IO协议介绍
本节简单介绍一下一些主机IO协议的使用方式, 只选了几个比较典型和我知道是什么的来介绍,有些协议我以不知道具体的情况,就不说了,有了解的同学请补充。下面的协议名已options.cxx中的struct OptionDesc结构中的定义为准,至于标准名是什么不于追究。使用这些协议与FG进行通信,先对SimGear的属性系统及FlightGear的各种属性有所了解,就很容易使用了,当然有些协议不需要,如joyclient.
1.3.1. atcsim
这个好像需要ATC硬件支持,没法玩,以没玩过。
1.3.2. atlas
atlas是一个用于显示飞行地图的程序。
1.3.3. httpd
指定了httpd 选项后,FG在运行时会在指定的端口创建一个http服务器,这样就可以有http协议访问FG的各种数据,可以使用浏览器打开http://localhost:port来打开FG的属性查看页面,并且还可以直接修改其中的一些属性。具体的属性的意义参考SimGear的手册。
1.3.4. jpg-httpd
指定jpg-httpd选项后,FG在运行时会在指定的端口创建一个简单的http服务器,当访问一个端口时,FG会返回一张当前FG运行的屏幕的截图。用浏览器访问就能看到截图。
1.3.5. native
Native以是一个二进行协议,不过和前面几个不同的时,数据来由于FG运行时的全局FGInterface类对象evil_global_fdm_state,在flight.hxx文件中定义FDM(Flight Dynamics Model)中的各种数据。这些数据可能更多的是用来调试FG用,如果只是想和FG进行通信,操作飞行器,建议使用其它的一些协议,更方便使用。
1.3.6. native-ctrls
Native-ctrls是一个二进制数据协议,是FG自己定义的,协议的格式在net_ctrls.hxx文件中的FGNetCtrls类定义的数据结构体,数据元素比较多,我就不一一说明了,基本上飞行器飞行相关的数据都有了,使用这个协议可以读取或控制FG中飞行器的各种功能了,如操控的,导航的等等。
1.3.7. native-fdm
Native-FDM的使用方式和Native-ctrls是一样的,只是通信的数据格式有些不同,FDM的数据格式在net_fdm.hxx中的FGNetFDM结构体中定义,结构定的各字段参看源文件中的定义和说明.
1.3.8. native-gui
Native-GUI协议也是和Native-ctrls差不多的,只是数据格式和含义有所不同,Native-GUI的数据格式在net-gui.hxx中的FGNetGUI结构体中定义的,结构定的各字段参看源文件中的定义和说明.
1.3.9. opengc
数据结构在opengc_data.hxx中的ogcFGData结构中定义的。OpenGC是一个多平台,多模拟器的用于开发高质量玻璃驾驶舱显示器的工具。opengc参数用于指定输出或接收符合OpenGC的数据。
1.3.10. garmin
使用Garmin协议格式数据,可以用于记录飞行器的GPS位置信息或向提供外部GPS位置信息给FG使用。协议格式可参考相关文档。
记录飞行GPS数据使用参数:
--garmin=file,out,5, recordfile
或可以使用GPS数据控制FG中的飞行器:
--garmin=file,in,5,recordfile
1.3.11. nmea
使用nmea协议格式的GPS数据,可以用于记录飞行器的GPS位置信息或向提供外部GPS位置信息给FG使用。协议格式可参考相关文档。
1.3.12. generic
Generic是一个基于XML的协议,XML的具体格式见README.protocol文档,该协议格式一般用于记录和回放FGFS的飞机。如要记录飞机过程,可以指定参数:
--generic=file,out,20,recordfile,playback。
要回放飞行记录,可以使用参数:
--generic=file,in,20,recordfile,playback --fdm=external。
1.3.13. props
指定该参数,FG会在指定的端口创建一个telnet服务器. 使用telnet连接上后,可使用help查看帮助,FG的各种属性就可以向一个文件系统一个操作,可以使用ls列出属性,get/set读/修改属性值。
1.3.14. telnet
同props协议
1.3.15. pve
PVE协议以字符串的形式输出roll,pitch,heave的值, roll,pitch为角度值。可以用于模拟机坐舱控制等的数据。
1.3.16. joyclient
能可以使用远程数据当驾驶杆,只支持两个轴,分别控制飞行器的升降舵和副翼。可以通过Socket或者串口,向FG发送数据,数据的格式为两个32位整数,第一个为X轴的位置,第二个数为Y轴的位置,分别取值为0-4096, 为2048为中点,小于2048表示向下偏转对应摇杆的负方向,大于2048表示向上偏转对应摇杆的正值。
1.3.17. jsclient
这个功能和joyclient差不多,只是支持的轴有4个,并且这4个轴所控制的功能不是固定的,是根据系统中配置的摇杆的前4个轴对应的功能,数据格式为6个32位整数,前4个数对应前4个轴,后两个数现在没有使用。取值为正负0x7FFFFFFF之间。
1.3.18. multiplay
使用格式为--multiplay=dir,Hz,host,port, --callsign=ABCD,多人联机飞行的连接配置,dir设为in,表示FG作为服务器运行,其他飞友连接到你们电脑一起飞行,这需要其他人能直接访问到你的IP。Hz为数据更新频率,越大数据更新快,但以需要更大的带宽。host和port,如果是服务端,指定在那个地址和端口进行监听,以接受其它人的连接,如果作为客户,指定服务器的地址和端口号。callsign为你的呼号, 在一个服务器上的飞机的呼号不能重复。
以上是基本的接口协议,有需要可以参考一下网站:
https://blog.csdn.net/prius0304/article/details/88524429
http://www.flightgear.org.cn/forum.php?mod=viewthread&tid=8283
请登录后回答