flightgear
FlightGear软件的IO系统

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,native-ctrls,native-fdm,native-gui,native,nmea等等,详细的列表参见fgfs的手册。
1.2. IO架构∙每个协议模块都是一个FGProtocal的子类,实现了相应的操作接口。
主程序先根据命令行的参数确定要启用哪些IO协议,然后创建对应的io协议的实例,并以指定的参数初始化。
主程序起动后,使用Options对像来处理命令行参数,所有支持的参数在options.cxx:struct OptionDesc结构中定义,该结构还定义的参数的类型,类型是OPTION_CHANNEL的都是IO子系统的。
通过在Options::init() ->parseOption()->addOption()将参数以参数名、参数值创建一个OptionValue对像实例,保存到一个vector中。
然后主程序调用Options::processOptions() -> Optons:ptionsPrivate::processOption()来处理每个参数。
如果参数类型为OPTION_CHANNEL,就将其添加到全局的FGGlobals::channel_options_list中,至此参数处理完成。
主程序在fg_init.cxx:fgInitSubssytems()中加载各个子系统,其中就包括FGIO子系统,最后调用globals.get_subsystem_mgr().init()初始化所有注册的子系统,对于IO子系统来说,前面已经将从参数指定的要启动的IO协议保存到了列表中,在FGIO::init()中遍历已经从命令行分析到的要使用的IO协议的信息,根据参数指定的协议创建相应的IO协议的实例,见FGIO::parse_port_config()函数. 每种协议参数配置不尽相同,后面在说.∙FGProtocal主类定义一操作框架的接口,及几个主要的属性,hz: 数据更新/发送的频率;dir:数据的方向,指定FG是发送还是接收都, in 表示接收,out表示是发送;io:数据收发通道,根据协议不同,通道可以是串口,socket, 文件等,这些属性在FGIO::parse_port_config()的后半部分中设置的。
基于Flightgear实现通用飞行仿真软件

1 概 述 通用 飞行 仿真 软件 包括 Presagis公 司 的 Flightsim 和 He—
lisim,Flightlab等 ,这 些软件都可 以实现飞机或直升机 的飞行 仿 真。但是 它们 的可扩展性 和可定制 性 比较 差 ,并 且采购 价 格 昂贵 。
Flightgrear是一些模 拟飞行和编程爱 好者开发 的一 款免费 和 自由的模 拟飞行 软件 。它 的源代码 对于任 何人都 是公开 和 可修改 的,且具有 良好 的开放性 、可扩展性和跨平 台应 用。
基 于 Flightgrear开 发平 台来 实现 通用 飞行 仿 真 软 件 ,可 以 充 分利用其 现有 功能 ,在较 高的起 点上进 行二次 开发 。由于 Flightgrear平 台一直不断地在完善升级 ,使得通用 飞行仿真软 件也可 以进行相应 的升级完善 。
由 于 Flightgrear设 计 时就 考 虑 了 它 的 通用 性 .很 多 重 要 功 能 模块 都可 以通过 XML进行 配置 。不 同飞机通 过 XML文件 配 置气 动参数 、环境 因素 、仪表面板等 。另外 ,Flightgrear提 供 了丰 富的接 口通信关 系 .使得 它很容 易与外部 的其 他系统 进行 交互。
控制 台软件 主要 实现仿真 的控 制 、环境 的设置 和飞机参 数 的配置等功 能 。另外控 制台软件 还实现语 音通信 服务器模 块 和多机联 网服务器模块 ,通过这 些服 务器模块 可 以实现 多 机之 间的信息交互和语 音通话。
收 稿 日期 :2015—12—24
… . . 一 I啊柏 EPROCESSING&啊删【T哪 EDIAT^CHNOLOGY…………n… ……… ………………… … .…… ………
基于FlightGear的客机飞行模拟软件设计

