The components of the J661 project are compliant to the ARINC 661 standard in a strict way. However, there are some notions that are mandatory in MMI definition that are not defined in the standard. Also it may be useful to extend or modify some elements that are defined to experiment or add capabilities not provided by default. There are several ways of extending the Server / Client or Editor:
The simplest way is by configuring several of their properties by XML configuration files. Apart from the graphic and pictures properties, some of the things that can be extended this way are: the Look and feel definition, the Cockpit configuration, the MapItems styles configuration, or the Network configuration
A more complex way is to register J661 extensions. Network Protocols, ARINC 661 elements meta-definition, are some of the behaviors than can be extended in this way
Finally, it is possible to code Plugins that can extend the functionalities of the Server / Client or Editor. This project already provide some ready to use Plugins such as Scenarios
Note that if you want to extend the standard itself, such as adding new widgets or modifying existing widgets, you must know how the J661 project applications model the standard (see ARINC 661 XML model).
Differences between J661 extensions and ARINC 661 extensions
Even if their names sound similar, there is absolutely no similarity between ARINC extensions and J661 Extensions:
ARINC extensions add optional features to existing widgets by adding an extension block to the widget in the definition file. However, ARINC extensions are defined in the standard and as such in the standard meta-definition
J661 Extensions allow to extend the behavior of the Server or Client to add new widgets or modify the definition of widgets
Examples of J661 extensions
J661 extensions may:
Change the widgets Meta-definition (for example to add widgets or MapItems)