2022年FlightGear软件的IO系统 .pdf

上传人:C****o 文档编号:39707501 上传时间:2022-09-07 格式:PDF 页数:4 大小:63.30KB
返回 下载 相关 举报
2022年FlightGear软件的IO系统 .pdf_第1页
第1页 / 共4页
2022年FlightGear软件的IO系统 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年FlightGear软件的IO系统 .pdf》由会员分享,可在线阅读,更多相关《2022年FlightGear软件的IO系统 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1.FGFS 的 IO 系统FGFS 是一个做研究的非常优秀的系统,飞行,气动,控制等,做这些免不了要和FG 进行数据交换,本文主要说说FG 的 IO 系统,包括 FG 的 IO 架构,支持的 IO 协议,及与FG 的通信。1.1.FG 的 IO 系统架构FG 支持许多IO 协议,这些协议均由一个simgear 的 SGSubsystem模块形式实现的FGIO 子系统来进行管理。这些协议在功能和作为可能有相同的以可能不同,并且这些模块可以同时启动。在一个FG 运行实例中可以同时使用多种协议与其进行通信。FG 支持的协议有generic,garmin,joyclient,jsclient,nat

2、ive-ctrls,native-fdm,native-gui,native,nmea等等,详细的列表参见fgfs 的手册。1.2.IO 架构每个协议模块都是一个FGProtocal 的子类,实现了相应的操作接口。主程序先根据命令行的参数确定要启用哪些IO 协议,然后创建对应的io 协议的实例,并以指定的参数初始化。主程序起动后,使用Options 对像来处理命令行参数,所有支持的参数在 options.cxx:struct OptionDesc 结构中定义,该结构还定义的参数的类型,类型是 OPTION_CHANNEL的都是 IO 子系统的。通过在 Options:init()-parseO

3、ption()-addOption()将参数以参数名、参数值创建一个OptionValue 对像实例,保存到一个vector 中。然后主程序调用Options:processOptions()-Optons:ptionsPrivate:processOption()来处理每个参数。如果参数类型为OPTION_CHANNEL,就将其添加到全局的FGGlobals:channel_options_list 中,至此参数处理完成。主程序在 fg_init.cxx:fgInitSubssytems()中加载各个子系统,其中就包括 FGIO 子系统,最后调用globals.get_subsystem_m

4、gr().init()初始化所有注册的子系统,对于IO 子系统来说,前面已经将从参数指定的要启动的IO 协议保存到了列表中,在FGIO:init()中遍历已经从命令行分析到的要使用的IO 协议的信息,根据参数指定的协议创建相应的IO 协议的实例,见FGIO:parse_port_config()函数.每种协议参数配置不尽相同,后面在说.FGProtocal 主类定义一操作框架的接口,及几个主要的属性,hz:数据更新/发送的频率;dir:数据的方向,指定 FG 是发送还是接收都,in 表示接收,out 表示是发送;io:数据收发通道,根据协议不同,通道可以是串口,socket,文件等,这些属性在

5、FGIO:parse_port_config()的后半部分中设置的。初始化完成后,就进入工作准备,当主系统调用FGIO:update()时,IO 子系统遍历已经注册的协议,分别调用每个协议的 update()函数。FG 启动时设置IO 系统的参数一般如下面的格式:-protocol=medium,direction,hz,medium_options,.protocol=指定的协议名,如native,nmea,garmin,fgfs,rul,pve,ray等medium=IO 使用的媒体,可以是serial,socket,file,有些协议不需要指定该参数,如httpd,就只有一个设定端口的参

6、数。direction=数据方向,如in,out,有些协议只支持输入或输出hz=数据更新的频率,单位秒,可以使用浮点数名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -medium_options 为与选择的IO 像媒体相关的选项,如串口(serial)就需要指定串口的名字和波特率。以上这些参数,不是所有的都需要,是根据使用的媒体需定和协议而定的。1.3.IO 协议介绍本节简单介绍一下一些主机IO 协议的使用方式,只选了几个比较典型和我知道是什么的来介绍,有些协议我以不知道具体的情况,就不说了,有了解的同学请补充。下面的协议名已options.cxx 中的 struct

