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

Widget meta-definition



The widgets definitions allows to define the ARINC 661 characteristics of widgets. It is possible to inherit widgets definitions from others. For the moment only one abstract widget is used for the inheritance, which hold the widget type, ident, and parent ident attributes.

A widget Meta-definition contain:

Widget definition

For each widget, we have the following XML attributes:
  • arincID: its ARINC String ID (example: "A661_PANEL")
  • hexID: its ARINC hexadecimal ID (example: "0xA1F0")
  • several parameters which define if the widget is abstract (hence never to be instantiated in a DF), is a container (may contain child widgets), which parent widget it inherits, if it has no renderer (each widget have a renderer by default), and its associated category (which can be used in the editor)
  • the list of UA messages available for this widget, if there are any. For each message, we have the following elements:
    • type: the type of the message, as defined in the ARINC 661 standard
    • arincID: the ARINC ID of the unique attribute for the message (example: "A661_VISIBLE"), or the ARINC ID of the message if this message hold more than on attribute (example: "A661_POS_XY")
    • The list of the associated attributes if this message hold more than one attribute
  • the list of Widget events available for this widget, if there are any
  • the list of ARINC 661 extensions which can be applied on this widget, if there are any

Examples

A general widget:
      <widget arincID="A661_GP_CROWN" hexID="0xA110" inherits="ABSTRACT_WIDGET" cat="graphic">
An interactive widget:
      <widget arincID="A661_PUSH_BUTTON" hexID="0xA2A0" inherits="ABSTRACT_WIDGET" cat="interactive">
A container:
      <widget arincID="A661_PANEL" hexID="0xA1F0" inherits="ABSTRACT_WIDGET" container="true" cat="container">
A widget which is only available for supplement 3 and beyond:
      <widget arincID="A661_SIZE_TO_FIT_CONTAINER" hexID="0xA4A0" inherits="ABSTRACT_WIDGET" supp="3+" container="true" cat="container">
A widget which has no renderer:
     <widget arincID="A661_BUFFER_FORMAT" hexID="0xA040" hasRenderer="false" inherits="ABSTRACT_WIDGET" cat="misc">
A Map widget:
      <widget arincID="A661_MAPHORZ" hexID="0xA1B0" inherits="ABSTRACT_WIDGET" container="true" cat="map">
A MapSource widget:
      <widget arincID="A661_MAPHORZ_SOURCE" hexID="0xA1A0" inherits="ABSTRACT_WIDGET" container="true" mapSource="true" mapType="mapHorz" cat="map">
A MapItemList widget:
      <widget arincID="A661_MAPHORZ_ITEMLIST" hexID="0xA180" inherits="ABSTRACT_WIDGET" mapItemList="horz" cat="map">

Attribute definition

The widget or extension attribute meta-definition define one ARINC 661 attribute used in the associated widget or extension. Note that the attributes are ordered as in the binary Definition File.

For each attribute we have the following XML attributes:
  • "arincID": its ARINC String ID (example: "A661_VISIBLE"). This ARINC ID refer to one attribute global definition (which specifies the attribute hexadecimal ID, type, enumerations for attributes which specify enumerations, etc...)
  • "name: Its ARINC name used in the XML Definition File)


