ID: | AIXM-501 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 16 JUL 2021 |
status: | PROPOSED |
Description
The speedInterpretation data type is corrected by replacing the incorrect use of the CodeAltitudeUseType with a dedicated CodeSpeedInterpretationUseType.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-116
In the current model, the speedInterpretation attribute of the SegmentLeg class uses the CodeAltitudeUseType. This is incorrect both from a conceptual point of view and also from the actual list of values for this data type. A dedicated speed limit interpretation list of values is necessary.
As per ARINC 424-221 5.261 Speed Limit Description, there are 3 (three) values detailing the description of speed limit. These values are optional for all Path Terminators, irrespective of the fix association (Ref. ARINC 424-22 Att 5).
- “+” Minimum Speed, Cross Fix AT or ABOVE speed specified in Speed Limit
- “-” Maximum Speed, Cross Fix AT or BELOW speed specified in Speed Limit
- “@ or blank” Mandatory Speed, Cross Fix AT speed specified in Speed Limit
General interpretation:
- MAX=”Maximum speed” - Maximum speed limit associated with the leg;
- MIN = “Minimum speed” - Minimum speed limit associated with the leg;
- AT = “Mandatory speed” - Mandatory speed limit associated with the leg.
Translating these ARINC rules in full, to support a wider scope of implementation, based only on the current AIXM 5.1(.1)+ Segment Leg logic, is not possible at the level of the UML model and they would need to be addressed by additional interpretation provided in appropriate coding guidelines.
Impact assessment
When providing AIXM 5.1(.1) data to AIXM 5.2 systems, the forward mapping rules described further in this document may be applied.
When receiving data from AIXM 5.2 implementations, the backward mapping rules described further in this document may be applied in order to recuperate the data. These conversion rules are based on the current AIXM 5.1(.1) workarounds.
Change Proposal details
In the UML model:
- Add a new <<codelist>> CodeSpeedInterpretationUseBaseType defined as “A code indicating how a speed values should be interpreted.”, list of values
- MAX = “Maximum speed”
- MIN = “Minimum speed”
- AT = “Mandatory speed”
- OTHER
- Add a new data type CodeSpeedInterpretationUseType (specialisation of CodeSpeedInterpretationUseBaseType, stereotype <<datatype>>, definition: “ A complex data type that enables the provision of a NIL reason for any attribute using this type.”), attribute:
- nilReason (type: NilReasonEnumeration)
- In the SegmentLeg class, for the attribute speedInterpretation:
- Replace <<datatype>> CodeAltitudeUseType with <<datatype>> CodeSpeedInterpretationUseType
The changes are shown in the UML class diagram to the right.
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
[MAPC-01] For each SegmentLeg specialisation that has an assigned speedInterpretation value equal-to:
- “OTHER:MAX”, “BELOW_UPPER” replace it with “MAX”;
- “OTHER:MIN”, “ABOVE_LOWER” replace it with “MIN”;
- “OTHER:AT”, “AT_LOWER” replace it with “AT”;
- “BETWEEN” replace it with “OTHER:BETWEEN”
- “RECOMMENDED” replace it with “OTHER:RECOMMENDED”
- “EXPECT_LOWER” replace it with “OTHER:EXPECT_LOWER”
- “AS_ASSIGNED” replace it with “OTHER:AS_ASSIGNED”
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
[MAPC-01] For each SegmentLeg specialisation that has an assigned speedInterpretation value equal-to:
- “MAX” replace it with “OTHER:MAX”
- “MIN” replace it with “OTHER:MIN”
- “AT” replace it with “OTHER:AT”
Mapping example
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx)
AIXM 5.2 | AIXM 5.1(.1) |
---|---|