可靠系统中的图形(如航空仪表)

Graphics in reliable systems (like airline instruments)

我想知道在飞机驾驶舱的这个小液晶显示器上使用什么技术来可视化飞行仪器。

我是 windows 应用程序 c++ 软件开发人员,我对飞机机载系统等高度可靠的系统使用了哪些库很感兴趣 example of one of this lcds, probably from boeing aircraft?

https://www.khronos.org/openglsc/ OpenGL 有一个安全关键子集,值得一读。

我从事航空航天业。很高兴你问。

我的经验是每个显示单元的硬件设置都是唯一的。使用商业或定制的 GPU:s,但驱动程序和库总是或多或少由显示单元供应商从头开始制作,因为 CPU、GPU、OS 和它们之间的连接器的组合通常是唯一的,并且始终是显示单元供应商的公司机密。 OpenGL Safety Critical 配置文件确实出现在某些产品中,但最终供应商只开发客户真正需要并愿意支付的东西。公司经常购买基础功能,然后支付额外的功能,例如另一个混合操作或更大的纹理。类似于汽车插件。

一般而言,航空航天在图形功能方面落后 10-20 年。对于图中所示的显示器,也无需更新。更复杂的功能在没有任何客户真正准备好支付的情况下引入了可怕的验证成本。不能向飞行员提供错误的高度,因此测试和文档是巨大的。

娱乐系统通常更强大,因为显示的信息不会使飞机坠毁。我认为它们类似于赌场老虎机中的系统。只要硬件不自燃就足够安全了。

我所做的大部分工作要么是公司机密,要么是军事机密。除了公开可用的或常见的行业知识,我不能说更多。我希望这能让您对您感兴趣的环境有所了解。

MFD(多功能显示器)本身就是完全独立的计算机。它们与符合 ARINC661 标准的其他组件通信(以获取要显示的数据),ARINC661 标准定义了一种二进制通信格式,用于在显示和用户应用程序(传感器等)之间交换数据。航空电子系统也使用 RTOS(我的项目中使用了 Integrity),每个组件本身都有一个分区,并由 OS 分配处理时间。此外,正如 Andreas 所说,OpenGL 有一个用于此目的的安全关键子集。航空电子代码经过精心审查和认证,并且编码过于安全(例如,我们不允许在 C++ 中使用 "new" 关键字,只允许静态内存分配)。