ARINC 661
ARINC 661 is a standard which aims to normalize the definition of a cockpit display system, and the communication between the CDS and user applications which manage aircraft avionics functions. The definition of the graphical user interface is contained in binary definition files.
The CDS software is constituted of a kernel which is able to create the GUI hierarchy specified in the DF during initialization, thus not needing to be recompiled if the GUI definition changes.
History and adoption in industry
The first version of ARINC 661 was adopted in 2001 as part of the ARINC standards. Its first use was for Airbus A380 CDS development.The first supplement was adopted in 2003, and added new widgets.
The second supplement was adopted in June 2005, and added supplementary widgets. Third supplement has been adopted in 2007. Supplement 4 was adopted in 2010.
The standard is known today to be used for Airbus A380 and A400M CDS development, and also Boeing 787 CDS development. AgustaWestland company use ARINC 661 for the development of a new Touchscreen unit in the upgraded Merlin helicopter for the Royal Navy. In March 2011, Embraer announced that it selected SCADE Solutions for ARINC 661, a COTS tool for ARINC 661 development, for its future developments.
In February 2021, Boeing selected VAPS XT to support its Future Avionics User Interface Development Needs.
An ARINC 661 Part 2 is currently in development, allowing to specify look and feel for widgets. It should be released in 2020.
Supplement history
Technical overview
The standard normalizes :- the GUI definition of the CDS interface, in a binary file called DF defining the structure of the graphical interface tree. The GUI tree is instantiated at initialization time in the CDS, using the definition contained in the DF.
- the communication at runtime between the User Applications and the CDS. This communication protocol is typically used for UAs to send widgets modifications to the CDS, and return user events from CDS to UA.
ARINC 661 does not imply the use of a particular Data bus structure to perform the low-level communication between CDS and UA. For example, an ARINC 429 or Ethernet protocol such as ARINC 664 can be used, but it is not mandatory.
GUI Structure
- The Cockpit Display System is the graphic Server which is responsible to show and manage the GUI
- A User Application is one system application which communicates with the CDS. The CDS manage one or more Definition Files for each User Application. At run-time, messages are exchanged between UAs and the CDS.
- A Definition File specifies the GUI definition associated with one User Application. A Definition File contains the definition of one or more Layers
- A Layer is a GUI container for widgets
- A widget is the basic building block of the GUI
GUI definition
A DF is composed of two parts : an optional symbol definition, and a widgets definition. The widget library is similar to Widgets used in computing. There are Containers, Lists, ScrollPanes, Buttons, Menus, Labels, EditBoxes, etc...
Although the DF File is binary, the standard has also defined an associated XML definition, which is easier to manipulate in tools.
Relationship with other UI languages
The concepts used by ARINC 661 are close to those used in user interface markup languages, except that the UI language is binary and not XML-based.Main similarities from other user interface markup languages:
- The interface definition is not hard-coded in the CDS. Instead, the CDS use a kernel which instantiate the widget tree at initialization, using a predefined widget library
- The widget list and the structure of the widget tree are similar to what can be found in common widget toolkits
- The look and feel is separated from the definition of the interface
- The widget library defined in the standard does not really take advantage of its object nature, contrary to other user interface markup languages. For example, there is no notion of inheritance in the standard, although the same properties can be used more than once for several widgets.
- Some widget toolkits or user interface markup languages have the ability to lay out widgets automatically in a container. Widgets position and size in their container must always be defined exactly in an ARINC 661 definition. However, the supplement 3 of the standard has added a limited sort of "relative" layout capability between widgets.
- There is no mechanism for defining the presentation and interactive behavior of elements equivalent to XBL used in XUL. There are symbols that can be reused, but they are mainly shapes that cannot have behaviors, or specific bindings.
- There is no equivalent of CSS, as they are used in XUL or SVG for example. Instead, the look and feel of the interface is hard-coded in the ARINC 661 kernel. However, supplement 5 introduced a way to specify the Look of widgets.
- The standard does not have an equivalent of JavaScript, as used in SVG and XUL, so all specific behavior associated with the widgets must be performed by the UAs.
- The standard has defined specific "Map" widgets which allows to present elements such as flight plans in CDS.
Example
Development and tools support
ARINC 661 GUI development includes tools for the specification of definition files and the kernel that use these files:- Thanks to ARINC 661 concepts, the specification tools have no dependency on the execution platform,
- The kernel itself depends on the execution platform.
introduced the first COTS ARINC 661 development tool which allows creation of Widgets, Layers, DF Generation and deployment on embedded real-time operating systems. VAPS XT supports DO-178B/C certification up to DAL-A. Because of the burden of Avionics software certification, the kernel must be embedded in a DO-178-compliant environment.
Flexible Software Solutions introduced COTS developing, testing and analysis tools for ARINC 661 protocol at the beginning of 2012. The software tool is used to develop ARINC 661 user applications while the software tool is used to test and debug UA and CDS ARINC 661 messaging. This technology and related products has since been acquired from PRESAGIS by
Ansys announced on October 13, 2010, the availability of in 2011.
SCADE Solutions for ARINC 661 allow creating both ARINC 661-compliant CDS and UA. For CDS developers, the toolchain features a complete customizable ARINC 661 compliant model-based widgets library and the automated generation of a portable ARINC 661 server, compliant with the DO-178B/DO-178C safety objectives up to level A. For UA developers, the toolchain features the model-based design and generation of DFs and the automatic generation of communication code between SCADE Suite UA models and the ARINC 661 Server.
The is a plug-in to GL Studio HMI Toolkit that delivers a set of pre-existing customizable widgets, a DF Generator, CDS, Communication Libraries, and a User Application Generator.