航空航天科学技术科技创新导报 Science and Technology Innovation Herald10DOI:10.16660/ki.1674-098X.2018.15.010基于FlightGear的客机飞行模拟软件设计①侯学智(北京首都国际机场北京飞机维修工程有限公司 北京 100621)摘 要:基于FlightGear的飞行仿真模型,设计了适用于客机飞行模拟器的软件。
软件核心为采用FlightGear实现的飞行仿真软件,同时为用户开发了丰富的图形化接口软件:导航台编辑软件、航路编辑软件及动力学编辑软件。
基于以上设计,用户可开展对客机驾驶舱仪表、导航台数据库、航路及动力学的设计。
该飞行模拟器软件开放性及图化性程度高,能够满足教学、科研及实验需求。
关键词:飞行模拟 飞行仿真 导航台 航路中图分类号:TP391.9 文献标识码:A 文章编号:1674-098X(2018)05(c)-0010-02①作者简介:侯学智(1980—),男,汉族,山西人,硕士,中级工程师,主要从事科技项目管理。
近年来,一方面是中国民航进入持续成长期,运量持续增长,运营飞机大量投入;另一方面是狭窄的空域、有限的民航航线时刻资源,使得机场拥挤和堵塞现象更加突出,民航飞行正越来越多地受到空管系统的影响。
因此,客机飞行模拟不仅要模拟客机本身的飞行特性,更要能提供对导航台和航路的编辑接口。
本文提出的客机飞行模拟软件对以上功能均进行了详细的阐述。
1 系统总体设计客机飞行模拟器软件主要由飞行仿真软件、导航台编辑软件、航路编辑软件及动力学编辑软件组成。
其中,飞行仿真软件是飞行模拟软件的核心,用于仿真飞行逻辑,显示飞机驾驶舱仪表等,导航台编辑软件、航路编辑软件及动力学编辑软件用于对导航台、航路及动力学系数等飞行参数进行编辑。
2 分系统设计2.1 飞行仿真软件飞行仿真软件采用FlightGear实现。
它可以提供完整的飞机仿真框架,允许用户添加自己的各种模拟功能和模型。
FlightGear帮助手册第一部分

•小手册 /Docs/InstallGuide/FGShortRef.html, •其他文档 /FlightGear/Docs. • flightgear 维基百科 , 最后:
一般大家都不太喜欢阅读这些帮助手册,如果您确信您的显卡支持 OpenGL 以及操作系统是以下中的一个
The FlightGear Manual version 1.9.0 December 20, 2008
For FlightGear version 1.9.0
序言
FlightGear 是由网络上一些模拟飞行和编程爱好者开发的一款免费和自由
的模拟飞行软件。这本使用手册编写的目的是指导初学者如何使用 FlightGear。
� 所有商业模拟飞行软件都有一个严重的缺点:商业软件都是由一小 队开发人员根据自己定义软件的功能和需求进行开发的,所以只能 提供有限的接口给用户。开发团队也一般不会采用用户提出的软件 改进意见。相反,FlightGear 是一款开源的软件,源代码对于任何人 都是公开和可修改的。
� 商业模拟飞行软件只能在软件功能和特点方面进行折中。商业公司 都希望为用户能提供一个宽广的平台,包括飞行员,开发人员,和 普通游戏用户。在现实中,结果往往由于期限或者资金问题无法做 到。但 FlightGear 是免费和开放的,它没有出版商限定日期,开发周 期也是有我们自己把握的。FlightGear 不是一个科学研究项目,也不 需要考虑软件的市场化需求。
FlightGear 使用手册
作者:Michael Basler, Martin Spott, Stuart Buchanan, Jon Berndt,
Bernhard Buckel, Cameron Moore, Curt Olson, Dave Perry,
FlightGear基本飞行操作快捷键

