ARINC 661 is an ARINC standard which defines the interface between the CDS and Aircraft avionics Systems (User Applications or UAs). ARINC 661 standardizes the runtime communication between the CDS (Cockpit Display System) and the UAs (User Applications). ARINC 661 also provides a way to completely define GUIs, using standardized configuration files. An ARINC 661 compatible CDS must have a Server capable of creating the GUI hierarchy during initialization, thus avoiding the need to be recompiled if the GUI definition changes.
It depends on what you want to do with it. If you are just using the Server, the Client, and the Editor (even if you specialize the Look and Feel of the Server), you only need the zipped binary release. It contains all you need to start a Server, a Client, or an Editor.
If you plan to extend the ARINC 661 implementation (for example by adding new widgets, or creating entirely new UIs for existing widgets, or creating a plugin...), then you should also download the zipped javadocs which contain the core API that you will have to use.
Finally, the zipped source and unit tests are only useful for people who want to work on the project itself, or change the core of the code.
The early beginnings of this project were mainly a "personal exercise", and it was very useful to better understand how the standard work. We believe that by Open Sourcing this code, we will allow more people to understand this standard and thus take interest in it.
What is the history of this project, and what is its roadmap?
The changes for each version are available in this wiki. The roadmap is still under construction, but should be avilable soon.
Do you accept source code contributions?
We are now accepting source code contributions for this project. However, as for a lot of other Open Source projects, these contributions will be accepted under the same kind of rules which are already used on other Open Source projects. Also for source code to be included in this project, we also ask the copyright on the patch files to be granted to Dassault. Please show some patience if your patch is not applied as fast as you'd like or if you are asked to make changes to the patch. If you do not receive feedback in a reasonable amount of time, feel free to resubmit your patch.
For a practical FAQ on how to send patches with subversion, see for example the Apache FAQ which explains the matter better than I could do myself.
I want to extend the way the Server work, is it possible?
There are a lot of ways to extend the Server (or even the Client), without changing anything in the project code. The plugin architecture allows to extend things such as: network protocols, Look and Feel, Map items, etc... New widgets or new versions of existing widgets can even be provided.
Something does not wortk as I expected, what should I do?