Home
Categories
Dictionary
Download
Project Details
Changes Log
Who We Are
FAQ
License

UACDS Interface



The UACDS Interface is a specification of the exchanges between a User Application and a Cockpit Display System, for a given Definition File.

The UACDS Interface is specified through an XML file which defines the commands (from the UA to the CDS) and notifications (from the CDS to the UA) that can be sent or received at runtime. These commands and notifications are a subset of all those which are possible considering the Definition File (defined in the ARINC661 protocol).

Structure

The structure of the UACDS Interface XML file is separated between:
  • The UACDS Interface capacities (defined for the whole CDS): specifies the UA message management capacities
  • The UACDS Interface definition (defined for each Definition File): specifies the commands and notifications going from/to the UA
See the UACDSInterface.xsd for the UACDS Interface grammar.

UACDS Interface capacities

The UACDS Interface capacities specifies the UA message management capacities, for example:
  • The frequency of cyclic datas[1]
    Note that the ARINC661 protocol does not specify by itself a cyclic communication. That a Buffer should be sent cyclically would be an UA or Network specificity
  • The conditions to send datas (for example, a data can be sent even if it has not changed, or only if it has changed since to last time it has been sent)
  • etc...
The actual capacities are implementation-dependant. For example, it is possible to specify UACDS Interface capacities for:
  • Datas sent in cyclic messages and their associated emission frequency
  • Datas sent only if their state or value has changed

UACDS Interface capacities Example

The following UACDS Interface capacities specifies the following capacities:
  • "cyclic": Datas sent in cyclic messages and their associated emission frequency ("frequency")
  • "onChange": Datas sent only if their state or value has changed
      <uaCdsInterfaceCapacities>
         <a661BufferFillingModalityTypes>
            <a661BufferFillingModalityType name="onChange"/>
            <a661BufferFillingModalityType name="cyclic">
               <property name="frequency" defaultValue="100" />
            </a661BufferFillingModalityType>
         </a661BufferFillingModalityTypes>
      </uaCdsInterfaceCapacities>

UACDS Interface definition

The UACDS Interface definition is separated in to sub-elements:
  • The "interfaces" definition, which define the interfaces which are sent or received by the User Application
  • The "graphicalGroup" definitions, which define the for which widgets and Layers (and properties or events) the above interfaces are defined

Interfaces definition

The "interfaces" node defines the interfaces which are sent or received by the User Application. Interfaces are separated in:
  • "commandInterfaces" which define the interfaces from the UA to the CDS. They will correspond to Widgets runtime messages
  • "notificationInterfaces" which define the interfaces from the CDS to the UA. They will correspond to Widgets Events

interfacesGroup

Interface groups allow to group interfaces[2]
However it is not necessary to group interfaces under "interfacesGroup" elements
. It is possible to have a group under another.

Example

      <interfaces>
         <interfacesGroups>
            <interfacesGroup name="widgets">
               <commandInterfaces>
                  <commandInterface name="val1" a661BufferFillingModalityRef="Changing"/>
                  <commandInterface name="val2"/>
                  <commandInterface name="val3" a661BufferFillingModalityRef="Cyclic50Hz"/>
               </commandInterfaces>
               <notificationInterfaces>
                  <notificationInterface name="TheToggle"/>
                  <notificationInterface name="TheToggleState"/>
               </notificationInterfaces>
            </interfacesGroup>
            <interfacesGroup name="layers">
               <commandInterfaces>
                  <commandInterface name="layerActive"/>
                  <commandInterface name="layerVisible"/>
               </commandInterfaces>
            </interfacesGroup>
         </interfacesGroups>
      </interfaces>

GraphicalGroups definitions

Example

Suppose the following Definition File with only one GpRectangle:
      <a661_df name="Default" library_version="0" supp_version="5">
         <model>
            <prop name="ApplicationId" value="1" />
         </model>
         <a661_layer name="Default" >
            <model>
               <prop name="LayerId" value="1" />
               <prop name="ContextNumber" value="0" />
               <prop name="Height" value="10000" />
               <prop name="Width" value="10000" />
            </model>
            <a661_widget name="gpRectangle2" type="A661_GP_RECTANGLE">
               <model>
                  <prop name="WidgetIdent" value="2" />
                  <prop name="Anonymous" value="A661_FALSE" />
                  <prop name="Visible" value="A661_TRUE" />
                  <prop name="PosX" value="5000" />
                  <prop name="PosY" value="2963" />
                  <prop name="SizeX" value="2000" />
                  <prop name="SizeY" value="2000" />
                  <prop name="StyleSet" value="0" />
                  <prop name="ColorIndex" value="red" />
                  <prop name="Filled" value="A661_TRUE" />
                  <prop name="FillIndex" value="blue" />
                  <prop name="Halo" value="A661_FALSE" />
               </model>
            </a661_widget>
         </a661_layer>
      </a661_df>
The result will be:

rectangle
By default the following properties are modifiable by the UA:
  • Visible: the Rectangle visibility
  • PosX: the Rectangle X position
  • PosY: the Rectangle Y position
  • SizeX: the Rectangle width
  • SizeY: the Rectangle height
  • StyleSet: the Rectangle color index
  • FillIndex: the Rectangle fill index
Suppose we only want to set the fill index by the UA. We would have the following UACDS Interface file:
      <uaCdsInterface xmlns="http://www.aviation-ia.com/aeec/SupportFiles/661-5/uacdsinterface"
      xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
      xs:schemaLocation="http://www.aviation-ia.com/aeec/SupportFiles/661-5/uacdsinterface UACDSInterface.xsd"
      applicationId="1">
         <uaCdsInterfaceDefinition>
            <interfaces>
               <commandInterfaces>
                  <commandInterface name="fill" />
               </commandInterfaces>
            </interfaces>
            <graphicalGroups>
               <graphicalGroup name="default">
                  <commands>
                     <command commandInterfaceRef="fill">
                        <setParameter layerIdent="1" widgetIdent="1" widgetType="A661_GP_RECTANGLE" widgetParameter="A661_FILL_INDEX" layerName="Default" widgetName="gpRectangle" />
                     </command>
                  </commands>
               </graphicalGroup>
            </graphicalGroups>
         </uaCdsInterfaceDefinition>
      </uaCdsInterface>

Notes

  1. ^ Note that the ARINC661 protocol does not specify by itself a cyclic communication. That a Buffer should be sent cyclically would be an UA or Network specificity
  2. ^ However it is not necessary to group interfaces under "interfacesGroup" elements

See also


Categories: arinc661 | user

Copyright 2016-2017 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v2 licence