wireshark/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.asn

2794 lines
67 KiB
Groff

-- Sub-Volume IV ASN.1 reference definitions for ICAO Doc. 9705,
-- Second Edition
-- Version 1.1, 03 Oct 2001
-- protected mode PDR's
-- 2011-10-25 Doc 9705 Draft Ed 3 (ICAO web site - 11/00) including "9705 PDRS FOR CPDLC"
-- based on "ACP WGN SG/N2 Version 1.1 (Output Montreal - May 2005)"
-- plain old CPDLC
CPDLCAPDUsVersion1 DEFINITIONS ::=
BEGIN
IMPORTS
ATCUplinkMessage, ATCDownlinkMessage
FROM PMCPDLCMessageSetVersion1
ATCForwardMessage, ATCForwardResponse
FROM PMCPDLCAPDUsVersion1;
-- ----------------------------------------------------------------------------------
-- Ground Generated Messages - Top level
-- ----------------------------------------------------------------------------------
GroundPDUs ::= CHOICE
{
abortUser [0] CPDLCUserAbortReason,
abortProvider [1] CPDLCProviderAbortReason,
startup [2] UplinkMessage,
send [3] ATCUplinkMessage,
forward [4] ATCForwardMessage,
forwardresponse [5] ATCForwardResponse,
...
}
UplinkMessage ::= CHOICE
{
noMessage [0] NULL,
aTCUplinkMessage [1] ATCUplinkMessage
}
AircraftPDUs::= CHOICE
{
abortUser [0] CPDLCUserAbortReason,
abortProvider [1] CPDLCProviderAbortReason,
startdown [2] StartDownMessage,
send [3] ATCDownlinkMessage,
...
}
StartDownMessage ::= SEQUENCE
{
mode Mode DEFAULT cpdlc,
startDownlinkMessage DownlinkMessage
}
Mode ::= ENUMERATED
{
cpdlc (0),
dsc (1)
}
DownlinkMessage ::= CHOICE
{
noMessage [0] NULL,
aTCDownlinkMessage [1] ATCDownlinkMessage
}
CPDLCUserAbortReason ::= ENUMERATED
{
undefined (0),
no-message-identification-numbers-available (1),
duplicate-message-identification-numbers (2),
no-longer-next-data-authority (3),
current-data-authority-abort (4),
commanded-termination (5),
invalid-response (6),
...
}
CPDLCProviderAbortReason ::= ENUMERATED
{
timer-expired (0),
undefined-error (1),
invalid-PDU (2),
protocol-error (3),
communication-service-error (4),
communication-service-failure (5),
invalid-QOS-parameter (6),
expected-PDU-missing (7),
...
}
END
-- protected mode PMCPDLC
PMCPDLCAPDUsVersion1 DEFINITIONS::=
BEGIN
IMPORTS
DateTimeGroup,
AircraftFlightIdentification,
AircraftAddress
FROM PMCPDLCMessageSetVersion1;
-- ----------------------------------------------------------------------------------
-- Ground Generated Messages - Top level
-- ----------------------------------------------------------------------------------
ProtectedGroundPDUs ::= CHOICE
{
abortUser [0] PMCPDLCUserAbortReason,
abortProvider [1] PMCPDLCProviderAbortReason,
startup [2] ProtectedUplinkMessage,
send [3] ProtectedUplinkMessage,
forward [4] ATCForwardMessage,
forwardresponse [5] ATCForwardResponse,
...
}
ProtectedUplinkMessage::= SEQUENCE
{
algorithmIdentifier [0] AlgorithmIdentifier OPTIONAL,
protectedMessage [1] CPDLCMessage OPTIONAL,
-- PER encoded ATCUplinkMessage
-- (see Module PMCPDLCMessageSetVersion1)
integrityCheck [2] BIT STRING,
...
}
ATCForwardMessage ::= SEQUENCE
{
forwardHeader ForwardHeader,
forwardMessage ForwardMessage
}
ForwardHeader ::= SEQUENCE
{
dateTime DateTimeGroup,
aircraftID AircraftFlightIdentification,
aircraftAddress AircraftAddress
}
ForwardMessage ::= CHOICE
{
upElementIDs [0] BIT STRING,
--PER encoded ATCUplinkMessageData,
-- (see Module PMCPDLCMessageSetVersion1)
downElementIDs [1] BIT STRING
--PER encoded ATCDownlinkMessageData,
-- (see Module PMCPDLCMessageSetVersion1)
}
ATCForwardResponse ::= ENUMERATED
{
success (0),
service-not-supported (1),
version-not-equal (2),
...
}
-- ----------------------------------------------------------------------------------
-- Aircraft Generated Messages - Top level
-- ----------------------------------------------------------------------------------
ProtectedAircraftPDUs::= CHOICE
{
abortUser [0] PMCPDLCUserAbortReason,
abortProvider [1] PMCPDLCProviderAbortReason,
startdown [2] ProtectedStartDownMessage,
send [3] ProtectedDownlinkMessage,
...
}
ProtectedStartDownMessage ::= SEQUENCE
{
mode ProtectedMode DEFAULT cpdlc,
startDownlinkMessage ProtectedDownlinkMessage
}
ProtectedMode ::= ENUMERATED
{
cpdlc (0),
dsc (1)
}
ProtectedDownlinkMessage::= SEQUENCE
{
algorithmIdentifier [0] AlgorithmIdentifier OPTIONAL,
protectedMessage [1] CPDLCMessage OPTIONAL,
--PER encoded ATCDownlinkMessage,
-- (see Module PMCPDLCMessageSetVersion1)
integrityCheck [2] BIT STRING,
...
}
-- ----------------------------------------------------------------------------------
-- Uplink and Downlink messages - Common Elements
-- ----------------------------------------------------------------------------------
AlgorithmIdentifier ::= RELATIVE-OID
--root is {icao-arc atn-algorithms(9)}
CPDLCMessage ::= BIT STRING
PMCPDLCUserAbortReason ::= ENUMERATED
{
undefined (0),
no-message-identification-numbers-available (1),
duplicate-message-identification-numbers (2),
no-longer-next-data-authority (3),
current-data-authority-abort (4),
commanded-termination (5),
invalid-response (6),
time-out-of-synchronisation (7),
unknown-integrity-check (8),
validation-failure (9),
unable-to-decode-message (10),
invalid-pdu (11),
invalid-CPDLC-message (12),
...
}
PMCPDLCProviderAbortReason ::= ENUMERATED
{
timer-expired (0),
undefined-error (1),
invalid-PDU (2),
protocol-error (3),
communication-service-error (4),
communication-service-failure (5),
invalid-QOS-parameter (6),
expected-PDU-missing (7),
...
}
END
PMCPDLCMessageSetVersion1 DEFINITIONS::=
BEGIN
ATCUplinkMessage ::= SEQUENCE
{
header ATCMessageHeader,
messageData ATCUplinkMessageData
}
ATCUplinkMessageData ::= SEQUENCE
{
elementIds SEQUENCE SIZE (1..5) OF ATCUplinkMsgElementId,
constrainedData SEQUENCE
{
routeClearanceData SEQUENCE SIZE (1..2) OF RouteClearance OPTIONAL,
...
} OPTIONAL
}
ATCDownlinkMessage ::= SEQUENCE
{
header ATCMessageHeader,
messageData ATCDownlinkMessageData
}
ATCDownlinkMessageData ::= SEQUENCE
{
elementIds SEQUENCE SIZE (1..5) OF ATCDownlinkMsgElementId,
constrainedData SEQUENCE
{
routeClearanceData SEQUENCE SIZE (1..2) OF RouteClearance OPTIONAL,
...
} OPTIONAL
}
-- ----------------------------------------------------------------------------------
-- Uplink and Downlink messages - Common Elements
-- ----------------------------------------------------------------------------------
ATCMessageHeader ::= SEQUENCE
{
messageIdNumber [0] MsgIdentificationNumber,
messageRefNumber [1] MsgReferenceNumber OPTIONAL,
dateTime [2] DateTimeGroup,
logicalAck [3] LogicalAck DEFAULT notRequired
}
MsgIdentificationNumber ::= INTEGER (0..63)
MsgReferenceNumber ::= INTEGER (0..63)
LogicalAck ::= ENUMERATED
{
required (0),
notRequired (1)
}
-- ----------------------------------------------------------------------------------
-- Uplink message element
-- ----------------------------------------------------------------------------------
ATCUplinkMsgElementId ::= CHOICE
{
-- UNABLE
-- Urg(N)/Alr(M)/Resp(N)
uM0NULL [0] NULL,
-- STANDBY
-- Urg(N)/Alr(L)/Resp(N)
uM1NULL [1] NULL,
-- REQUEST DEFERRED
-- Urg(N)/Alr(L)/Resp(N)
uM2NULL [2] NULL,
-- ROGER
-- Urg(N)/Alr(L)/Resp(N)
uM3NULL [3] NULL,
-- AFFIRM
-- Urg(N)/Alr(L)/Resp(N)
uM4NULL [4] NULL,
-- NEGATIVE Urg(N)/Alr(L)/Resp(N)
uM5NULL [5] NULL,
-- EXPECT [level] Urg(L)/Alr(L)/Resp(R)
uM6Level [6] Level,
-- EXPECT CLIMB AT [time]
-- Urg(L)/Alr(L)/Resp(R)
uM7Time [7] Time,
-- EXPECT CLIMB AT [position]
-- Urg(L)/Alr(L)/Resp(R)
uM8Position [8] Position,
-- EXPECT DESCENT AT [time]
-- Urg(L)/Alr(L)/Resp(R)
uM9Time [9] Time,
-- EXPECT DESCENT AT [position]
-- Urg(L)/Alr(L)/Resp(R)
uM10Position [10] Position,
-- EXPECT CRUISE CLIMB AT [time]
-- Urg(L)/Alr(L)/Resp(R)
uM11Time [11] Time,
-- EXPECT CRUISE CLIMB AT [position]
-- Urg(L)/Alr(L)/Resp(R)
uM12Position [12] Position,
-- AT [time] EXPECT CLIMB TO [level]
-- Urg(L)/Alr(L)/Resp(R)
uM13TimeLevel [13] TimeLevel,
-- AT [position] EXPECT CLIMB TO [level]
-- Urg(L)/Alr(L)/Resp(R)
uM14PositionLevel [14] PositionLevel,
-- AT [time] EXPECT DESCENT TO [level]
-- Urg(L)/Alr(L)/Resp(R)
uM15TimeLevel [15] TimeLevel,
-- AT [position] EXPECT DESCENT TO [level]
-- Urg(L)/Alr(L)/Resp(R)
uM16PositionLevel [16] PositionLevel,
-- AT [time] EXPECT CRUISE CLIMB TO [level]
-- Urg(L)/Alr(L)/Resp(R)
uM17TimeLevel [17] TimeLevel,
-- AT [position] EXPECT CRUISE CLIMB TO [level]
-- Urg(L)/Alr(L)/Resp(R)
uM18PositionLevel [18] PositionLevel,
-- MAINTAIN [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM19Level [19] Level,
-- CLIMB TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM20Level [20] Level,
-- AT [time] CLIMB TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM21TimeLevel [21] TimeLevel,
-- AT [position] CLIMB TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM22PositionLevel [22] PositionLevel,
-- DESCEND TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM23Level [23] Level,
-- AT [time] DESCEND TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM24TimeLevel [24] TimeLevel,
-- AT [position] DESCEND TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM25PositionLevel [25] PositionLevel,
-- CLIMB TO REACH [level] BY [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM26LevelTime [26] LevelTime,
-- CLIMB TO REACH [level] BY [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM27LevelPosition [27] LevelPosition,
-- DESCEND TO REACH [level] BY [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM28LevelTime [28] LevelTime,
-- DESCEND TO REACH [level] BY [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM29LevelPosition [29] LevelPosition,
-- MAINTAIN BLOCK [level] TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM30LevelLevel [30] LevelLevel,
-- CLIMB TO AND MAINTAIN BLOCK [level] TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM31LevelLevel [31] LevelLevel,
-- DESCEND TO AND MAINTAIN BLOCK [level] TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM32LevelLevel [32] LevelLevel,
-- Reserved
-- Urg(L)/Alr(L)/Resp(Y)
uM33NULL [33] NULL,
-- CRUISE CLIMB TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM34Level [34] Level,
-- CRUISE CLIMB ABOVE [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM35Level [35] Level,
-- EXPEDITE CLIMB TO [level]
-- Urg(U)/Alr(M)/Resp(W/U)
uM36Level [36] Level,
-- EXPEDITE DESCENT TO [level]
-- Urg(U)/Alr(M)/Resp(W/U)
uM37Level [37] Level,
-- IMMEDIATELY CLIMB TO [level]
-- Urg(D)/Alr(H)/Resp(W/U)
uM38Level [38] Level,
-- IMMEDIATELY DESCEND TO [level]
-- Urg(D)/Alr(H)/Resp(W/U)
uM39Level [39] Level,
-- Reserved
-- Urg(L)/Alr(L)/Resp(Y)
uM40NULL [40] NULL,
-- Reserved Urg(L)/Alr(L)/Resp(Y)
uM41NULL [41] NULL,
-- EXPECT TO CROSS [position] AT [level]
-- Urg(L)/Alr(L)/Resp(R)
uM42PositionLevel [42] PositionLevel,
-- EXPECT TO CROSS [position] AT OR ABOVE [level]
-- Urg(L)/Alr(L)/Resp(R)
uM43PositionLevel [43] PositionLevel,
-- EXPECT TO CROSS [position] AT OR BELOW [level]
-- Urg(L)/Alr(L)/Resp(R)
uM44PositionLevel [44] PositionLevel,
-- EXPECT TO CROSS [position] AT AND MAINTAIN [level]
-- Urg(L)/Alr(L)/Resp(R)
uM45PositionLevel [45] PositionLevel,
-- CROSS [position] AT [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM46PositionLevel [46] PositionLevel,
-- CROSS [position] AT OR ABOVE [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM47PositionLevel [47] PositionLevel,
-- CROSS [position] AT OR BELOW [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM48PositionLevel [48] PositionLevel,
-- CROSS [position] AT AND MAINTAIN [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM49PositionLevel [49] PositionLevel,
-- CROSS [position] BETWEEN [level] AND [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM50PositionLevelLevel [50] PositionLevelLevel,
-- CROSS [position] AT [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM51PositionTime [51] PositionTime,
-- CROSS [position] AT OR BEFORE [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM52PositionTime [52] PositionTime,
-- CROSS [position] AT OR AFTER [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM53PositionTime [53] PositionTime,
-- CROSS [position] BETWEEN [time] AND [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM54PositionTimeTime [54] PositionTimeTime,
-- CROSS [position] AT [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM55PositionSpeed [55] PositionSpeed,
-- CROSS [position] AT OR LESS THAN [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM56PositionSpeed [56] PositionSpeed,
-- CROSS [position] AT OR GREATER THAN [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM57PositionSpeed [57] PositionSpeed,
-- CROSS [position] AT [time] AT [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM58PositionTimeLevel [58] PositionTimeLevel,
-- CROSS [position] AT OR BEFORE [time] AT [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM59PositionTimeLevel [59] PositionTimeLevel,
-- CROSS [position] AT OR AFTER [time] AT [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM60PositionTimeLevel [60] PositionTimeLevel,
-- CROSS [position] AT AND MAINTAIN [level] AT [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM61PositionLevelSpeed [61] PositionLevelSpeed,
-- AT [time] CROSS [position] AT AND MAINTAIN [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM62TimePositionLevel [62] TimePositionLevel,
-- AT [time] CROSS [position] AT AND MAINTAIN [level] AT [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM63TimePositionLevelSpeed [63] TimePositionLevelSpeed,
-- OFFSET [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(M)/Resp(W/U)
uM64DistanceSpecifiedDirection [64] DistanceSpecifiedDirection,
-- AT [position] OFFSET [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(M)/Resp(W/U)
uM65PositionDistanceSpecifiedDirection[65] PositionDistanceSpecifiedDirection,
-- AT [time] OFFSET [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(M)/Resp(W/U)
uM66TimeDistanceSpecifiedDirection [66] TimeDistanceSpecifiedDirection,
-- PROCEED BACK ON ROUTE
-- Urg(N)/Alr(M)/Resp(W/U)
uM67NULL [67] NULL,
-- REJOIN ROUTE BY [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM68Position [68] Position,
-- REJOIN ROUTE BY [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM69Time [69] Time,
-- EXPECT BACK ON ROUTE BY [position]
-- Urg(L)/Alr(L)/Resp(R)
uM70Position [70] Position,
-- EXPECT BACK ON ROUTE BY [time]
-- Urg(L)/Alr(L)/Resp(R)
uM71Time [71] Time,
-- RESUME OWN NAVIGATION
-- Urg(N)/Alr(M)/Resp(W/U)
uM72NULL [72] NULL,
-- [DepartureClearance]
-- Urg(N)/Alr(M)/Resp(W/U)
uM73DepartureClearance [73] DepartureClearance,
-- PROCEED DIRECT TO [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM74Position [74] Position,
-- WHEN ABLE PROCEED DIRECT TO [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM75Position [75] Position,
-- AT [time] PROCEED DIRECT TO [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM76TimePosition [76] TimePosition,
-- AT [position] PROCEED DIRECT TO [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM77PositionPosition [77] PositionPosition,
-- AT [level] PROCEED DIRECT TO [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM78LevelPosition [78] LevelPosition,
-- CLEARED TO [position] VIA [routeClearance]
-- Urg(N)/Alr(M)/Resp(W/U)
uM79PositionRouteClearance [79] PositionRouteClearanceIndex,
-- CLEARED [routeClearance]
-- Urg(N)/Alr(M)/Resp(W/U)
uM80RouteClearance [80] RouteClearanceIndex,
-- CLEARED [procedureName]
-- Urg(N)/Alr(M)/Resp(W/U)
uM81ProcedureName [81] ProcedureName,
-- CLEARED TO DEVIATE UP TO [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(M)/Resp(W/U)
uM82DistanceSpecifiedDirection [82] DistanceSpecifiedDirection,
-- AT [position] CLEARED [routeClearance]
-- Urg(N)/Alr(M)/Resp(W/U)
uM83PositionRouteClearance [83] PositionRouteClearanceIndex,
-- AT [position] CLEARED [procedureName]
-- Urg(N)/Alr(M)/Resp(W/U)
uM84PositionProcedureName [84] PositionProcedureName,
-- EXPECT [routeClearance]
-- Urg(L)/Alr(L)/Resp(R)
uM85RouteClearance [85] RouteClearanceIndex,
-- AT [position] EXPECT [routeClearance]
-- Urg(L)/Alr(L)/Resp(R)
uM86PositionRouteClearance [86] PositionRouteClearanceIndex,
-- EXPECT DIRECT TO [position]
-- Urg(L)/Alr(L)/Resp(R)
uM87Position [87] Position,
-- AT [position] EXPECT DIRECT TO [position]
-- Urg(L)/Alr(L)/Resp(R)
uM88PositionPosition [88]PositionPosition,
-- AT [time] EXPECT DIRECT TO [position]
-- Urg(L)/Alr(L)/Resp(R)
uM89TimePosition [89] TimePosition,
-- AT [level] EXPECT DIRECT TO [position]
-- Urg(L)/Alr(L)/Resp(R)
uM90LevelPosition [90] LevelPosition,
-- HOLD AT [position] MAINTAIN [level] INBOUND TRACK [degrees][direction] TURNS [legtype]
-- Urg(N)/Alr(M)/Resp(W/U)
uM91HoldClearance [91] HoldClearance,
-- HOLD AT [position] AS PUBLISHED MAINTAIN [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM92PositionLevel [92] PositionLevel,
-- EXPECT FURTHER CLEARANCE AT [time]
-- Urg(L)/Alr(L)/Resp(R)
uM93Time [93] Time,
-- TURN [direction] HEADING [degrees]
-- Urg(N)/Alr(M)/Resp(W/U)
uM94DirectionDegrees [94] DirectionDegrees,
-- TURN [direction] GROUND TRACK [degrees]
-- Urg(N)/Alr(M)/Resp(W/U)
uM95DirectionDegrees [95] DirectionDegrees,
-- CONTINUE PRESENT HEADING
-- Urg(N)/Alr(M)/Resp(W/U)
uM96NULL [96] NULL,
-- AT [position] FLY HEADING [degrees]
-- Urg(N)/Alr(M)/Resp(W/U)
uM97PositionDegrees [97] PositionDegrees,
-- IMMEDIATELY TURN [direction] HEADING [degrees]
-- Urg(D)/Alr(H)/Resp(W/U)
uM98DirectionDegrees [98] DirectionDegrees,
-- EXPECT [procedureName]
-- Urg(L)/Alr(L)/Resp(R)
uM99ProcedureName [99] ProcedureName,
-- AT [time] EXPECT [speed]
-- Urg(L)/Alr(L)/Resp(R)
uM100TimeSpeed [100] TimeSpeed,
-- AT [position] EXPECT [speed]
-- Urg(L)/Alr(L)/Resp(R)
uM101PositionSpeed [101] PositionSpeed,
-- AT [level] EXPECT [speed]
-- Urg(L)/Alr(L)/Resp(R)
uM102LevelSpeed [102] LevelSpeed,
-- AT [time] EXPECT [speed] TO [speed]
-- Urg(L)/Alr(L)/Resp(R)
uM103TimeSpeedSpeed [103] TimeSpeedSpeed,
-- AT [position] EXPECT [speed] TO [speed]
-- Urg(L)/Alr(L)/Resp(R)
uM104PositionSpeedSpeed [104] PositionSpeedSpeed,
-- AT [level] EXPECT [speed] TO [speed]
-- Urg(L)/Alr(L)/Resp(R)
uM105LevelSpeedSpeed [105] LevelSpeedSpeed,
-- MAINTAIN [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM106Speed [106] Speed,
-- MAINTAIN PRESENT SPEED
-- Urg(N)/Alr(M)/Resp(W/U)
uM107NULL [107] NULL,
-- MAINTAIN [speed] OR GREATER
-- Urg(N)/Alr(M)/Resp(W/U)
uM108Speed [108] Speed,
-- MAINTAIN [speed] OR LESS
-- Urg(N)/Alr(M)/Resp(W/U)
uM109Speed [109] Speed,
-- MAINTAIN [speed] TO [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM110SpeedSpeed [110] SpeedSpeed,
-- INCREASE SPEED TO [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM111Speed [111] Speed,
-- INCREASE SPEED TO [speed] OR GREATER
-- Urg(N)/Alr(M)/Resp(W/U)
uM112Speed [112] Speed,
-- REDUCE SPEED TO [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM113Speed [113] Speed,
-- REDUCE SPEED TO [speed] OR LESS
-- Urg(N)/Alr(M)/Resp(W/U)
uM114Speed [114] Speed,
-- DO NOT EXCEED [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM115Speed [115] Speed,
-- RESUME NORMAL SPEED
-- Urg(N)/Alr(M)/Resp(W/U)
uM116NULL [116] NULL,
-- CONTACT [unitname] [frequency]
-- Urg(N)/Alr(M)/Resp(W/U)
uM117UnitNameFrequency [117] UnitNameFrequency,
-- AT [position] CONTACT [unitname] [frequency]
-- Urg(N)/Alr(M)/Resp(W/U)
uM118PositionUnitNameFrequency [118] PositionUnitNameFrequency,
-- AT [time] CONTACT [unitname] [frequency]
-- Urg(N)/Alr(M)/Resp(W/U)
uM119TimeUnitNameFrequency [119] TimeUnitNameFrequency,
-- MONITOR [unitname] [frequency]
-- Urg(N)/Alr(M)/Resp(W/U)
uM120UnitNameFrequency [120] UnitNameFrequency,
-- AT [position] MONITOR [unitname] [frequency]
-- Urg(N)/Alr(M)/Resp(W/U)
uM121PositionUnitNameFrequency [121] PositionUnitNameFrequency,
-- AT [time] MONITOR [unitname] [frequency]
-- Urg(N)/Alr(M)/Resp(W/U)
uM122TimeUnitNameFrequency [122] TimeUnitNameFrequency,
-- SQUAWK [code]
-- Urg(N)/Alr(M)/Resp(W/U)
uM123Code [123] Code,
-- STOP SQUAWK
-- Urg(N)/Alr(M)/Resp(W/U)
uM124NULL [124] NULL,
-- SQUAWK MODE CHARLIE
-- Urg(N)/Alr(M)/Resp(W/U)
uM125NULL [125] NULL,
-- STOP SQUAWK MODE CHARLIE
-- Urg(N)/Alr(M)/Resp(W/U)
uM126NULL [126] NULL,
-- REPORT BACK ON ROUTE
-- Urg(N)/Alr(L)/Resp(W/U)
uM127NULL [127] NULL,
-- REPORT LEAVING [level]
-- Urg(N)/Alr(L)/Resp(W/U)
uM128Level [128] Level,
-- REPORT MAINTAINING [level]
-- Urg(N)/Alr(L)/Resp(W/U)
uM129Level [129] Level,
-- REPORT PASSING [position]
-- Urg(N)/Alr(L)/Resp(W/U)
uM130Position [130] Position,
-- REPORT REMAINING FUEL AND PERSONS ON BOARD
-- Urg(U)/Alr(M)/Resp(Y)
uM131NULL [131] NULL,
-- REPORT POSITION
-- Urg(N)/Alr(M)/Resp(Y)
uM132NULL [132] NULL,
-- REPORT PRESENT LEVEL
-- Urg(N)/Alr(M)/Resp(Y)
uM133NULL [133] NULL,
-- REPORT [speedtype] [speedtype] [speedtype]SPEED
-- Urg(N)/Alr(M)/Resp(Y)
uM134SpeedTypeSpeedTypeSpeedType [134] SpeedTypeSpeedTypeSpeedType,
-- CONFIRM ASSIGNED LEVEL
-- Urg(N)/Alr(L)/Resp(Y)
uM135NULL [135] NULL,
-- CONFIRM ASSIGNED SPEED
-- Urg(N)/Alr(L)/Resp(Y)
uM136NULL [136] NULL,
-- CONFIRM ASSIGNED ROUTE
-- Urg(N)/Alr(L)/Resp(Y)
uM137NULL [137] NULL,
-- CONFIRM TIME OVER REPORTED WAYPOINT
-- Urg(N)/Alr(L)/Resp(Y)
uM138NULL [138] NULL,
-- CONFIRM REPORTED WAYPOINT
-- Urg(N)/Alr(L)/Resp(Y)
uM139NULL [139] NULL,
-- CONFIRM NEXT WAYPOINT
-- Urg(N)/Alr(L)/Resp(Y)
uM140NULL [140] NULL,
-- CONFIRM NEXT WAYPOINT ETA
-- Urg(N)/Alr(L)/Resp(Y)
uM141NULL [141] NULL,
-- CONFIRM ENSUING WAYPOINT
-- Urg(N)/Alr(L)/Resp(Y)
uM142NULL [142] NULL,
-- CONFIRM REQUEST
-- Urg(N)/Alr(L)/Resp(Y)
uM143NULL [143] NULL,
-- CONFIRM SQUAWK
-- Urg(N)/Alr(L)/Resp(Y)
uM144NULL [144] NULL,
-- REPORT HEADING
-- Urg(N)/Alr(M)/Resp(Y)
uM145NULL [145] NULL,
-- REPORT GROUND TRACK
-- Urg(N)/Alr(M)/Resp(Y)
uM146NULL [146] NULL,
-- REQUEST POSITION REPORT
-- Urg(N)/Alr(M)/Resp(Y )
uM147NULL [147] NULL,
-- WHEN CAN YOU ACCEPT [level]
-- Urg(N)/Alr(L)/Resp(Y)
uM148Level [148] Level,
-- CAN YOU ACCEPT [level] AT [position]
-- Urg(N)/Alr(L)/Resp(A/N)
uM149LevelPosition [149] LevelPosition,
-- CAN YOU ACCEPT [level] AT [time]
-- Urg(N)/Alr(L)/Resp(A/N)
uM150LevelTime [150] LevelTime,
-- WHEN CAN YOU ACCEPT [speed]
-- Urg(N)/Alr(L)/Resp(Y)
uM151Speed [151] Speed,
-- WHEN CAN YOU ACCEPT [specifiedDistance] [direction] OFFSET
-- Urg(N)/Alr(L)/Resp(Y)
uM152DistanceSpecifiedDirection [152] DistanceSpecifiedDirection,
-- ALTIMETER [altimeter]
-- Urg(N)/Alr(L)/Resp(R)
uM153Altimeter [153] Altimeter,
-- RADAR SERVICE TERMINATED
-- Urg(N)/Alr(L)/Resp(R)
uM154NULL [154] NULL,
-- RADAR CONTACT [position]
-- Urg(N)/Alr(M)/Resp(R)
uM155Position [155] Position,
-- RADAR CONTACT LOST
-- Urg(N)/Alr(M)/Resp(R)
uM156NULL [156] NULL,
-- CHECK STUCK MICROPHONE [frequency]
-- Urg(U)/Alr(M)/Resp(N)
uM157Frequency [157] Frequency,
-- ATIS [atiscode]
-- Urg(N)/Alr(L)/Resp(R)
uM158AtisCode [158] ATISCode,
-- ERROR [errorInformation]
-- Urg(U)/Alr(M)/Resp(N)
uM159ErrorInformation [159] ErrorInformation,
-- NEXT DATA AUTHORITY [facility]
-- Urg(L)/Alr(N)/Resp(N)
uM160Facility [160] Facility,
-- END SERVICE
-- Urg(L)/Alr(N)/Resp(N)
uM161NULL [161] NULL,
-- SERVICE UNAVAILABLE
-- Urg(L)/Alr(L)/Resp(N )
uM162NULL [162] NULL,
-- [facilitydesignation]
-- Urg(L)/Alr(N)/Resp(N)
uM163FacilityDesignation [163] FacilityDesignation,
-- WHEN READY
-- Urg(L)/Alr(N)/Resp(N)
uM164NULL [164] NULL,
-- THEN
-- Urg(L)/Alr(N)/Resp(N)
uM165NULL [165] NULL,
-- DUE TO [traffictype]TRAFFIC
-- Urg(L)/Alr(N)/Resp(N)
uM166TrafficType [166] TrafficType,
-- DUE TO AIRSPACE RESTRICTION
-- Urg(L)/Alr(N)/Resp(N)
uM167NULL [167] NULL,
-- DISREGARD
-- Urg(U)/Alr(M)/Resp(R)
uM168NULL [168] NULL,
-- [freetext]
-- Urg(N)/Alr(L)/Resp(R)
uM169FreeText [169] FreeText,
-- [freetext]
-- Urg(D)/Alr(H)/Resp(R)
uM170FreeText [170] FreeText,
-- CLIMB AT [verticalRate] MINIMUM
-- Urg(N)/Alr(M)/Resp(W/U)
uM171VerticalRate [171] VerticalRate,
-- CLIMB AT [verticalRate] MAXIMUM
-- Urg(N)/Alr(M)/Resp(W/U)
uM172VerticalRate [172] VerticalRate,
-- DESCEND AT [verticalRate] MINIMUM
-- Urg(N)/Alr(M)/Resp(W/U)
uM173VerticalRate [173] VerticalRate,
-- DESCEND AT [verticalRate] MAXIMUM
-- Urg(N)/Alr(M)/Resp(W/U)
uM174VerticalRate [174] VerticalRate,
-- REPORT REACHING [level]
-- Urg(N)/Alr(L)/Resp(W/U)
uM175Level [175] Level,
-- MAINTAIN OWN SEPARATION AND VMC
-- Urg(N)/Alr(M)/Resp(W/U)
uM176NULL [176] NULL,
-- AT PILOTS DISCRETION
-- Urg(L)/Alr(L)/Resp(N)
uM177NULL [177] NULL,
-- Reserved
-- Urg(L)/Alr(L)/Resp(Y)
uM178NULL [178] NULL,
-- SQUAWK IDENT
-- Urg(N)/Alr(M)/Resp(W/U)
uM179NULL [179] NULL,
-- REPORT REACHING BLOCK [level] TO [level]
-- Urg(N)/Alr(L)/Resp(W/U)
uM180LevelLevel [180] LevelLevel,
-- REPORT DISTANCE [tofrom] [position]
-- Urg(N)/Alr(M)/Resp(Y)
uM181ToFromPosition [181] ToFromPosition,
-- CONFIRM ATIS CODE
-- Urg(N)/Alr(L)/Resp(Y)
uM182NULL [182] NULL,
-- [freetext]
-- Urg(N)/Alr(M)/Resp(N)
uM183FreeText [183] FreeText,
-- AT [time] REPORT DISTANCE [tofrom] [position]
-- Urg(N)/Alr(L)/Resp(Y)
uM184TimeToFromPosition [184] TimeToFromPosition,
-- AFTER PASSING [position] CLIMB TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM185PositionLevel [185] PositionLevel,
-- AFTER PASSING [position] DESCEND TO [level]
-- Urg(N)/Alr(M)/Resp(W/U)
uM186PositionLevel [186] PositionLevel,
-- [freetext]
-- Urg(L)/Alr(N)/Resp(N)
uM187FreeText [187] FreeText,
-- AFTER PASSING [position] MAINTAIN [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM188PositionSpeed [188] PositionSpeed,
-- ADJUST SPEED TO [speed]
-- Urg(N)/Alr(M)/Resp(W/U)
uM189Speed [189] Speed,
-- FLY HEADING [degrees]
-- Urg(N)/Alr(M)/Resp(W/U)
uM190Degrees [190] Degrees,
-- ALL ATS TERMINATED
-- Urg(N)/Alr(M)/Resp(R)
uM191NULL [191] NULL,
-- REACH [level] BY [time]
-- Urg(N)/Alr(M)/Resp(W/U)
uM192LevelTime [192] LevelTime,
-- IDENTIFICATION LOST
-- Urg(N)/Alr(M)/Resp(R)
uM193NULL [193] NULL,
-- [freetext]
-- Urg(N)/Alr(L)/Resp(Y)
uM194FreeText [194] FreeText,
-- [freetext]
-- Urg(L)/Alr(L)/Resp(R)
uM195FreeText [195] FreeText,
-- [freetext]
-- Urg(N)/Alr(M)/Resp
uM196FreeText [196] FreeText,
-- [freetext]
-- Urg(U)/Alr(M)/Resp(W/U)
uM197FreeText [197] FreeText,
-- [freetext]
-- Urg(D)/Alr(H)/Resp(W/U)
uM198FreeText [198] FreeText,
-- [freetext]
-- Urg(N)/Alr(L)/Resp(N)
uM199FreeText [199] FreeText,
-- REPORT REACHING
-- Urg(N)/Alr(L)/Resp(W/U)
uM200NULL [200] NULL,
-- Not Used
-- Urg(L)/Alr(L)/Resp(N)
uM201NULL [201] NULL,
-- Not Used
-- Urg(L)/Alr(L)/Resp(N)
uM202NULL [202] NULL,
-- [freetext]
-- Urg(N)/Alr(M)/Resp(R)
uM203FreeText [203] FreeText,
-- [freetext]
-- Urg(N)/Alr(M)/Resp(Y)
uM204FreeText [204] FreeText,
-- [freetext]
-- Urg(N)/Alr(M)/Resp(A/N)
uM205FreeText [205] FreeText,
-- [freetext]
-- Urg(L)/Alr(N)/Resp(Y)
uM206FreeText [206] FreeText,
-- [freetext]
-- Urg(L)/Alr(L)/Resp(Y)
uM207FreeText [207] FreeText,
-- [freetext]
-- Urg(L)/Alr(L)/Resp(N)
uM208FreeText [208] FreeText,
-- REACH [level] BY [position]
-- Urg(N)/Alr(M)/Resp(W/U)
uM209LevelPosition [209] LevelPosition,
-- IDENTIFIED [position]
-- Urg(N)/Alr(M)/Resp(R)
uM210Position [210] Position,
-- REQUEST FORWARDED
-- Urg(N)/Alr(L)/Resp(N)
uM211NULL [211] NULL,
-- [facilitydesignation] ATIS [atiscode] CURRENT
-- Urg(N)/Alr(L)/Resp(R)
uM212FacilityDesignationATISCode [212] FacilityDesignationATISCode,
-- [facilitydesignation] ALTIMETER [altimeter]
-- Urg(N)/Alr(L)/Resp(R)
uM213FacilityDesignationAltimeter [213] FacilityDesignationAltimeter,
-- RVR RUNWAY [runway] [rvr]
-- Urg(N)/Alr(M)/Resp(R)
uM214RunwayRVR [214] RunwayRVR,
-- TURN [direction][degrees]
-- Urg(N)/Alr(M)/Resp(W/U)
uM215DirectionDegrees [215] DirectionDegrees,
-- REQUEST FLIGHT PLAN
-- Urg(N)/Alr(M)/Resp(Y)
uM216NULL [216] NULL,
-- REPORT ARRIVAL
-- Urg(N)/Alr(M)/Resp(Y)
uM217NULL [217] NULL,
-- REQUEST ALREADY RECEIVED
-- Urg(L)/Alr(N)/Resp(N)
uM218NULL [218] NULL,
-- STOP CLIMB AT [level]
-- Urg(U)/Alr(M)/Resp(W/U)
uM219Level [219] Level,
-- STOP DESCENT AT [level]
-- Urg(U)/Alr(M)/Resp(W/U)
uM220Level [220] Level,
-- STOP TURN HEADING [degrees]
-- Urg(U)/Alr(M)/Resp(W/U)
uM221Degrees [221] Degrees,
-- NO SPEED RESTRICTION
-- Urg(L)/Alr(L)/Resp(R)
uM222NULL [222] NULL,
-- REDUCE TO MINIMUM APPROACH SPEED
-- Urg(N)/Alr(M)/Resp(W/U)
uM223NULL [223] NULL,
-- NO DELAY EXPECTED
-- Urg(N)/Alr(L)/Resp(R)
uM224NULL [224] NULL,
-- DELAY NOT DETERMINED
-- Urg(N)/Alr(L)/Resp(R)
uM225NULL [225] NULL,
-- EXPECTED APPROACH TIME [time]
-- Urg(N)/Alr(L)/Resp(R)
uM226Time [226] Time,
-- LOGICAL ACKNOWLEDGMENT
-- Urg(N)/Alr(M)/Resp(N)
uM227NULL [227] NULL,
-- REPORT ETA [position]
--Urg(L)/Alr(L)/Resp(Y)
uM228Position [228] Position,
-- REPORT ALTERNATE AERODROME
-- Urg(L)/Alr(L)/Resp(Y)
uM229NULL [229] NULL,
-- IMMEDIATELY
-- Urg(D)/Alr(H)/Resp(N)
uM230NULL [230] NULL,
-- STATE PREFERRED LEVEL
-- Urg(L)/Alr(L)/Resp(Y)
uM231NULL [231] NULL,
-- STATE TOP OF DESCENT
-- Urg(L)/Alr(L)/Resp(Y)
uM232NULL [232] NULL,
-- USE OF LOGICAL ACKNOWLEDGMENT PROHIBITED
-- Urg(N)/Alr(M)/Resp(N)
uM233NULL [233] NULL,
-- FLIGHT PLAN NOT HELD
-- Urg(L)/Alr(L)/Resp(N)
uM234NULL [234] NULL,
-- ROGER 7500
-- Urg(U)/Alr(H)/Resp(N)
uM235NULL [235] NULL,
-- LEAVE CONTROLLED AIRSPACE
-- Urg(N)/Alr(M)/Resp(W/U)
uM236NULL [236] NULL,
...,
-- REQUEST AGAIN WITH NEXT UNIT
-- Urg(N)/Alr(L)/Resp(N)
uM237NULL [237]NULL
}
------------------------------------------------------------------------------------
-- Downlink message element
-- ----------------------------------------------------------------------------------
ATCDownlinkMsgElementId ::= CHOICE
{
-- WILCO
-- Urg(N)/Alr(M)/Resp(N)
dM0NULL [0] NULL,
--UNABLE
-- Urg(N)/Alr(M)/Resp(N)
dM1NULL [1] NULL,
-- STANDBY
-- Urg(N)/Alr(M)/Resp(N)
dM2NULL [2] NULL,
-- ROGER
-- Urg(N)/Alr(M)/Resp(N)
dM3NULL [3] NULL,
-- AFFIRM
-- Urg(N)/Alr(M)/Resp(N)
dM4NULL [4] NULL,
-- NEGATIVE
-- Urg(N)/Alr(M)/Resp(N)
dM5NULL [5] NULL,
-- REQUEST [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM6Level [6] Level,
-- REQUEST BLOCK [level] TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM7LevelLevel [7] LevelLevel,
-- REQUEST CRUISE CLIMB TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM8Level [8] Level,
-- REQUEST CLIMB TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM9Level [9] Level,
-- REQUEST DESCENT TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM10Level [10] Level,
-- AT [position] REQUEST CLIMB TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM11PositionLevel [11] PositionLevel,
-- AT [position] REQUEST DESCENT TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM12PositionLevel [12] PositionLevel,
-- AT [time] REQUEST CLIMB TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM13TimeLevel [13] TimeLevel,
-- AT [time] REQUEST DESCENT TO [level]
-- Urg(N)/Alr(L)/Resp(Y)
dM14TimeLevel [14] TimeLevel,
-- REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(L)/Resp(Y)
dM15DistanceSpecifiedDirection [15] DistanceSpecifiedDirection,
-- AT [position] REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(L)/Resp(Y)
dM16PositionDistanceSpecifiedDirection [16] PositionDistanceSpecifiedDirection,
-- AT [time] REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(L)/Resp(Y)
dM17TimeDistanceSpecifiedDirection [17] TimeDistanceSpecifiedDirection,
-- REQUEST [speed]
-- Urg(N)/Alr(L)/Resp(Y)
dM18Speed [18] Speed,
-- REQUEST [speed] TO [speed]
-- Urg(N)/Alr(L)/Resp(Y)
dM19SpeedSpeed [19] SpeedSpeed,
-- REQUEST VOICE CONTACT
-- Urg(N)/Alr(L)/Resp(Y)
dM20NULL [20] NULL,
-- REQUEST VOICE CONTACT [frequency]
-- Urg(N)/Alr(L)/Resp(Y)
dM21Frequency [21] Frequency,
-- REQUEST DIRECT TO [position]
-- Urg(N)/Alr(L)/Resp(Y)
dM22Position [22] Position,
-- REQUEST [procedureName]
-- Urg(N)/Alr(L)/Resp(Y)
dM23ProcedureName [23] ProcedureName,
-- REQUEST CLEARANCE [routeClearance]
-- Urg(N)/Alr(L)/Resp(Y)
dM24RouteClearance [24] RouteClearanceIndex,
-- REQUEST [clearanceType] CLEARANCE
-- Urg(N)/Alr(L)/Resp(Y)
dM25ClearanceType [25] ClearanceType,
-- REQUEST WEATHER DEVIATION TO [position] VIA [routeClearance]
-- Urg(N)/Alr(M)/Resp(Y)
dM26PositionRouteClearance [26] PositionRouteClearanceIndex,
-- REQUEST WEATHER DEVIATION UP TO [specifiedDistance] [direction] OF ROUTE
-- Urg(N)/Alr(M)/Resp(Y)
dM27DistanceSpecifiedDirection [27] DistanceSpecifiedDirection,
-- LEAVING [level]
-- Urg(N)/Alr(L)/Resp(N)
dM28Level [28] Level,
-- CLIMBING TO [level]
-- Urg(N)/Alr(L)/Resp(N)
dM29Level [29]Level,
-- DESCENDING TO [level]
-- Urg(N)/Alr(L)/Resp(N)
dM30Level [30] Level,
-- PASSING [position]
-- Urg(N)/Alr(L)/Resp(N)
dM31Position [31] Position,
-- PRESENT LEVEL [level]
-- Urg(N)/Alr(L)/Resp(N)
dM32Level [32] Level,
-- PRESENT POSITION [position]
-- Urg(N)/Alr(L)/Resp(N)
dM33Position [33] Position,
-- PRESENT SPEED [speed]
-- Urg(N)/Alr(L)/Resp(N)
dM34Speed [34] Speed,
-- PRESENT HEADING [degrees]
-- Urg(N)/Alr(L)/Resp(N)
dM35Degrees [35] Degrees,
-- PRESENT GROUND TRACK [degrees]
-- Urg(N)/Alr(L)/Resp(N)
dM36Degrees [36] Degrees,
-- MAINTAINING [level]
-- Urg(N)/Alr(L)/Resp(N)
dM37Level [37] Level,
-- ASSIGNED LEVEL [level]
-- Urg(N)/Alr(M)/Resp(N)
dM38Level [38] Level,
-- ASSIGNED SPEED [speed]
-- Urg(N)/Alr(M)/Resp(N)
dM39Speed [39] Speed,
-- ASSIGNED ROUTE [routeClearance]
-- Urg(N)/Alr(M)/Resp(N)
dM40RouteClearance [40] RouteClearanceIndex,
-- BACK ON ROUTE
-- Urg(N)/Alr(M)/Resp(N)
dM41NULL [41] NULL,
-- NEXT WAYPOINT [position]
-- Urg(N)/Alr(L)/Resp(N)
dM42Position [42] Position,
-- NEXT WAYPOINT ETA [time]
-- Urg(N)/Alr(L)/Resp(N)
dM43Time [43] Time,
-- ENSUING WAYPOINT [position]
-- Urg(N)/Alr(L)/Resp(N)
dM44Position [44] Position,
-- REPORTED WAYPOINT [position]
-- Urg(N)/Alr(L)/Resp(N)
dM45Position [45] Position,
-- REPORTED WAYPOINT [time]
-- Urg(N)/Alr(L)/Resp(N)
dM46Time [46] Time,
-- SQUAWKING [code]
-- Urg(N)/Alr(L)/Resp(N)
dM47Code [47] Code,
-- POSITION REPORT [positionreport]
-- Urg(N)/Alr(M)/Resp(N)
dM48PositionReport [48] PositionReport,
-- WHEN CAN WE EXPECT [speed]
-- Urg(L)/Alr(L)/Resp(Y)
dM49Speed [49] Speed,
-- WHEN CAN WE EXPECT [speed] TO [speed]
-- Urg(L)/Alr(L)/Resp(Y)
dM50SpeedSpeed [50] SpeedSpeed,
-- WHEN CAN WE EXPECT BACK ON ROUTE
-- Urg(L)/Alr(L)/Resp(Y)
dM51NULL [51] NULL,
-- WHEN CAN WE EXPECT LOWER LEVEL
-- Urg(L)/Alr(L)/Resp(Y)
dM52NULL [52] NULL,
-- WHEN CAN WE EXPECT HIGHER LEVEL Urg(L)/Alr(L)/Resp(Y)
dM53NULL [53] NULL,
-- WHEN CAN WE EXPECT CRUISE CLIMB TO [level]
-- Urg(L)/Alr(L)/Resp(Y)
dM54Level [54] Level,
-- PAN PAN PAN
-- Urg(U)/Alr(H)/Resp(Y)
dM55NULL [55] NULL,
-- MAYDAY MAYDAY MAYDAY
-- Urg(D)/Alr(H)/Resp(Y)
dM56NULL [56] NULL,
-- [remainingFuel] OF FUEL REMAINING AND [personsonboard] PERSONS ON BOARD
-- Urg(U)/Alr(H)/Resp(Y)
dM57RemainingFuelPersonsOnBoard [57] RemainingFuelPersonsOnBoard,
-- CANCEL EMERGENCY
-- Urg(U)/Alr(M)/Resp(Y)
dM58NULL [58] NULL,
-- DIVERTING TO [position] VIA [routeClearance]
-- Urg(U)/Alr(H)/Resp(Y)
dM59PositionRouteClearance [59] PositionRouteClearanceIndex,
-- OFFSETTING [specifiedDistance] [direction] OF ROUTE
-- Urg(U)/Alr(H)/Resp(Y)
dM60DistanceSpecifiedDirection [60] DistanceSpecifiedDirection,
-- DESCENDING TO [level]
-- Urg(U)/Alr(H)/Resp(Y)
dM61Level [61] Level,
-- ERROR [errorInformation]
-- Urg(U)/Alr(L)/Resp(N)
dM62ErrorInformation [62] ErrorInformation,
-- NOT CURRENT DATA AUTHORITY
-- Urg(L)/Alr(L)/Resp(N)
dM63NULL [63] NULL,
-- [facilitydesignation]
-- Urg(L)/Alr(L)/Resp(N)
dM64FacilityDesignation [64] FacilityDesignation,
-- DUE TO WEATHER
-- Urg(L)/Alr(L)/Resp(N)
dM65NULL [65] NULL,
-- DUE TO AIRCRAFT PERFORMANCE
-- Urg(L)/Alr(L)/Resp(N)
dM66NULL [66] NULL,
-- [freetext]
-- Urg(N)/Alr(L)/Resp(N)
dM67FreeText [67] FreeText,
-- [freetext]
-- Urg(D)/Alr(H)/Resp(Y)
dM68FreeText [68] FreeText,
-- REQUEST VMC DESCENT
-- Urg(N)/Alr(L)/Resp(Y)
dM69NULL [69] NULL,
-- REQUEST HEADING [degrees]
-- Urg(N)/Alr(L)/Resp(Y)
dM70Degrees [70] Degrees,
-- REQUEST GROUND TRACK [degrees]
-- Urg(N)/Alr(L)/Resp(Y)
dM71Degrees [71] Degrees,
-- REACHING [level]
-- Urg(N)/Alr(L)/Resp(N)
dM72Level [72] Level,
-- [versionnumber]
-- Urg(L)/Alr(L)/Resp(N)
dM73Versionnumber [73] VersionNumber,
-- REQUEST TO MAINTAIN OWN SEPARATION AND VMC
-- Urg(L)/Alr(L)/Resp(Y)
dM74NULL [74] NULL,
-- AT PILOTS DISCRETION
-- Urg(L)/Alr(L)/Resp(N)
dM75NULL [75] NULL,
-- REACHING BLOCK [level] TO [level]
-- Urg(N)/Alr(L)/Resp(N)
dM76LevelLevel [76] LevelLevel,
-- ASSIGNED BLOCK [level] TO [level]
-- Urg(N)/Alr(M)/Resp(N)
dM77LevelLevel [77] LevelLevel,
-- AT [time] [distance] [tofrom] [position]
-- Urg(N)/Alr(L)/Resp(N)
dM78TimeDistanceToFromPosition [78] TimeDistanceToFromPosition,
-- ATIS [atiscode]
-- Urg(N)/Alr(L)/Resp(N)
dM79AtisCode [79] ATISCode,
-- DEVIATING UP TO [specifiedDistance] [direction] OF ROUTE
-- Urg(U)/Alr(H)/Resp(Y)
dM80DistanceSpecifiedDirection [80] DistanceSpecifiedDirection,
-- WE CAN ACCEPT [level] AT [time]
-- Urg(L)/Alr(L)/Resp(N)
dM81LevelTime [81] LevelTime,
-- WE CANNOT ACCEPT [level]
-- Urg(L)/Alr(L)/Resp(N)
dM82Level [82] Level,
-- WE CAN ACCEPT [speed] AT [time]
-- Urg(L)/Alr(L)/Resp(N)
dM83SpeedTime [83] SpeedTime,
-- WE CANNOT ACCEPT [speed]
-- Urg(L)/Alr(L)/Resp(N)
dM84Speed [84] Speed,
-- WE CAN ACCEPT [specifiedDistance] [direction] AT [time]
-- Urg(L)/Alr(L)/Resp(N)
dM85DistanceSpecifiedDirectionTime [85] DistanceSpecifiedDirectionTime,
-- WE CANNOT ACCEPT [specifiedDistance] [direction]
-- Urg(L)/Alr(L)/Resp(N)
dM86DistanceSpecifiedDirection [86] DistanceSpecifiedDirection,
-- WHEN CAN WE EXPECT CLIMB TO [level]
-- Urg(L)/Alr(L)/Resp(Y)
dM87Level [87] Level,
-- WHEN CAN WE EXPECT DESCENT TO [level]
--Urg(L)/Alr(L)/Resp(Y)
dM88Level [88] Level,
-- MONITORING [unitname] [frequency]
-- Urg(U)/Alr(M)/Resp(N)
dM89UnitnameFrequency [89] UnitNameFrequency,
-- [freetext]
-- Urg(N)/Alr(M)/Resp(N)
dM90FreeText [90] FreeText,
-- [freetext]
-- Urg(N)/Alr(L)/Resp(Y)
dM91FreeText [91] FreeText,
-- [freetext]
-- Urg(L)/Alr(L)/Resp(Y)
dM92FreeText [92] FreeText,
-- [freetext]
-- Urg(U)/Alr(H)/Resp(N)
dM93FreeText [93] FreeText,
-- [freetext]
-- Urg(D)/Alr(H)/Resp(N)
dM94FreeText [94] FreeText,
-- [freetext]
-- Urg(U)/Alr(M)/Resp(N)
dM95FreeText [95] FreeText,
-- [freetext]
-- Urg(U)/Alr(L)/Resp(N)
dM96FreeText [96] FreeText,
-- [freetext]
-- Urg(L)/Alr(L)/Resp(N)
dM97FreeText [97] FreeText,
-- [freetext]
-- Urg(N)/Alr(N)/Resp(N)
dM98FreeText [98] FreeText,
-- CURRENT DATA AUTHORITY
-- Urg(L)/Alr(L)/Resp(N)
dM99NULL [99] NULL,
-- LOGICAL ACKNOWLEDGMENT
-- Urg(N)/Alr(M)/Resp(N)
dM100NULL [100] NULL,
-- REQUEST END OF SERVICE
-- Urg(L)/Alr(L)/Resp(Y)
dM101NULL [101] NULL,
-- LANDING REPORT
-- Urg(N)/Alr(N)/Resp(N)
dM102NULL [102] NULL,
-- CANCELLING IFR
-- Urg(N)/Alr(L)/Resp(Y)
dM103NULL [103] NULL,
-- ETA[position][time]
-- Urg(L)/Alr(L)/Resp(N)
dM104PositionTime [104] PositionTime,
-- ALTERNATE AERODROME[airport]
-- Urg(L)/Alr(L)/Resp(N)
dM105Airport [105] Airport,
-- PREFERRED LEVEL[level]
-- Urg(L)/Alr(L)/Resp(N)
dM106Level [106] Level,
-- NOT AUTHORIZED NEXT DATA AUTHORITY
-- Urg(L)/Alr(L)/Resp(N)
dM107NULL [107] NULL,
-- DE-ICING COMPLETE
-- Urg(L)/Alr(L)/Resp(N)
dM108NULL [108] NULL,
-- TOP OF DESCENT [time]
-- Urg(L)/Alr(L)/Resp(N)
dM109Time [109] Time,
-- TOP OF DESCENT [position]
-- Urg(L)/Alr(L)/Resp(N)
dM110Position [110] Position,
-- TOP OF DESCENT [time] [position]
-- Urg(L)/Alr(L)/Resp(N)
dM111TimePosition [111] TimePosition,
-- SQUAWKING 7500
-- Urg(U)/Alr(H)/Resp(N)
dM112NULL [112] NULL,
-- [speedType] [speedType] [speedType] SPEED [speed]
-- Urg(N)/Alr(L)/Resp(N)
dM113SpeedTypeSpeedTypeSpeedTypeSpeed [113] SpeedTypeSpeedTypeSpeedTypeSpeed,
...
}
AircraftAddress ::= BIT STRING (SIZE(24))
AircraftFlightIdentification ::= IA5String (SIZE (2..8))
Airport ::= IA5String (SIZE (4))
Altimeter ::= CHOICE
{
altimeterEnglish [0] AltimeterEnglish,
altimeterMetric [1] AltimeterMetric
}
AltimeterEnglish ::= INTEGER (2200..3200)
-- unit = Inches Mercury, Range (22.00 .. 32.00), resolution = 0.01
AltimeterMetric ::= INTEGER (7500..12500)
-- unit = Hectopascal, Range (750.0..1250.0), resolution = 0.1
ATISCode ::= IA5String (SIZE (1))
ATSRouteDesignator ::= IA5String (SIZE (2..7))
ATWAlongTrackWaypoint ::= SEQUENCE
{
position [0] Position,
aTWDistance [1] ATWDistance,
speed [2] Speed OPTIONAL,
aTWLevels [3] ATWLevelSequence OPTIONAL
}
ATWLevel ::= SEQUENCE
{
atw ATWLevelTolerance,
level Level
}
ATWLevelSequence ::= SEQUENCE SIZE (1..2) OF ATWLevel
ATWLevelTolerance ::= ENUMERATED
{
at (0),
atorabove (1),
atorbelow (2)
}
ATWDistance ::= SEQUENCE
{
atwDistanceTolerance ATWDistanceTolerance,
distance Distance
}
ATWDistanceTolerance ::= ENUMERATED
{
plus (0),
minus (1)
}
ClearanceType ::= ENUMERATED
{
noneSpecified (0),
approach (1),
departure (2),
further (3),
start-up (4),
pushback (5),
taxi (6),
take-off (7),
landing (8),
oceanic (9),
en-route (10),
downstream (11),
...
}
Code ::= SEQUENCE SIZE (4) OF CodeOctalDigit
CodeOctalDigit ::= INTEGER (0..7)
ControlledTime ::= SEQUENCE
{
time Time,
timeTolerance TimeTolerance
}
Date ::= SEQUENCE
{
year Year,
month Month,
day Day
}
DateTimeGroup ::= SEQUENCE
{
date Date,
timehhmmss Timehhmmss
}
Day ::= INTEGER (1..31)
--unit = Day, Range (1..31), resolution = 1
DegreeIncrement ::= INTEGER (1..20)
--unit = Degree, Range (1..20), resolution = 1
Degrees ::= CHOICE
{
degreesMagnetic [0] DegreesMagnetic,
degreesTrue [1] DegreesTrue
}
DegreesMagnetic ::= INTEGER (1..360)
--unit = degree, Range (1..360), resolution = 1
DegreesTrue ::= INTEGER (1..360)
--unit = degree, Range (1..360), resolution = 1
DepartureClearance ::= SEQUENCE
{
aircraftFlightIdentification [0] AircraftFlightIdentification,
clearanceLimit [1] Position,
flightInformation [2] FlightInformation OPTIONAL,
furtherInstructions [3] FurtherInstructions OPTIONAL
}
DepartureMinimumInterval ::= INTEGER (1..150)
--unit = Minute, Range (0.1..15.0), resolution = 0.1
Direction ::= ENUMERATED
{
left (0),
right (1),
eitherSide (2),
north (3),
south (4),
east (5),
west (6),
northEast (7),
northWest (8),
southEast (9),
southWest (10)
}
DirectionDegrees ::= SEQUENCE
{
direction Direction,
degrees Degrees
}
Distance ::= CHOICE
{
distanceNm [0] DistanceNm,
distanceKm [1] DistanceKm
}
DistanceKm ::= INTEGER (0..8000)
-- unit = Kilometer, Range (0..2000), resolution = 0.25
DistanceNm ::= INTEGER (0..9999)
-- unit = Nautical Mile, Range (0..999.9), resolution = 0.1
DistanceSpecified ::= CHOICE
{
distanceSpecifiedNm [0] DistanceSpecifiedNm,
distanceSpecifiedKm [1] DistanceSpecifiedKm
}
DistanceSpecifiedDirection ::= SEQUENCE
{
distanceSpecified DistanceSpecified,
direction Direction
}
DistanceSpecifiedDirectionTime ::= SEQUENCE
{
distanceSpecifiedDirection DistanceSpecifiedDirection,
time Time
}
DistanceSpecifiedKm ::= INTEGER (1..500)
-- unit = Kilometer, Range (1..500), resolution = 1
DistanceSpecifiedNm ::= INTEGER (1..250)
-- unit = Nautical Mile, Range (1..250), resolution = 1
ErrorInformation ::= ENUMERATED
{
unrecognizedMsgReferenceNumber (0),
logicalAcknowledgmentNotAccepted (1),
insufficientResources (2),
invalidMessageElementCombination (3),
invalidMessageElement (4),
...
}
Facility ::= CHOICE{
noFacility [0] NULL,
facilityDesignation [1] FacilityDesignation
}
FacilityDesignation ::= IA5String (SIZE (4..8))
FacilityFunction ::= ENUMERATED
{
center (0),
approach (1),
tower (2),
final (3),
groundControl (4),
clearanceDelivery (5),
departure (6),
control (7),
radio (8),
...
}
FacilityDesignationAltimeter ::= SEQUENCE
{
facilityDesignation FacilityDesignation,
altimeter Altimeter
}
FacilityDesignationATISCode ::= SEQUENCE
{
facilityDesignation FacilityDesignation,
aTISCode ATISCode
}
FacilityName ::= IA5String (SIZE (3..18))
Fix ::= IA5String (SIZE (1..5))
FixName ::= SEQUENCE
{
name [0] Fix,
latlon [1] LatitudeLongitude OPTIONAL
}
FlightInformation ::= CHOICE
{
routeOfFlight [0] RouteInformation,
levelsOfFlight [1] LevelsOfFlight,
routeAndLevels [2] RouteAndLevels
}
FreeText ::= IA5String (SIZE (1..256))
Frequency ::= CHOICE
{
frequencyhf [0] Frequencyhf,
frequencyvhf [1] Frequencyvhf,
frequencyuhf [2] Frequencyuhf,
frequencysatchannel [3] Frequencysatchannel
}
Frequencyhf ::= INTEGER (2850..28000)
-- unit = Kilohertz, Range (2850..28000), resolution = 1
Frequencysatchannel ::= NumericString (SIZE (12))
-- Frequencysatchannel corresponds to a 12 digit telephone number
Frequencyuhf ::= INTEGER (9000..15999)
-- unit = Megahertz, Range (225.000..399.975), resolution = 0.025
Frequencyvhf ::= INTEGER (23600..27398)
-- unit = Megahertz, Range (118.000..136.990), resolution = 0.005
FurtherInstructions ::= SEQUENCE
{
code [0] Code OPTIONAL,
frequencyDeparture [1] UnitNameFrequency OPTIONAL,
clearanceExpiryTime [2] Time OPTIONAL,
airportDeparture [3] Airport OPTIONAL,
airportDestination [4] Airport OPTIONAL,
timeDeparture [5] TimeDeparture OPTIONAL,
runwayDeparture [6] Runway OPTIONAL,
revisionNumber [7] RevisionNumber OPTIONAL,
aTISCode [8] ATISCode OPTIONAL
}
Holdatwaypoint ::= SEQUENCE
{
position [0] Position,
holdatwaypointspeedlow [1] Speed OPTIONAL,
aTWlevel [2] ATWLevel OPTIONAL,
holdatwaypointspeedhigh [3] Speed OPTIONAL,
direction [4] Direction OPTIONAL,
degrees [5] Degrees OPTIONAL,
eFCtime [6] Time OPTIONAL,
legtype [7] LegType OPTIONAL
}
HoldClearance ::= SEQUENCE
{
position [0] Position,
level [1] Level,
degrees [2] Degrees,
direction [3] Direction,
legType [4] LegType OPTIONAL
}
Humidity ::= INTEGER (0..100)
-- unit = Percent humidity, Range (0..100), resolution = 1
InterceptCourseFrom ::= SEQUENCE
{
fromSelection InterceptCourseFromSelection,
degrees Degrees
}
InterceptCourseFromSelection ::= CHOICE
{
publishedIdentifier [0] PublishedIdentifier,
latitudeLongitude [1] LatitudeLongitude,
placeBearingPlaceBearing [2] PlaceBearingPlaceBearing,
placeBearingDistance [3] PlaceBearingDistance
}
Icing ::= ENUMERATED
{
reserved (0),
light (1),
moderate (2),
severe (3)
}
Latitude ::= SEQUENCE
{
latitudeType LatitudeType,
latitudeDirection LatitudeDirection
}
LatitudeDegrees ::= INTEGER (0..90000)
-- unit = Degree, Range (0..90), resolution = 0.001
LatitudeDegreesMinutes ::= SEQUENCE
{
latitudeWholeDegrees LatitudeWholeDegrees,
minutesLatLon MinutesLatLon
}
LatitudeDegreesMinutesSeconds ::= SEQUENCE
{
latitudeWholeDegrees LatitudeWholeDegrees,
latlonWholeMinutes LatLonWholeMinutes,
secondsLatLon SecondsLatLon
}
LatitudeDirection ::= ENUMERATED
{
north (0),
south (1)
}
LatitudeWholeDegrees ::= INTEGER (0..89)
-- unit = Degree, Range (0..89), resolution = 1
LatitudeLongitude ::= SEQUENCE
{
latitude [0] Latitude OPTIONAL,
longitude [1] Longitude OPTIONAL
}
LatitudeReportingPoints ::= SEQUENCE
{
latitudeDirection LatitudeDirection,
latitudeDegrees LatitudeDegrees
}
LatitudeType ::= CHOICE
{
latitudeDegrees [0] LatitudeDegrees,
latitudeDegreesMinutes [1] LatitudeDegreesMinutes,
latitudeDMS [2] LatitudeDegreesMinutesSeconds
}
LatLonWholeMinutes ::= INTEGER (0..59)
-- unit = Minute, Range (0..59), resolution = 1
LatLonReportingPoints ::= CHOICE
{
latitudeReportingPoints [0] LatitudeReportingPoints,
longitudeReportingPoints [1] LongitudeReportingPoints
}
LegDistance ::= CHOICE
{
legDistanceEnglish [0] LegDistanceEnglish,
legDistanceMetric [1] LegDistanceMetric
}
LegDistanceEnglish ::= INTEGER (0..50)
-- unit = Nautical Mile, Range (0..50), resolution = 1
LegDistanceMetric ::= INTEGER (1..128)
-- unit = Kilometer, Range (1..128), resolution = 1
LegTime ::= INTEGER (0..10)
--unit = Minute, Range (0..10), resolution = 1
LegType ::= CHOICE
{
legDistance [0] LegDistance,
legTime [1] LegTime
}
Level ::= CHOICE
{
singleLevel [0] LevelType,
blockLevel [1] SEQUENCE SIZE (2) OF LevelType
}
LevelFeet ::= INTEGER (-60..7000)
--unit = Feet, Range (-600..70000), resolution = 10
LevelFlightLevel ::= INTEGER (30..700)
--unit = Level (100 Feet), Range (030..700), resolution = 1
LevelFlightLevelMetric ::= INTEGER (100..2500)
--unit = Level (10 Meters), Range (100..2500), resolution = 1
LevelLevel ::= SEQUENCE SIZE (2) OF Level
LevelMeters ::= INTEGER (-30..25000)
--unit = Meter, Range (-30..25000), resolution = 1
LevelPosition ::= SEQUENCE
{
level Level,
position Position
}
LevelProcedureName ::= SEQUENCE
{
level Level,
procedureName ProcedureName
}
LevelsOfFlight ::= CHOICE
{
level [0] Level,
procedureName [1] ProcedureName,
levelProcedureName [2] LevelProcedureName
}
LevelSpeed ::= SEQUENCE
{
level Level,
speed SpeedSpeed
}
LevelSpeedSpeed ::= SEQUENCE
{
level Level,
speeds SpeedSpeed
}
LevelTime ::= SEQUENCE
{
level Level,
time Time
}
LevelType ::= CHOICE
{
levelFeet [0] LevelFeet,
levelMeters [1] LevelMeters,
levelFlightLevel [2] LevelFlightLevel,
levelFlightLevelMetric [3] LevelFlightLevelMetric
}
Longitude ::= SEQUENCE
{
longitudeType LongitudeType,
longitudeDirection LongitudeDirection
}
LongitudeDegrees ::= INTEGER (0..180000)
--unit = Degree, Range (0..180), resolution = 0.001
LongitudeDegreesMinutes ::= SEQUENCE
{
longitudeWholeDegrees LongitudeWholeDegrees,
minutesLatLon MinutesLatLon
}
LongitudeDegreesMinutesSeconds ::= SEQUENCE
{
longitudeWholeDegrees LongitudeWholeDegrees,
latLonWholeMinutes LatLonWholeMinutes,
secondsLatLon SecondsLatLon
}
LongitudeDirection ::= ENUMERATED
{
east (0),
west (1)
}
LongitudeWholeDegrees ::= INTEGER (0..179)
-- unit = Degree, Range (0..179), resolution = 1
LongitudeReportingPoints ::= SEQUENCE
{
longitudeDirection LongitudeDirection,
longitudeDegrees LongitudeDegrees
}
LongitudeType ::= CHOICE
{
longitudeDegrees [0] LongitudeDegrees,
longitudeDegreesMinutes [1] LongitudeDegreesMinutes,
longitudeDMS [2] LongitudeDegreesMinutesSeconds
}
MinutesLatLon ::= INTEGER (0..5999)
--unit = Minute, Range (0..59.99), resolution = 0.01
Month ::= INTEGER (1..12)
--unit = 1 Month, Range (1..12), resolution = 1
Navaid ::= SEQUENCE
{
name [0] NavaidName,
latlon [1] LatitudeLongitude OPTIONAL
}
NavaidName ::= IA5String (SIZE (1..4))
PersonsOnBoard ::= INTEGER (1..1024)
PlaceBearing ::= SEQUENCE
{
publishedIdentifier PublishedIdentifier,
degrees Degrees
}
PlaceBearingDistance ::= SEQUENCE
{
publishedIdentifier PublishedIdentifier,
degrees Degrees,
distance Distance
}
PlaceBearingPlaceBearing ::= SEQUENCE SIZE (2) OF PlaceBearing
Position ::= CHOICE
{
fixName [0] FixName,
navaid [1] Navaid,
airport [2] Airport,
latitudeLongitude [3] LatitudeLongitude,
placeBearingDistance [4] PlaceBearingDistance
}
PositionDegrees ::= SEQUENCE
{
position Position,
degrees Degrees
}
PositionDistanceSpecifiedDirection ::= SEQUENCE
{
position Position,
distanceSpecifiedDirection DistanceSpecifiedDirection
}
PositionLevel ::= SEQUENCE
{
position Position,
level Level
}
PositionLevelLevel ::= SEQUENCE
{
position Position,
levels LevelLevel
}
PositionLevelSpeed ::= SEQUENCE
{
positionlevel PositionLevel,
speed Speed
}
PositionPosition ::= SEQUENCE SIZE (2) OF Position
PositionProcedureName ::= SEQUENCE
{
position Position,
procedureName ProcedureName
}
PositionReport ::= SEQUENCE
{
positioncurrent [0] Position,
timeatpositioncurrent [1] Time,
level [2] Level,
fixnext [3] Position OPTIONAL,
timeetaatfixnext [4] Time OPTIONAL,
fixnextplusone [5] Position OPTIONAL,
timeetaatdestination [6] Time OPTIONAL,
remainingFuel [7] RemainingFuel OPTIONAL,
temperature [8] Temperature OPTIONAL,
winds [9] Winds OPTIONAL,
turbulence [10] Turbulence OPTIONAL,
icing [11] Icing OPTIONAL,
speed [12] Speed OPTIONAL,
speedground [13] SpeedGround OPTIONAL,
verticalChange [14] VerticalChange OPTIONAL,
trackAngle [15] Degrees OPTIONAL,
heading [16] Degrees OPTIONAL,
distance [17] Distance OPTIONAL,
humidity [18] Humidity OPTIONAL,
reportedWaypointPosition[19] Position OPTIONAL,
reportedWaypointTime [20] Time OPTIONAL,
reportedWaypointLevel [21] Level OPTIONAL
}
PositionRouteClearanceIndex ::= SEQUENCE
{
position Position,
routeClearanceIndex RouteClearanceIndex
}
PositionSpeed ::= SEQUENCE
{
position Position,
speed Speed
}
PositionSpeedSpeed ::= SEQUENCE
{
position Position,
speeds SpeedSpeed
}
PositionTime ::= SEQUENCE
{
position Position,
time Time
}
PositionTimeLevel ::= SEQUENCE
{
positionTime PositionTime,
level Level
}
PositionTimeTime ::= SEQUENCE
{
position Position,
times TimeTime
}
PositionUnitNameFrequency ::= SEQUENCE
{
position Position,
unitname UnitName,
frequency Frequency
}
Procedure ::= IA5String (SIZE (1..20))
ProcedureName ::= SEQUENCE
{
type [0] ProcedureType,
procedure [1] Procedure,
transition [2] ProcedureTransition OPTIONAL
}
ProcedureTransition ::= IA5String (SIZE (1..5))
ProcedureType ::= ENUMERATED
{
arrival (0),
approach (1),
departure (2)
}
PublishedIdentifier ::= CHOICE
{
fixName [0] FixName,
navaid [1] Navaid
}
RemainingFuel ::= Time
RemainingFuelPersonsOnBoard ::= SEQUENCE
{
remainingFuel RemainingFuel,
personsOnBoard PersonsOnBoard
}
ReportingPoints ::= SEQUENCE
{
latLonReportingPoints [0] LatLonReportingPoints,
degreeIncrement [1] DegreeIncrement OPTIONAL
}
RevisionNumber ::= INTEGER (1..16)
RouteAndLevels ::= SEQUENCE
{
routeOfFlight RouteInformation,
levelsOfFlight LevelsOfFlight
}
RouteClearance ::= SEQUENCE
{
airportDeparture [0] Airport OPTIONAL,
airportDestination [1] Airport OPTIONAL,
runwayDeparture [2] Runway OPTIONAL,
procedureDeparture [3] ProcedureName OPTIONAL,
runwayArrival [4] Runway OPTIONAL,
procedureApproach [5] ProcedureName OPTIONAL,
procedureArrival [6] ProcedureName OPTIONAL,
routeInformations [7] SEQUENCE SIZE (1..128) OF RouteInformation OPTIONAL,
routeInformationAdditional [8] RouteInformationAdditional OPTIONAL
}
RouteClearanceIndex ::= INTEGER (1..2)
-- RouteClearanceIndex identifies the position of the RouteClearance data
-- in the ASN.1 type for
-- ATC UplinkMessage, constrained Data, routeClearance Data
-- ATC DownlinkMessage, constrained Data, routeClearance Data
RouteInformation ::= CHOICE
{
publishedIdentifier [0] PublishedIdentifier,
latitudeLongitude [1] LatitudeLongitude,
placeBearingPlaceBearing [2] PlaceBearingPlaceBearing,
placeBearingDistance [3] PlaceBearingDistance,
aTSRouteDesignator [4] ATSRouteDesignator
}
RouteInformationAdditional ::= SEQUENCE
{
aTWAlongTrackWaypoints [0] SEQUENCE SIZE (1..8) OF ATWAlongTrackWaypoint OPTIONAL,
reportingpoints [1] ReportingPoints OPTIONAL,
interceptCourseFroms [2] SEQUENCE SIZE (1..4) OF InterceptCourseFrom OPTIONAL,
holdAtWaypoints [3] SEQUENCE SIZE (1..8) OF Holdatwaypoint OPTIONAL,
waypointSpeedLevels [4] SEQUENCE SIZE (1..32) OF WaypointSpeedLevel OPTIONAL,
rTARequiredTimeArrivals [5] SEQUENCE SIZE (1..32) OF RTARequiredTimeArrival OPTIONAL
}
RTARequiredTimeArrival ::= SEQUENCE
{
position [0] Position,
rTATime [1] RTATime,
rTATolerance [2] RTATolerance OPTIONAL
}
RTATime ::= SEQUENCE
{
time Time,
timeTolerance TimeTolerance
}
RTATolerance ::= INTEGER (1..150)
--unit= Minute, Range (0.1..15.0), resolution = 0.1
Runway ::= SEQUENCE
{
direction RunwayDirection,
configuration RunwayConfiguration
}
RunwayDirection ::= INTEGER (1..36)
RunwayConfiguration ::= ENUMERATED
{
left (0),
right (1),
center (2),
none (3)
}
RunwayRVR ::= SEQUENCE
{
runway Runway,
rVR RVR
}
RVR ::= CHOICE
{
rVRFeet [0] RVRFeet,
rVRMeters [1] RVRMeters
}
RVRFeet ::= INTEGER (0..6100)
-- unit = Feet, Range (0..6100), resolution = 1
RVRMeters ::= INTEGER (0..1500)
-- unit = Meters (0..1500), resolution = 1
SecondsLatLon ::= INTEGER (0..59)
--unit = Second, Range (0.. 59), resolution = 1
Speed ::= CHOICE
{
speedIndicated [0] SpeedIndicated,
speedIndicatedMetric [1] SpeedIndicatedMetric,
speedTrue [2] SpeedTrue,
speedTrueMetric [3] SpeedTrueMetric,
speedGround [4] SpeedGround,
speedGroundMetric [5] SpeedGroundMetric,
speedMach [6] SpeedMach
}
SpeedIndicated ::= INTEGER (0..400)
-- unit = Knots, Range (0..400), resolution = 1
SpeedIndicatedMetric ::= INTEGER (0..800)
-- unit = Kilometers/Hour, Range (0..800), resolution = 1
SpeedGround ::= INTEGER (-50..2000)
-- unit = Knots, Range (-50..2000), resolution = 1
SpeedGroundMetric ::= INTEGER (-100..4000)
-- unit = Kilometers/Hour, Range (-100..4000), resolution = 1
SpeedMach ::= INTEGER (500..4000)
-- unit = Mach Range (0.5 to 4.0), resolution = 0.001
SpeedSpeed ::= SEQUENCE SIZE (2) OF Speed
SpeedTime ::= SEQUENCE
{
speed Speed,
time Time
}
SpeedTrue ::= INTEGER (0..2000)
-- unit = Knots, Range (0..2000), resolution = 1
SpeedTrueMetric ::= INTEGER (0..4000)
-- unit = Kilometers/Hour, Range (0..4000), resolution = 1
SpeedType ::= ENUMERATED
{
noneSpecified (0),
indicated (1),
true (2),
ground (3),
mach (4),
approach (5),
cruise (6),
minimum (7),
maximum (8),
...
}
SpeedTypeSpeedTypeSpeedType ::= SEQUENCE SIZE (3) OF SpeedType
SpeedTypeSpeedTypeSpeedTypeSpeed ::= SEQUENCE
{
speedTypes SpeedTypeSpeedTypeSpeedType,
speed Speed
}
Temperature ::= INTEGER (-100..100)
-- unit = Degree Celsius, Range (-100..100), resolution = 1
Time ::= SEQUENCE
{
hours TimeHours,
minutes TimeMinutes
}
TimeLevel ::= SEQUENCE
{
time Time,
level Level
}
TimeDeparture ::= SEQUENCE
{
timeDepartureAllocated [0] Time OPTIONAL,
timeDepartureControlled [1] ControlledTime OPTIONAL,
timeDepartureClearanceExpected [2] Time OPTIONAL,
departureMinimumInterval [3] DepartureMinimumInterval OPTIONAL
}
TimeDistanceSpecifiedDirection ::= SEQUENCE
{
time Time,
distanceSpecifiedDirection DistanceSpecifiedDirection
}
TimeDistanceToFromPosition ::= SEQUENCE
{
time Time,
distance Distance,
tofrom ToFrom,
position Position
}
Timehhmmss ::= SEQUENCE
{
hoursminutes Time,
seconds TimeSeconds
}
TimeHours ::= INTEGER (0..23)
-- unit = Hour, Range (0..23), resolution = 1
TimeUnitNameFrequency ::= SEQUENCE
{
time Time,
unitName UnitName,
frequency Frequency
}
TimeMinutes ::= INTEGER (0..59)
-- unit = Minute, Range (0..59), resolution = 1
TimePosition ::= SEQUENCE
{
time Time,
position Position
}
TimePositionLevel ::= SEQUENCE
{
timeposition TimePosition,
level Level
}
TimePositionLevelSpeed ::= SEQUENCE
{
timeposition TimePosition,
levelspeed LevelSpeed
}
TimeSeconds ::= INTEGER (0..59)
-- unit = Second, Range (0..59), resolution = 1
TimeSpeed ::= SEQUENCE
{
time Time,
speed Speed
}
TimeSpeedSpeed ::= SEQUENCE
{
time Time,
speedspeed SpeedSpeed
}
TimeTime ::= SEQUENCE SIZE (2) OF Time
TimeToFromPosition ::= SEQUENCE
{
time Time,
tofrom ToFrom,
position Position
}
TimeTolerance ::= ENUMERATED
{
at (0),
atorafter (1),
atorbefore(2)
}
ToFrom ::= ENUMERATED
{
to (0),
from (1)
}
ToFromPosition ::= SEQUENCE
{
toFrom ToFrom,
position Position
}
TrafficType ::= ENUMERATED
{
noneSpecified (0),
oppositeDirection (1),
sameDirection (2),
converging (3),
crossing (4),
diverging (5),
...
}
Turbulence ::= ENUMERATED
{
light (0),
moderate (1),
severe (2)
}
UnitName ::= SEQUENCE
{
facilityDesignation [0] FacilityDesignation,
facilityName [1] FacilityName OPTIONAL,
facilityFunction [2] FacilityFunction
}
UnitNameFrequency ::= SEQUENCE
{
unitName UnitName,
frequency Frequency
}
VersionNumber ::= INTEGER (0..15)
VerticalChange ::= SEQUENCE
{
direction VerticalDirection,
rate VerticalRate
}
VerticalDirection ::= ENUMERATED
{
up (0),
down (1)
}
VerticalRate ::= CHOICE
{
verticalRateEnglish [0] VerticalRateEnglish,
verticalRateMetric [1] VerticalRateMetric
}
VerticalRateEnglish ::= INTEGER (0..3000)
-- unit = Feet/Minute, Range (0..30000), resolution = 10
VerticalRateMetric ::= INTEGER (0..1000)
-- unit = Meters/Minute, Range (0..10000), resolution = 10
WaypointSpeedLevel ::= SEQUENCE
{
position [0] Position,
speed [1] Speed OPTIONAL,
aTWLevels [2] ATWLevelSequence OPTIONAL
}
WindDirection ::= INTEGER (1..360)
-- unit = Degree, Range (1..360), resolution = 1
Winds ::= SEQUENCE
{
direction WindDirection,
speed WindSpeed
}
WindSpeed ::= CHOICE
{
windSpeedEnglish [0] WindSpeedEnglish,
windSpeedMetric [1] WindSpeedMetric
}
WindSpeedEnglish ::= INTEGER (0..255)
-- unit = Knot, Range (0..255), resolution = 1
WindSpeedMetric ::= INTEGER (0..511)
-- unit = Kilometer/Hour, Range (0..511), resolution = 1
Year ::= INTEGER (1996..2095)
-- unit = Year, Range (1996..2095), resolution = 1
END
--
-- Editor modelines - https://www.wireshark.org/tools/modelines.html
--
-- Local variables:
-- c-basic-offset: 4
-- tab-width: 8
-- indent-tabs-mode: nil
-- End:
--
-- vi: set shiftwidth=4 tabstop=8 expandtab:
-- :indentSize=4:tabSize=8:noTabs=true:
--