7、OptionDesc 结构中的定义为准,至于标准名是什么不于追究。使用这些协议与FG 进行通信,先对SimGear 的属性系统及FlightGear 的各种属性有所了解,就很容易使用了,当然有些协议不需要,如 joyclient 1.3.1.atcsim这个好像需要ATC 硬件支持,没法玩,以没玩过。1.3.2.atlasatlas 是一个用于显示飞行地图的程序。1.3.3.httpd指定了 httpd 选项后,FG 在运行时会在指定的端口创建一个http 服务器,这样就可以有 http 协议访问FG 的各种数据,可以使用浏览器打开http:/localhost:port 来打开FG 的属性查

8、看页面,并且还可以直接修改其中的一些属性。具体的属性的意义参考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)中的各种数据。这些数据可

9、能更多的是用来调试FG 用,如果只是想和 FG 进行通信,操作飞行器,建议使用其它的一些协议,更方便使用。1.3.6.native-ctrlsNative-ctrls 是一个二进制数据协议,是FG 自己定义的,协议的格式在net_ctrls.hxx文件中的FGNetCtrls 类定义的数据结构体,数据元素比较多,我就不一一说明了,基本上飞行器飞行相关的数据都有了,使用这个协议可以读取或控制FG 中飞行器的各种功能了,如操控的,导航的等等。1.3.7.native-fdmNative-FDM 的使用方式和Native-ctrls 是一样的,只是通信的数据格式有些不同,FDM 的数据格式在net_

10、fdm.hxx 中的 FGNetFDM 结构体中定义,结构定的各字段参看源文件中的定义和说明.1.3.8.native-guiNative-GUI 协议也是和Native-ctrls 差不多的,只是数据格式和含义有所不同,Native-GUI 的数据格式在net-gui.hxx 中的 FGNetGUI 结构体中定义的,结构定的各字段参看源文件中的定义和说明.1.3.9.opengc名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -数据结构在opengc_data.hxx 中的 ogcFGData 结构中定义的。OpenGC 是一个多平台,多模拟器的用于开发高质量玻璃驾驶舱

11、显示器的工具。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、12.genericGeneric 是一个基于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 的各种属性就可以向一个文件系统一个操

13、作,可以使用ls列出属性,get/set读/修改属性值。1.3.14.telnet同 props 协议1.3.15.pvePVE 协议以字符串的形式输出roll,pitch,heave 的值,roll,pitch 为角度值。可以用于模拟机坐舱控制等的数据。1.3.16.joyclient能可以使用远程数据当驾驶杆,只支持两个轴,分别控制飞行器的升降舵和副翼。可以通过 Socket 或者串口,向FG 发送数据,数据的格式为两个32 位整数,第一个为 X 轴的位置,第二个数为Y 轴的位置,分别取值为0-4096,为 2048 为中点,小于2048 表示向下偏转对应摇杆的负方向,大于2048 表示向

14、上偏转对应摇杆的正值。1.3.17.jsclient这个功能和joyclient 差不多,只是支持的轴有4 个,并且这4 个轴所控制的功能不是固定的,是根据系统中配置的摇杆的前4 个轴对应的功能,数据格式为6 个 32 位整数,前4 个数对应前4 个轴,后两个数现在没有使用。取值为正负0 x7FFFFFFF之间。1.3.18.multiplay使用格式为-multiplay=dir,Hz,host,port,-callsign=ABCD,多人联机飞行的连接配置,dir设为 in,表示 FG 作为服务器运行,其他飞友连接到你们电脑一起飞行,这需要其他人能直接访问到你的IP。Hz 为数据更新频率,

15、越大数据更新快,但以需要更大的带宽。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -host 和 port,如果是服务端,指定在那个地址和端口进行监听,以接受其它人的连接,如果作为客户,指定服务器的地址和端口号。callsign 为你的呼号,在一个服务器上的飞机的呼号不能重复。1.4.使用实例1.4.1.多机同步显示主机设置-native-fdm=socket,out,60,5505,udp -native-ctrls=socket,out,60,5506,udp 其它从机设置-native-fdm=socket,in,60,5505,udp -native-ctrls

16、=socket,in,60,5506,udp -fdm=null 1.4.2.连机飞行连接到 mpserver01.flightgear.org 进行联机飞机,呼号为fg0001-multiplay=out,10,mpserver01.flightgear.org,5000-callsign=fg0001 1.4.3.记录和回放记录-generic=file,out,20,flight.out,playback 回放-generic=file,in,20,flight.out,playback -fdm=external 1.4.4.串口摇杆设置 FG 从串口 com1(linux 使用 ttyS0),以波特率 9600 的速率,接收joyclient 协议的数据.-joyclient=serial,in,30,com1,9600 1.4.5.启动 http 服务-httpd=5501 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