因为要写一个基于同步模型的显示模块编译工具,查了一下已有的异步规范。把规范囫囵吞枣地看了一遍,随手记一点东西:

ARINC 661规范也就是「驾驶舱显示系统人机接口规范」,规定了驾驶舱内显示系统(CDS)和功能部件(UA)之间的通信标准和一系列显示逻辑。其规定按照组件(Widgets)的层次进行显示,组件树组成一个层次(Layer),这也是对于一个UA而言,所能获取到的最高显示层。

CDS内核控制着GUI的渲染和运行,将物理显示设备分为一个个窗口(Window)显示,每个窗口显示一个或多个层次。CDS控制层次的可见性与活动,通过网络保持和管理层次的UA的通信。

ARINC的事件是异步的,但是UA可以定期更新其层次内各组件的参数,以根据后端数据修改其显示效果。当操作员引发事件之时,事件会单向地通知给UA。个人理解:在这个过程中,UA实际上是完全异步于CDS的。

组件的显示效果取决于编译时参数和运行时参数。所有决定组件所需内存大小的参数都必须在编译时给定。运行时参数由UA根据其后端操控,CDS负责更新显示。

组件树以及其他的一些信息,存储在定义文件(DF)里。DF有两种格式:二进制与XML。