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

Map widgets



The concepts used by the ARINC 661 standard are close to those used in User interface markup languages. However, The standard allows to use some kinds of widgets which are not managed by other UI languages. Map widgets are widgets which allow to manage digital maps, with mission-specific runtime overlays such as Flight Plans, Radar plots and targets, etc...

Map widgets architecture

There are two kinds of Map widgets hierarchy:
  • The hierarchy which allows to show an horizontal map: A661_MAPHORZ, A661_MAPHORZ_SOURCE, and A661_MAPHORZ_ITEMLIST
  • The hierarchy which allows to show a vertical map: A661_MAP_VERT, A661_MAP_VERT_SOURCE, and A661_MAP_VERT_ITEMLIST
These two hierarchies are very similar, so we can explain how they work with the example of the horizontal map:

Horizontal map architecture

mapWidgets

A661_MAPHORZ widget

The A661_MAPHORZ widget stores the position and size of the Map on the Layer, but it also maintain the characteristics of the Map center (center of the Map in world coordinates and corresponding position on the screen) and the scale. It also defines the position of the reference point for the projection which is the point which will be used to position elements in the Map. For example, it is possible to position the elements by reference to the aircraft, but centering the Map on another point.

A661_MAPHORZ_SOURCE widget

It is possible to put any number of A661_MAPHORZ_SOURCE widgets under a A661_MAPHORZ widget. A A661_MAPHORZ_SOURCE widget defines a projection system (defined in the MapDataFormat property) for all elements which will be defined under it. For example, Map sources defined in Latitude/Longitude will have the A661_MDF_LAT_LONG format. Those defined in Bearing/Distance will have the A661_MDF_BRG_DIST_ACHDG format.

A661_MAPHORZ_ITEMLIST widget

The A661_MAPHORZ_ITEMLIST widget does not maintain any Map element by itself. They are defined in children widget called A661_MAPHORZ_ITEMLIST. Any number of A661_MAPHORZ_ITEMLIST widgets can be defined under a A661_MAPHORZ_SOURCE. A661_MAPHORZ_ITEMLIST widgets maintain lists of Map elements called MapItems. MapItems are only defined and modified at runtime.

A661_MAPHORZ_CONTAINER widget

A A661_MAPHORZ_CONTAINER widget is a container which allows to position and scale non interactive widgets in a horizontal Map using real world coordinates. This widget must be a child of a A661_MAPHORZ_SOURCE widget.

A661_MAPHORZ_PANEL widget

A A661_MAPHORZ_PANEL widget is a container which allows to position widgets in a horizontal Map using real world coordinates. This widget must be a child of a A661_MAPHORZ_SOURCE widget. It allows for example to show a Popup window on a MapItem or a real-world point selected by the user.

Vertical map architecture

Contrary to MapHorz widgets, for a vertical Map the scale on the horizontal axis is different from the scale on the vertical axis.

A661_MAPVERT widget

The A661_MAPVERT widget stores the position and size of the Map on the Layer, but it also maintain the characteristics of the Map reference (center of the Map in world coordinates and corresponding position on the screen) and the scale.

A661_MAPVERT_SOURCE widget

It is possible to put any number of A661_MAPVERT_SOURCE widgets under a A661_MAPVERT widget. A A661_MAPVERT_SOURCE widget defines a projection system (defined in the X and Y MapDataFormat properties) for all elements which will be defined under it.

A661_MAPVERT_ITEMLIST widget

The A661_MAPVERT_ITEMLIST widget does not maintain any Map element by itself. They are defined in children widget called A661_MAPVERT_ITEMLIST Any number of A661_MAPVERT_ITEMLIST widgets can be defined under a A661_MAPVERT_SOURCE.

A661_MAPVERT_CONTAINER widget

A A661_MAPVERT_CONTAINER widget is a container which allows to position non interactive widgets widgets in a vertical Map using real world coordinates. This widget must be a child of a A661_MAPVERT_SOURCE widget. It allows for example to show a Popup window on a MapItem or a real-world point selected by the user.

A661_MAPVERT_PANEL widget

A A661_MAPVERT_PANEL widget is a container which allows to position widgets in a vertical Map using real world coordinates. This widget must be a child of a A661_MAPVERT_SOURCE widget. It allows for example to show a Popup window on a MapItem or a real-world point selected by the user.

MapItems

MapItems are not widgets, but elements defined within a A661_MAPHORZ_ITEMLIST widget. There is only one runtime message defined for the A661_MAPHORZ_ITEMLIST widget, which allows to send modifications of the list currently managed by this A661_MAPHORZ_ITEMLIST.
See MapItems.

Runtime communication

The list managed by the A661_MAPHORZ_ITEMLIST widget is managed by a SetParameter message managing the Buffer Of MapItems stored in the A661_MAPHORZ_ITEMLIST. Each elements in the Buffer Structure contains a header and a content:
  • The content defines the characteristics of the MapItem, including its coordinates (assumed to be defined according to the A661_MAPHORZ_SOURCE projection system)
  • The header defines the ID and the type of the MapItem:
    • If an ID not encountered before for this A661_MAPHORZ_ITEMLIST is present in the message, it is a new MapItem
    • If an ID previously encountered for this A661_MAPHORZ_ITEMLIST is present in the message, it is a Mapitem modification
    • There is a special "empty" MapItem called A661_NOT_USED which is used to remove an existing MapItem from the list

Usage in Connectors

As for many other container widgets, it is possible to put a Connector widget under a A661_MAPHORZ or A661_MAPVERT widget. This allows to use the same list of MapItems (managed by a A661_MAPHORZ_ITEMLIST or A661_MAPVERT_ITEMLIST) on two different Maps, which means:
  • With a different position and size for the Map
  • With a different reference and screen reference
  • With a different range
  • With a different orientation
In the following example, Two A661_MAPHORZ widgets are used to present the same list of MapItems (managed by the same A661_MAPHORZ_ITEMLIST widget) in two different windows in the cockpit:
mapsconnectors
  • If the A661_MAPHORZ_ITEMLIST widget list of mapItems is updated: the update will be applied in both the Maps
  • If the characteristics of one A661_MAPHORZ (for example the range or orientation) is changed: all the MapItems will be repositioned and oriented for the associated A661_MAPHORZ only

J661 implementation

The Server manage natively map widgets. However, the renderers for the MapItems for both the Swing and JavaFX UI framework are not present in the Swing or JavaFX Server implementations and must be added as an extension. See MapItems extension.

See also


Categories: arinc661 | maps | user

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