The following XML attributes are optional, and their presence depend of the attribute type:
  • "maxLength": For a String attribute, points to the attribute defining the maximum length of the String
  • "maxSize": For a Array attribute, points to the attribute defining the maximum size of the Array
  • "size": For an Array attribute, points to the attribute defining the size of the Array
  • "pad": Define if this attribute must be padded to a 32 bits boundary (true by default). Some attributes (for example "A661_STRING" in A661_TOGGLE_BUTTON are not padded. In that case, the padding will be performed for the next first attribute that is defined to be padded.
  • "type": the indication if the widget if runtime, design-time, or both. Note by by default the attribute is considered as design-time, and the presence of the attribute in the list of UA messages will define it as also runtime:
    • "R": runtime only
    • "E": event only

Examples

      <widgetAttr name="Visible" arincID="A661_VISIBLE">
Event attribute:
      <widgetAttr name="EntryValidation" arincID="A661_ENTRY_VALID" runtimeType="R">
An attribute which is not padded:
      <widgetAttr name="FormatString" arincID="A661_FORMAT_STRING" maxLength="_MAXFORMATSTRINGLENGTH" pad="false">
An array attribute:
      <widgetAttr name="OrientationArray" arincID="_ANGLE_ARRAY" size="_NB_SYMBOLS">
The "OrientationArray" attribute maximum size is specified by the attribute of the ARINC ID _ANGLE_ARRAY.

A String attribute:
      <widgetAttr name="LabelString" arincID="A661_STRING" maxLength="_MAXSTRINGLENGTH">
The "LabelString" attribute maximum String length is specified by the attribute of the ARINC ID _MAXSTRINGLENGTH.

ARINC 661 properties padding

Padding in the binary Definition File can be used by adding "pad" nodes. Paddings only server to be sure that the following rules are fulfilled:
  • 32 bits and arrays of 32 bits attributes must be aligned on 32 bits
  • The end of the binary specification for a widget or extension must be aligned on 32 bits
There are several possible padding definitions:
  • 8 bit pad (uchar): <pad size="8bit"/>
  • 16 bit pad (ushort): <pad size="16bit"/>
  • 24 bit pad: <pad size="24bit"/>
  • 32 bit pad: <pad size="32bit"/>

UA message definition

The widget or extension message meta-definition define one UA message that can be received from the UA for the associated widget or extension. For each message we have the following XML attributes:
  • "arincID": its ARINC String ID (example: "A661_POS_X"). This ARINC ID refer to the ARINC ID of one ARINC 661 attribute defined for the widget, or to a global message ARINC ID, in the case of UA messages which contain more than one attribute (such as "A661_POS_XY")
  • "type" : the message type, which refer to the ID of the parameter structure which will hold the content of the message
If the message just refer to several ARINC 661 attributes in the widget or extension, the element will contain one child for each attribute.

Examples

Simple message declaration:
      <message type="byte_1" arincID="A661_VISIBLE">
Message which contains more than one attribute:
      <message type="byte_8" arincID="A661_POS_XY">
         <messageParam arincID="A661_POS_X"/>
         <messageParam arincID="A661_POS_Y"/>
      </message>

Widget events definition

The widget or extension event meta-definition define one widget event that can be sent by the Server for the associated widget or extension. For each widget event we have the following XML attributes:
  • "arincID": its ARINC String ID (example: "A661_EVT_STATE_CHANGE")
  • "type" : the event type, which refer to the ID of the event structure which will hold the content of the e
If the message just refer to several ARINC 661 attributes in the widget or extension, the element will contain one child for each attribute.

Examples

Simple event declaration (without attributes):
      <event arincID="A661_EVT_SELECTION" type="empty" />
Event which contains one attribute:
     <event arincID="A661_EVT_STATE_CHANGE" type="uchar">
        <eventAttr arincID="A661_INNER_STATE_CHECK"/>
     </event>

Extensions support

The "extensionSupport" element specifies the ARINC 661 extensions which can be applied on the widget.

Example

      <extensionSupport arincID="A661_CURSOR_EVENTS_EXTENSION"/>
      <extensionSupport arincID="A661_DIRECTIONAL_TABBING_EXTENSION"/>
      <extensionSupport arincID="A661_INITIAL_FOCUS_EXTENSION"/>
      <extensionSupport arincID="A661_FOCUS_STOP_EXTENSION"/>

Examples

PushButton

      <widget arincID="A661_PUSH_BUTTON" hexID="0xA2A0" inherits="ABSTRACT_WIDGET" cat="interactive">
         <widgetAttr name="Enable" arincID="A661_ENABLE"/>
         <widgetAttr name="Visible" arincID="A661_VISIBLE"/>
         <widgetAttr name="PosX" arincID="A661_POS_X"/>
         <widgetAttr name="PosY" arincID="A661_POS_Y"/>
         <widgetAttr name="SizeX" arincID="A661_SIZE_X"/>
         <widgetAttr name="SizeY" arincID="A661_SIZE_Y"/>
         <widgetAttr name="StyleSet" arincID="A661_STYLE_SET"/>
         <widgetAttr name="NextFocusedWidget" arincID="A661_NEXT_FOCUSED_WIDGET"/>
         <widgetAttr name="MaxStringLength" arincID="_MAXSTRINGLENGTH"/>
         <widgetAttr name="AutomaticFocusMotion" arincID="A661_AUTO_FOCUS_MOTION"/>
         <widgetAttr name="Alignment" arincID="_ALIGNMENT"/>
         <widgetAttr name="LabelString" arincID="A661_STRING" maxLength="_MAXSTRINGLENGTH"/>
         <widgetAttr name="EntryValidation" arincID="A661_ENTRY_VALID" runtimeType="R" supp="3+"/>
         <message type="byte_1" arincID="A661_ENTRY_VALID" supp="3+"/>
         <message type="byte_1" arincID="A661_ENABLE"/>
         <message type="byte_1" arincID="A661_VISIBLE"/>
         <message type="byte_2" arincID="A661_NEXT_FOCUSED_WIDGET" supp="5+"/>
         <message type="byte_1" arincID="A661_AUTO_FOCUS_MOTION" supp="5+"/>
         <message type="byte_2" arincID="A661_STYLE_SET"/>
         <message type="string" arincID="A661_STRING"/>
         <event arincID="A661_EVT_SELECTION" type="empty" />
         <extensionSupport arincID="A661_CURSOR_EVENTS_EXTENSION"/>
         <extensionSupport arincID="A661_DIRECTIONAL_TABBING_EXTENSION"/>
         <extensionSupport arincID="A661_INITIAL_FOCUS_EXTENSION"/>
         <extensionSupport arincID="A661_FOCUS_STOP_EXTENSION"/>
      </widget>

See also


Categories: arinc661 | dev | meta

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