|
配置文件中<loadfn>节点规定了平显数据显示调用的函数。在描述座舱系统的程序 Cockpit中,建立如下一个通过字符串搜索调用函数的结构体,FlightGear 源程序通过解析 XML 文档可以获得该节点的值“heading”,通过该字符串指向调用函数,完成平显数据显示。
truct FuncTable {
const char *name;
FLTFNPTR func;
} fn_table[] = { { "heading", get_heading }……. }
平显中有部分变量默认使用的是英制单位,例如海拔高度(英尺)、空速(海里/时)等,这就给直观的读取飞行数据变量带来了一定的障碍。通过以上的流程可以发现,平显数据是在调用函数中完成的。例如描述海拔高度的函数 get_agl( ),其原型为:
agl = current_aircraft.fdm_state->get_Altitude( )
- current_aircraft.fdm_state->get_Runway_altitude( );
将英制单位转换为公制单位只需要进行单位转换即可达到在平显中显示公制单位的数据。修改如下:
agl = (current_aircraft.fdm_state->get_Altitude( )
-current_aircraft.fdm_state->get_Runway_altitude( ))* SG_FEET_TO_METER;
其中 SG_FEET_TO_METER 定义为 0.3048,表示 1 英尺=0.3048 米。
3.2.3图形显示设定
HUD 平显界面是由基本的矩形组成的,图形显示设定设备的矩形边框是否显示,从而完成设备的图形显示。图形显示设定的“树”形结构图如图所示
|
|