FlightGear基本飞行操作快捷键
表1 常用操作
按键
说明
操纵面(在数字键盘上,控制航向、滚转和俯仰等,必须激活数字锁定)
9/3
推力:9增加推力(油门),3减小推力(油门)
4/6
副翼:4向左滚转,6向右滚转
8/2
升降舵:8推杆低头,2拉杆抬头
0/Enter
方向舵:0向右偏航,Enter向右偏航
NAV 开关
Ctril + T
地形跟随开关
Ctril + U
高度增加 1000 英尺(紧急情况)
Enter
增加航向自动驾驶
F6
开关目标自动驾驶:当前航向/航路点
F11
高度自动驾驶对话框
F12
航向自动驾驶对话框
s
启动发动机
!
选择第一台发动机
@
选择第二台发动机
#
选择第三台发动机
$
选择第四台发动机
}
增加点火电源
{
消减点火电源
~
选择所有发动机
襟翼、起落架与刹车
]/[
放/收襟翼
g/G
收/放起落架
B
刹车锁死开关
b
刹车(全部轮胎)
,
左轮胎刹车
.
右轮胎刹车
Cessna 172P仪表介绍:
常用的仪表有空速表、地平仪、高度表、罗盘(指南针)、航向陀螺仪和协调转弯指示仪。如下图所示
5
居中副翼/升降舵/方向舵
观察方位(在数字键盘上,必须关闭数字锁定)
Shift + 8
无人机全数字仿真的Flightgear三维显示

无人机全数字仿真的Flightgear三维显示作者:钱伟来源:《无人机》2018年第12期本文介绍了无人机三维显示需求,介绍了Flightgear软件的功能和使用特点,建立了无人机数字仿真模型,并基于仿真模型和Flightgear软件,采用udp网络通讯协议建立了二者之间的连接,将无人机仿真数据实时传输到Flightgear软件,驱动Flightgear中无人机模型、场景模型等的实时运行,完成无人机的三维实时显示工作。
无人机在试飞之前需要对各个系统部件进行大量的测试和仿真,以检测系统的控制部分的极性、逻辑、量值等等,但是有时实验室测试并不直观,容易使人忽略重要的细节。
例如,某型无人机在地面测试时一切正常,但在起飞后全自主飞行过程中,发生了一加自主飞行功能就向北飞的现象。
发生这一现象的原因是程序员在设计航路时,将无人机所用磁航向传感器的单位弄错,弧度当成了角度。
最终虽然依靠人工手动将其控制返航,依然表明了传统的测试存在盲区。
如果能加入仿真的实时显示功能,将无人机沿着航路模拟飞行的经纬度高度、速度、姿态角、实时舵面值等,以以无人机三维运动的形式直观地反映出来,可使系统测试人员直接看到无人机能否完成航路、是否存在问题。
Flightgear软件是一款开源飞行软件,内部集成了多款飞机模型数据,具有良好的人机界面,容易进行二次开发,并可接收外部传送过来的飞行动力学数据进行飞行,是无人机全数字仿真和地面测试阶段三维显示的较好选择。
无人机三维显示需求目前我们的无人机无论是进行实验室仿真或外场飞行试验,一般都能拿到较为准确、实时性也较强的遥测数据,这些数据包括无人机系统飞行的各种信息,如GPS经纬度、高度等定位信息;无人机俯仰角、滚转角等姿态角信息;三轴加速度信息、舵面控制量及反馈量信息等等。
按照以往经验,有了这些信息,如需对无人机的飞行性能进行分析,可以对各路信息分别汇总,绘出曲线,即能较直观地看出参数的数值走向和有无异常等。
Flightgear简介
Flghtgear当前版本3.2.0(程序主要由C++编写)
1、程序组件:
主要使用flightgear和simgear两个模块,现在集中研究simgear的使用2、模拟程序功能
暂时没有具体分清楚对应程序代码,主要需要了解控制系统
3、程序运行流程
飞行数据由循环2产生,循环2由simgear模块实现
4、程序运行经验:
(1)刚装好程序,运行可能会出错,一般是.dll文件版本过时,根据错误报告下载对应dll 文件替换就可以了。
(2)飞机起飞成功关键在于不偏离跑道,达到速度,自行起飞,不用强行提起机头起飞。
否则一般会出现高度不能爬升的问题。
(3)飞机飞行过程中,如果姿态变化太大,飞机容易坠落,飞行数据也会跳变(貌似是一个bug)
5、相关网址
编译经验:/thread-528-1-1.html
中文论坛:/forum.php。
flightgear文件配置
FG的汉化分下面几个部分。
其实就是对plib的汉化。
(一)首先把XML文件转为UTF-8编码格式,注意是不要BOM的UTF-8,Editplus软件可以完成这项功能。
因为如果直接改为中文的话,中文是多字节的,有可能会导致XML解析时碰到特殊字符出错,UTF-8格式就没有问题。
至于什么是UTF-8,以及UTF-8,UNICODE,ASCII,国标码之间的关系请百度一下,这些都是基本知识,下面的程序要用。
(二)FG的菜单使用的是plib中的fnt点阵字体,不过,由于在程序中内置了英文的显示方式,不适合中文,所以要想办法加载汉字库,网上有现成的HZK16,是宋体的。
还有一个软件可以自定义字体,字号然后输出点阵字体。
修改fnt的点阵字体模块,读取汉字,注意读出的是UTF-8,要转换为ASCII才能用,然后根据汉字编码查询汉字库文件,读出点阵信息,记住要上下翻转一下,就是把字上下颠倒,第一行在最下面。
替换原英文的buff就可以显示汉字。
(三)FG中的操作提示,如tutorials中的操作提示,ATC的语音,就是在屏幕中间显示的一句话,可以用鼠标拖动的,还有程序中的对话框,控件中的字也是用点阵方式实现的,有的在nas文件中实现,那么nas文件也要改为UTF-8编码方式。
划,加载飞机等等的英文提示是用osgtext实现的,osgtext原生支持宽字节编码,就是UNICODE编码,只要修改一下输出函数就可以了,并且可以使用ttf字体,效果非常好。
(五)最难的就是纹理字体,比如在HUD上显示汉字,在面板上显示汉字就要用到plib中的纹理字体,plib的纹理字体是txf格式的,说白了就是一张图片,上面画好了各种字母数字符号等,然后抠出部分图片作为纹理贴到面板上显示。
但汉字显然是不能这么做的,因为汉字太多了,无法预做成纹理图片。
不过可以使用FreeType来动态生成纹理贴图,这部分可以参考ttf2txf程序的代码,这个程序是利用freetype生成txf字库的程序,我们不生成txf文件,而是把汉字直接渲染到buffer中,然后把buffer显示出来就可以了。
Flightger翻译
这mini-HOWTO解释了如何在FlightGear中添加3d飞机模型FlightGear,以及这些模型如何动画和地位。
不需要c++编程,但是用户需要FlightGear的一些知识产权制度和XML标记,并将需要了解FlightGear使用坐标系统的模型:.在米的距离.角在度.x轴纵向运行,向后面.y轴横向运行,向右边.z轴向上运行.标题是在z轴旋转,正面是顺时针从上面.音高是一个绕y轴旋转,正面是顺时针从左边.辊绕x轴旋转,正面是顺时针从背后看到的关于HThis mini-HOWTO包含三个部分:1、加载模型2、重新定位模型3、动画模型1、加载模型通过OpenSceneGraph FlightGear支持许多不同的3 d文件格式,包括VRML2 AC3D,DXF,和许多其他格式。
性能/ sim /模型/路径在主FlightGear属性树控制模型将被加载;它需要从FG_ROOT得到一个字符串值给模型的相对路径(基地的根包,如/usr/local/lib/FlightGear或C:\ FlightGear \)。
加载一个新模型的最简单方法是在启动时设置的属性——道具:命令行选项;例如,使用3d飞机模型,您已经安装了$FG_ROOT/Models/my-cessna.wrl。
wrl,您可以调用FlightGear这样(在类unix系统):fgfs --prop:/sim/model/path=Models/my-cessna.wrl(注:一般来说任何使用的纹理模型必须出现在相同的目录中。
如果my-cessna。
wrl使用纹理cessna01。
rgb和cessna02。
rgb,您应该安装这些纹理 $FG_ROOT/Models/。
可以指定一个能找到指定纹理的位置的路径(相对于模型路径))。
当您想要设置一个3d模型永久作为默认的飞机而不是在命令行中指定它,您需要编辑一个飞机设置文件。
在FG_ROOT美元/飞机/目录,设置一系列文件结束。
flightgear 2020.3 编译
【飞行模拟软件 FlightGear 2020.3 编译指南】FlightGear 2020.3 是一款开源的飞行模拟软件,其最新版本推出了一系列更新和改进,包括图形效果、机场建模、飞行模型以及多人模式等方面的优化。
然而,有些用户可能遇到了使用二进制发行版时不够满意的问题,因此他们希望自行编译 FlightGear 2020.3 版本。
下面我们将探讨 FlightGear 2020.3 的编译过程,并为您提供一些编译指南。
1. 准备工作在开始编译之前,您需要确保安装了一系列的软件,包括 CMake、Git、gcc/g++ 等开发工具,并且安装了OSG、SimGear、OpenAL、libpng 等相关库。
还需要获取 FlightGear 2020.3 版本的源代码,您可以通过 Git 仓库克隆源代码,或者直接下载源代码压缩包。
2. 配置环境在获取了源代码之后,您需要配置编译环境,包括设置环境变量、配置 CMake、指定编译选项等。
您可以根据自己的系统和需求,进行环境的配置和定制化,以确保编译过程的顺利进行。
3. 开始编译接下来,您可以开始编译 FlightGear 2020.3 的源代码。
在这个过程中,您可能会遇到一些依赖库缺失、编译错误等问题,需要及时解决。
编译成功后,您将获得一个可执行文件,您可以通过执行该文件来启动 FlightGear 2020.3 版本。
4. 测试与调试在编译完成后,您可以对 FlightGear 2020.3 进行测试和调试。
您可以验证新添加的功能、修复的bug 是否生效,以及性能是否得到提升。
对于编译出现的错误或者不完善之处,您还可以进行进一步的修改和改进,并再次编译,直至满意为止。
总结与回顾通过本次编译,您不仅获得了 FlightGear 2020.3 最新版本的可执行文件,还学习到了如何配置编译环境、解决依赖问题,以及验证和调试编译结果的过程。
这将有助于您更深入地理解和掌握 FlightGear 2020.3 的代码结构和编译流程,从而为后续的开发和定制工作打下坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本架构,架构分析的前提是编译flightgear在flightgear内部,命令行参数分为6种类型:BOOL、String、Double、Int、Channel、Func其中Bool、String、Double、Int都是直接对相应的属性(可以理解为内部的变量)进行赋值;如:--airport=ZSSS 初始化时设置机场ICAO为ZSSS(上海虹桥)Func类型则是在初始化阶段直接调用内部函数进行处理。
如:--random-wind 初始化时调用fgOptRandomWind,设置随即风不过有些Func类型的参数是需要输入参数的,如:--func_key=func_argvChannel类型参数主要用于外部接口通信,一般都可以复用(如:在命令行中可以有多个--native-fdm=xxx)这种类型的参数有大家熟知的--native-fdm、--generic、--atlas等具体的源码解析流程见图flightgear网络接口模块是有FGIO子系统来完成的。
FGIO子系统支持各种通信协议。
通信协议包括大家常用的:Native-fdm,Native,generic,jsclient等(也即前篇介绍的channel 类型参数)对应的参数形式:--protocol=medium,direction,hz,medium_options,...在flightgear架构分析中提到了,对于子系统,flightgear在初始化阶段调用子系统的bind(),init(),主循环阶段调用子系统的update(),最后调用子系统的shutdown。
因此对于FGIO子系统,在程序中也主要体现在bind、init、update和shutdown这几个函数的处理上。
关于FGIO的结构如下图通信协议的具体实现在FGIO的FGProtocol列表中,FGIO在每个周期都会调用每个FGProtocol 的处理函数,关于FGProtocol的结构如下图下面具体对generic通信进行介绍,generic是通过FGGeneric(FGProtocol子类)来完成的,结构如图所示Flightgear多人飞行对应的参数是multiplay。
具体参数结构如下:--multiplay=dir,freq,ip,port --callsign=your_name其中callsign代表自己的ID官方文档上给出的例子是:For two players on a local network or across the internet:----------------------------------------------------------Player1:--multiplay=out,10,192.168.0.3,5500 --multiplay=in,10,192.168.0.2,5501--callsign=player1Player2:--multiplay=out,10,192.168.0.2,5501 --multiplay=in,10,192.168.0.3,5500--callsign=player2For multiple players on a local network:----------------------------------------Player1:--multiplay=out,10,255.255.255.255,5500 --multiplay=in,10,255.255.255.255,5500--callsign=player1Playern:--multiplay=out,10,255.255.255.255,5500 --multiplay=in,10,255.255.255.255,5500--callsign=playern对于局域网内,2人联机飞行是没问题的,但是多人联机,通过广播的方式通信时会报错!!!因为在程序内部不能对广播地址进行绑定。
所以文档上关于广播方式联机的例子是有误的。
原因在于,flightgear对于广播地址没有进行判断,直接按照常规地址进行绑定,所以会绑定失败。
对于局域网多人(至少3人)联机飞行,这里给大家提供3种方案:1.自己单独在一台主机上搭建服务器,目的很简单:数据转发。
所有联机的客户机把--multiplay=out,10,server_ip,5501中的地址设为服务器地址。
服务器则把收到的数据发给所有的客户机。
2.通过组播方式进行通信,虽然flightgear(实质是simgear)没有对广播进行特殊处理,但是它能识别组播地址。
3.修改flightgear程序。
对于广域网多人联机飞行,由于路由器一般不支持广播和组播,因此这里提供2中方案:1.使用flightgear提供的在线服务器,连上去即可2.自己搭建服务器(思路与局域网方案1一致),但是服务器需要固定IP下面来分析如果修改flightgear程序来达到联机飞行的目的:multiplay主要是有FGMultiplayMgr子系统来管理的,根据前面分析,对于子系统的处理主要是以下几个过程:bind()init()update()shutdown()FGMultiplayMgr的重点是init:init进行以下几个处理:mSocket.reset(new simgear::Socket());mSocket->open(false)mSocket->setBlocking(false);mSocket->bind(rxAddress.c_str(), rxPort)这几个处理没有判断地址的类型,因此在bind阶段就会出现广播地址绑定失败!为了解决这个问题,可以把以上过程改成以下过程:mSocket.reset(new simgear::Socket());mSocket->open(false)mSocket->setBlocking(false);mSocket->setBroadcast(true);mSocket->bind(“0.0.0.0.”, rxPort)Flightgear支持4个输入方式:鼠标输入键盘输入游戏杆输入事件输入对应的子系统分别为:FGMouseInput、FGKeyboardInput、FGJoystickInput、FGEventInput 这几种输入的处理方式大同小异,本文以键盘输入为例,分析flightgear是如何响应键盘消息,以及如何自定义键盘消息。
flightgear处理键盘消息分为以下3个过程:1.加载配置文件,配置文件包括"preferences.xml",“(your_aircraft)-set.xml/(your_aircraft)-set-common.xml”等。
其中键盘的配置信息在/input/keyboard节点内2.FGKeyboardInput的初始化,也即flightgear注册按键响应函数3.FGKeyboardInput 的postinit过程,也即绑定按键到对应对象(该对象实现具体的按键响应过程)具体的流程图如下:下面来具体看看flightgear是如何响应按键:以777-20飞机为例,在飞机的配置文件中注册了Ctrl-L按键消息:<key n="12"><name>Ctrl-L</name><desc>toggle cabin lights</desc><binding><command>property-toggle</command><property>controls/lighting/cabin-lights</property></binding></key>处理过程如下:1.窗口接收到按键信号2.窗口任何查询按键注册函数3.按键注册函数根据按键的类型,得到对应的FGButton,FGButton触发绑定对应的处理函数fire4.在处理函数中通过<command>property-toggle</command>的property-toggle查找命令,得到的命令为:do_property_toggle5.传入该按键的属性节点处理:do_property_toggle(&property)最后来谈谈如何注册自己的按键消息,该过程如果抛开nasal来说,过程是比较简单的:1.首先定位文件,一般来说在飞机的配置文件中注册比较合适,对于777飞机来说,可以在777-set-common.xml中注册2.复制上面xml内容,修改按键的ascii、响应命令,如<key n="65"><name>A</name><desc>toggle cabin lights</desc><binding><command>property-toggle</command><property>controls/lighting/cabin-lights</property></binding></key>这时按键'A'也可以到达CTL-L的效果。
最后,如果大家更深入的了解,可以跟进以下几方面知识:1.nasal脚本(flightgear内嵌编译器的一种脚本语言)2.flightgear支持的命令以及对应的字符串。