HTTPS (almost) everywhere.
[metze/wireshark/wip.git] / epan / dissectors / asn1 / atn-cpdlc / atn-cpdlc.asn
1 -- Sub-Volume IV ASN.1 reference definitions for ICAO Doc. 9705,
2 -- Second Edition
3 -- Version 1.1, 03 Oct 2001
4
5 -- protected mode PDR's
6 -- 2011-10-25   Doc 9705 Draft Ed 3 (ICAO web site - 11/00) including "9705 PDRS FOR CPDLC"
7 -- based on "ACP WGN SG/N2 Version 1.1 (Output Montreal - May 2005)"
8
9
10 -- plain old CPDLC
11 CPDLCAPDUsVersion1 DEFINITIONS ::=
12 BEGIN
13
14 IMPORTS
15         ATCUplinkMessage, ATCDownlinkMessage
16     FROM PMCPDLCMessageSetVersion1
17         ATCForwardMessage, ATCForwardResponse
18     FROM PMCPDLCAPDUsVersion1;
19
20 -- ----------------------------------------------------------------------------------
21 -- Ground Generated Messages - Top level
22 -- ----------------------------------------------------------------------------------
23 GroundPDUs ::= CHOICE
24 {
25     abortUser   [0] CPDLCUserAbortReason,
26     abortProvider   [1] CPDLCProviderAbortReason,
27     startup     [2] UplinkMessage,
28     send      [3] ATCUplinkMessage,
29     forward   [4] ATCForwardMessage,
30     forwardresponse [5] ATCForwardResponse,
31     ...
32 }
33
34 UplinkMessage ::= CHOICE
35 {
36     noMessage   [0] NULL,
37     aTCUplinkMessage  [1] ATCUplinkMessage
38 }
39
40 AircraftPDUs::= CHOICE
41 {
42     abortUser [0] CPDLCUserAbortReason,
43     abortProvider [1] CPDLCProviderAbortReason,
44     startdown [2] StartDownMessage,
45     send    [3] ATCDownlinkMessage,
46     ...
47 }
48
49 StartDownMessage ::= SEQUENCE
50 {
51     mode      Mode DEFAULT cpdlc,
52     startDownlinkMessage  DownlinkMessage
53 }
54
55 Mode ::= ENUMERATED
56 {
57     cpdlc   (0),
58     dsc   (1)
59 }
60
61 DownlinkMessage ::= CHOICE
62 {
63     noMessage     [0] NULL,
64     aTCDownlinkMessage    [1] ATCDownlinkMessage
65 }
66
67 CPDLCUserAbortReason ::= ENUMERATED
68 {
69     undefined         (0),
70     no-message-identification-numbers-available (1),
71     duplicate-message-identification-numbers  (2),
72     no-longer-next-data-authority     (3),
73     current-data-authority-abort      (4),
74     commanded-termination     (5),
75     invalid-response        (6),
76     ...
77 }
78
79
80 CPDLCProviderAbortReason ::= ENUMERATED
81 {
82     timer-expired         (0),
83     undefined-error       (1),
84     invalid-PDU         (2),
85     protocol-error          (3),
86     communication-service-error     (4),
87     communication-service-failure     (5),
88     invalid-QOS-parameter       (6),
89     expected-PDU-missing        (7),
90     ...
91   }
92
93 END
94
95 -- protected mode PMCPDLC
96 PMCPDLCAPDUsVersion1 DEFINITIONS::=
97 BEGIN
98
99 IMPORTS
100 DateTimeGroup,
101 AircraftFlightIdentification,
102 AircraftAddress
103 FROM PMCPDLCMessageSetVersion1;
104
105 -- ----------------------------------------------------------------------------------
106 -- Ground Generated Messages - Top level
107 -- ----------------------------------------------------------------------------------
108 ProtectedGroundPDUs ::= CHOICE
109 {
110     abortUser       [0] PMCPDLCUserAbortReason,
111     abortProvider   [1] PMCPDLCProviderAbortReason,
112     startup         [2] ProtectedUplinkMessage,
113     send            [3] ProtectedUplinkMessage,
114     forward         [4] ATCForwardMessage,
115     forwardresponse [5] ATCForwardResponse,
116     ...
117 }
118
119 ProtectedUplinkMessage::= SEQUENCE
120 {
121     algorithmIdentifier [0] AlgorithmIdentifier OPTIONAL,
122     protectedMessage    [1] CPDLCMessage OPTIONAL,
123 -- PER encoded ATCUplinkMessage
124 -- (see Module PMCPDLCMessageSetVersion1)
125     integrityCheck      [2] BIT STRING,
126     ...
127 }
128
129 ATCForwardMessage ::= SEQUENCE
130 {
131     forwardHeader   ForwardHeader,
132     forwardMessage  ForwardMessage
133 }
134
135 ForwardHeader ::= SEQUENCE
136 {
137     dateTime  DateTimeGroup,
138     aircraftID  AircraftFlightIdentification,
139     aircraftAddress AircraftAddress
140 }
141
142 ForwardMessage ::= CHOICE
143 {
144     upElementIDs    [0] BIT STRING,
145 --PER encoded ATCUplinkMessageData,
146 -- (see Module PMCPDLCMessageSetVersion1)
147     downElementIDs  [1] BIT STRING
148 --PER encoded ATCDownlinkMessageData,
149 -- (see Module PMCPDLCMessageSetVersion1)
150 }
151
152 ATCForwardResponse ::= ENUMERATED
153 {
154     success               (0),
155     service-not-supported (1),
156     version-not-equal     (2),
157     ...
158 }
159 -- ----------------------------------------------------------------------------------
160 -- Aircraft Generated Messages - Top level
161 -- ----------------------------------------------------------------------------------
162 ProtectedAircraftPDUs::= CHOICE
163 {
164     abortUser     [0] PMCPDLCUserAbortReason,
165     abortProvider [1] PMCPDLCProviderAbortReason,
166     startdown     [2] ProtectedStartDownMessage,
167     send          [3] ProtectedDownlinkMessage,
168     ...
169 }
170
171
172 ProtectedStartDownMessage ::= SEQUENCE
173 {
174     mode  ProtectedMode DEFAULT cpdlc,
175     startDownlinkMessage ProtectedDownlinkMessage
176 }
177
178 ProtectedMode ::= ENUMERATED
179 {
180     cpdlc (0),
181     dsc (1)
182 }
183
184 ProtectedDownlinkMessage::= SEQUENCE
185 {
186     algorithmIdentifier [0] AlgorithmIdentifier OPTIONAL,
187     protectedMessage    [1] CPDLCMessage OPTIONAL,
188 --PER encoded ATCDownlinkMessage,
189 -- (see Module PMCPDLCMessageSetVersion1)
190     integrityCheck      [2] BIT STRING,
191     ...
192 }
193
194 -- ----------------------------------------------------------------------------------
195 -- Uplink and Downlink messages - Common Elements
196 -- ----------------------------------------------------------------------------------
197 AlgorithmIdentifier ::= RELATIVE-OID
198 --root is {icao-arc atn-algorithms(9)}
199
200 CPDLCMessage ::= BIT STRING
201
202 PMCPDLCUserAbortReason ::= ENUMERATED
203 {
204     undefined                                   (0),
205     no-message-identification-numbers-available (1),
206     duplicate-message-identification-numbers    (2),
207     no-longer-next-data-authority               (3),
208     current-data-authority-abort                (4),
209     commanded-termination                       (5),
210     invalid-response                            (6),
211     time-out-of-synchronisation                 (7),
212     unknown-integrity-check                     (8),
213     validation-failure                          (9),
214     unable-to-decode-message                    (10),
215     invalid-pdu                                 (11),
216     invalid-CPDLC-message                       (12),
217     ...
218 }
219
220 PMCPDLCProviderAbortReason ::= ENUMERATED
221 {
222     timer-expired                               (0),
223     undefined-error                             (1),
224     invalid-PDU                                 (2),
225     protocol-error                              (3),
226     communication-service-error                 (4),
227     communication-service-failure               (5),
228     invalid-QOS-parameter                       (6),
229     expected-PDU-missing                        (7),
230     ...
231 }
232
233 END
234
235 PMCPDLCMessageSetVersion1 DEFINITIONS::=
236 BEGIN
237
238 ATCUplinkMessage ::= SEQUENCE
239 {
240     header  ATCMessageHeader,
241     messageData ATCUplinkMessageData
242 }
243
244 ATCUplinkMessageData ::= SEQUENCE
245 {
246     elementIds  SEQUENCE SIZE (1..5) OF ATCUplinkMsgElementId,
247     constrainedData SEQUENCE
248     {
249         routeClearanceData  SEQUENCE SIZE (1..2) OF RouteClearance OPTIONAL,
250         ...
251     } OPTIONAL
252 }
253
254 ATCDownlinkMessage ::= SEQUENCE
255 {
256     header  ATCMessageHeader,
257     messageData ATCDownlinkMessageData
258 }
259
260 ATCDownlinkMessageData ::= SEQUENCE
261 {
262     elementIds  SEQUENCE SIZE (1..5) OF ATCDownlinkMsgElementId,
263     constrainedData SEQUENCE
264     {
265         routeClearanceData    SEQUENCE SIZE (1..2) OF RouteClearance OPTIONAL,
266       ...
267     } OPTIONAL
268 }
269
270 -- ----------------------------------------------------------------------------------
271 -- Uplink and Downlink messages - Common Elements
272 -- ----------------------------------------------------------------------------------
273 ATCMessageHeader ::= SEQUENCE
274 {
275     messageIdNumber   [0] MsgIdentificationNumber,
276     messageRefNumber  [1] MsgReferenceNumber  OPTIONAL,
277     dateTime          [2] DateTimeGroup,
278     logicalAck        [3] LogicalAck  DEFAULT notRequired
279 }
280
281 MsgIdentificationNumber ::= INTEGER (0..63)
282
283 MsgReferenceNumber ::= INTEGER (0..63)
284
285 LogicalAck ::= ENUMERATED
286 {
287     required  (0),
288     notRequired (1)
289 }
290
291 -- ----------------------------------------------------------------------------------
292 -- Uplink message element
293 -- ----------------------------------------------------------------------------------
294 ATCUplinkMsgElementId ::= CHOICE
295 {
296     --  UNABLE
297     -- Urg(N)/Alr(M)/Resp(N)
298     uM0NULL [0] NULL,
299
300     -- STANDBY
301     -- Urg(N)/Alr(L)/Resp(N)
302     uM1NULL [1] NULL,
303
304     -- REQUEST DEFERRED
305     -- Urg(N)/Alr(L)/Resp(N)
306     uM2NULL [2] NULL,
307
308     -- ROGER
309     -- Urg(N)/Alr(L)/Resp(N)
310     uM3NULL [3] NULL,
311
312     -- AFFIRM
313     -- Urg(N)/Alr(L)/Resp(N)
314     uM4NULL [4] NULL,
315
316     -- NEGATIVE Urg(N)/Alr(L)/Resp(N)
317     uM5NULL [5] NULL,
318
319     -- EXPECT [level] Urg(L)/Alr(L)/Resp(R)
320     uM6Level [6] Level,
321
322     -- EXPECT CLIMB AT [time]
323     -- Urg(L)/Alr(L)/Resp(R)
324     uM7Time [7] Time,
325
326     -- EXPECT CLIMB AT [position]
327     -- Urg(L)/Alr(L)/Resp(R)
328     uM8Position [8] Position,
329
330     -- EXPECT DESCENT AT [time]
331     -- Urg(L)/Alr(L)/Resp(R)
332     uM9Time [9] Time,
333
334     -- EXPECT DESCENT AT [position]
335     -- Urg(L)/Alr(L)/Resp(R)
336     uM10Position [10] Position,
337
338     -- EXPECT CRUISE CLIMB AT [time]
339     -- Urg(L)/Alr(L)/Resp(R)
340     uM11Time [11] Time,
341
342     -- EXPECT CRUISE CLIMB AT [position]
343     -- Urg(L)/Alr(L)/Resp(R)
344     uM12Position [12] Position,
345
346     -- AT [time] EXPECT CLIMB TO [level]
347     -- Urg(L)/Alr(L)/Resp(R)
348     uM13TimeLevel [13] TimeLevel,
349
350   -- AT [position] EXPECT CLIMB TO [level]
351   -- Urg(L)/Alr(L)/Resp(R)
352     uM14PositionLevel [14] PositionLevel,
353
354     -- AT [time] EXPECT DESCENT TO [level]
355     -- Urg(L)/Alr(L)/Resp(R)
356     uM15TimeLevel [15] TimeLevel,
357
358   -- AT [position] EXPECT DESCENT TO [level]
359   -- Urg(L)/Alr(L)/Resp(R)
360     uM16PositionLevel [16] PositionLevel,
361
362     -- AT [time] EXPECT CRUISE CLIMB TO [level]
363     -- Urg(L)/Alr(L)/Resp(R)
364     uM17TimeLevel [17] TimeLevel,
365
366     -- AT [position] EXPECT CRUISE CLIMB TO [level]
367     -- Urg(L)/Alr(L)/Resp(R)
368     uM18PositionLevel [18] PositionLevel,
369
370     -- MAINTAIN [level]
371     -- Urg(N)/Alr(M)/Resp(W/U)
372     uM19Level [19] Level,
373
374     -- CLIMB TO [level]
375     -- Urg(N)/Alr(M)/Resp(W/U)
376     uM20Level [20] Level,
377
378     -- AT [time] CLIMB TO [level]
379     -- Urg(N)/Alr(M)/Resp(W/U)
380     uM21TimeLevel [21] TimeLevel,
381
382     -- AT [position] CLIMB TO [level]
383     -- Urg(N)/Alr(M)/Resp(W/U)
384     uM22PositionLevel [22] PositionLevel,
385
386     -- DESCEND TO [level]
387     -- Urg(N)/Alr(M)/Resp(W/U)
388     uM23Level [23] Level,
389
390     -- AT [time] DESCEND TO [level]
391     -- Urg(N)/Alr(M)/Resp(W/U)
392     uM24TimeLevel [24] TimeLevel,
393
394     -- AT [position] DESCEND TO [level]
395     -- Urg(N)/Alr(M)/Resp(W/U)
396     uM25PositionLevel [25] PositionLevel,
397
398     -- CLIMB TO REACH [level] BY [time]
399     -- Urg(N)/Alr(M)/Resp(W/U)
400     uM26LevelTime [26] LevelTime,
401
402     -- CLIMB TO REACH [level] BY [position]
403     -- Urg(N)/Alr(M)/Resp(W/U)
404     uM27LevelPosition [27] LevelPosition,
405
406     -- DESCEND TO REACH [level] BY [time]
407     -- Urg(N)/Alr(M)/Resp(W/U)
408     uM28LevelTime [28] LevelTime,
409
410     -- DESCEND TO REACH [level] BY [position]
411     -- Urg(N)/Alr(M)/Resp(W/U)
412     uM29LevelPosition [29] LevelPosition,
413
414     -- MAINTAIN BLOCK [level] TO [level]
415     -- Urg(N)/Alr(M)/Resp(W/U)
416     uM30LevelLevel  [30] LevelLevel,
417
418     -- CLIMB TO AND MAINTAIN BLOCK [level] TO [level]
419     -- Urg(N)/Alr(M)/Resp(W/U)
420     uM31LevelLevel  [31] LevelLevel,
421
422     -- DESCEND TO AND MAINTAIN BLOCK [level] TO [level]
423     -- Urg(N)/Alr(M)/Resp(W/U)
424     uM32LevelLevel [32] LevelLevel,
425
426     -- Reserved
427     -- Urg(L)/Alr(L)/Resp(Y)
428     uM33NULL [33] NULL,
429
430     -- CRUISE CLIMB TO [level]
431     -- Urg(N)/Alr(M)/Resp(W/U)
432     uM34Level [34] Level,
433
434     -- CRUISE CLIMB ABOVE [level]
435     -- Urg(N)/Alr(M)/Resp(W/U)
436     uM35Level [35] Level,
437
438     -- EXPEDITE CLIMB TO [level]
439     -- Urg(U)/Alr(M)/Resp(W/U)
440     uM36Level [36] Level,
441
442     -- EXPEDITE DESCENT TO [level]
443     -- Urg(U)/Alr(M)/Resp(W/U)
444     uM37Level [37] Level,
445
446     -- IMMEDIATELY CLIMB TO [level]
447     -- Urg(D)/Alr(H)/Resp(W/U)
448     uM38Level [38] Level,
449
450     -- IMMEDIATELY DESCEND TO [level]
451     -- Urg(D)/Alr(H)/Resp(W/U)
452     uM39Level [39] Level,
453
454     -- Reserved
455     -- Urg(L)/Alr(L)/Resp(Y)
456     uM40NULL [40] NULL,
457
458     -- Reserved Urg(L)/Alr(L)/Resp(Y)
459     uM41NULL [41] NULL,
460
461     -- EXPECT TO CROSS [position] AT [level]
462     -- Urg(L)/Alr(L)/Resp(R)
463     uM42PositionLevel [42] PositionLevel,
464
465     -- EXPECT TO CROSS [position] AT OR ABOVE [level]
466     -- Urg(L)/Alr(L)/Resp(R)
467     uM43PositionLevel [43] PositionLevel,
468
469     -- EXPECT TO CROSS [position] AT OR BELOW [level]
470     -- Urg(L)/Alr(L)/Resp(R)
471     uM44PositionLevel [44] PositionLevel,
472
473     -- EXPECT TO CROSS [position] AT AND MAINTAIN [level]
474     -- Urg(L)/Alr(L)/Resp(R)
475     uM45PositionLevel [45] PositionLevel,
476
477     -- CROSS [position] AT [level]
478     -- Urg(N)/Alr(M)/Resp(W/U)
479     uM46PositionLevel [46] PositionLevel,
480
481     -- CROSS [position] AT OR ABOVE [level]
482     -- Urg(N)/Alr(M)/Resp(W/U)
483     uM47PositionLevel [47] PositionLevel,
484
485     -- CROSS [position] AT OR BELOW [level]
486     -- Urg(N)/Alr(M)/Resp(W/U)
487     uM48PositionLevel [48]  PositionLevel,
488
489     -- CROSS [position] AT AND MAINTAIN [level]
490     -- Urg(N)/Alr(M)/Resp(W/U)
491     uM49PositionLevel [49] PositionLevel,
492
493     -- CROSS [position] BETWEEN [level] AND [level]
494     -- Urg(N)/Alr(M)/Resp(W/U)
495     uM50PositionLevelLevel [50] PositionLevelLevel,
496
497     -- CROSS [position] AT [time]
498     -- Urg(N)/Alr(M)/Resp(W/U)
499     uM51PositionTime [51] PositionTime,
500
501     -- CROSS [position] AT OR BEFORE [time]
502     -- Urg(N)/Alr(M)/Resp(W/U)
503     uM52PositionTime [52] PositionTime,
504
505     -- CROSS [position] AT OR AFTER [time]
506     -- Urg(N)/Alr(M)/Resp(W/U)
507     uM53PositionTime [53] PositionTime,
508
509     -- CROSS [position] BETWEEN [time] AND [time]
510     -- Urg(N)/Alr(M)/Resp(W/U)
511     uM54PositionTimeTime [54] PositionTimeTime,
512
513     -- CROSS [position] AT [speed]
514     -- Urg(N)/Alr(M)/Resp(W/U)
515     uM55PositionSpeed [55] PositionSpeed,
516
517     -- CROSS [position] AT OR LESS THAN [speed]
518     -- Urg(N)/Alr(M)/Resp(W/U)
519     uM56PositionSpeed [56] PositionSpeed,
520
521     -- CROSS [position] AT OR GREATER THAN [speed]
522     -- Urg(N)/Alr(M)/Resp(W/U)
523     uM57PositionSpeed [57] PositionSpeed,
524
525     -- CROSS [position] AT [time] AT [level]
526     -- Urg(N)/Alr(M)/Resp(W/U)
527     uM58PositionTimeLevel [58] PositionTimeLevel,
528
529     -- CROSS [position] AT OR BEFORE [time] AT [level]
530     -- Urg(N)/Alr(M)/Resp(W/U)
531     uM59PositionTimeLevel [59] PositionTimeLevel,
532
533     -- CROSS [position] AT OR AFTER [time] AT [level]
534     -- Urg(N)/Alr(M)/Resp(W/U)
535     uM60PositionTimeLevel [60] PositionTimeLevel,
536
537     -- CROSS [position] AT AND MAINTAIN [level] AT [speed]
538     -- Urg(N)/Alr(M)/Resp(W/U)
539     uM61PositionLevelSpeed [61] PositionLevelSpeed,
540
541     -- AT [time] CROSS [position] AT AND MAINTAIN [level]
542     -- Urg(N)/Alr(M)/Resp(W/U)
543     uM62TimePositionLevel [62] TimePositionLevel,
544
545     -- AT [time] CROSS [position] AT AND MAINTAIN [level] AT [speed]
546     -- Urg(N)/Alr(M)/Resp(W/U)
547     uM63TimePositionLevelSpeed [63] TimePositionLevelSpeed,
548
549     -- OFFSET [specifiedDistance] [direction] OF ROUTE
550     -- Urg(N)/Alr(M)/Resp(W/U)
551     uM64DistanceSpecifiedDirection  [64] DistanceSpecifiedDirection,
552
553     -- AT [position] OFFSET [specifiedDistance] [direction] OF ROUTE
554     -- Urg(N)/Alr(M)/Resp(W/U)
555     uM65PositionDistanceSpecifiedDirection[65] PositionDistanceSpecifiedDirection,
556
557     -- AT [time] OFFSET [specifiedDistance] [direction] OF ROUTE
558     -- Urg(N)/Alr(M)/Resp(W/U)
559     uM66TimeDistanceSpecifiedDirection [66] TimeDistanceSpecifiedDirection,
560
561     -- PROCEED BACK ON ROUTE
562     -- Urg(N)/Alr(M)/Resp(W/U)
563     uM67NULL  [67] NULL,
564
565     -- REJOIN ROUTE BY [position]
566     -- Urg(N)/Alr(M)/Resp(W/U)
567     uM68Position  [68] Position,
568
569     -- REJOIN ROUTE BY [time]
570     -- Urg(N)/Alr(M)/Resp(W/U)
571     uM69Time  [69] Time,
572
573     -- EXPECT BACK ON ROUTE BY [position]
574     -- Urg(L)/Alr(L)/Resp(R)
575     uM70Position  [70] Position,
576
577     -- EXPECT BACK ON ROUTE BY [time]
578     -- Urg(L)/Alr(L)/Resp(R)
579     uM71Time  [71] Time,
580
581     -- RESUME OWN NAVIGATION
582     -- Urg(N)/Alr(M)/Resp(W/U)
583     uM72NULL  [72] NULL,
584
585     -- [DepartureClearance]
586     -- Urg(N)/Alr(M)/Resp(W/U)
587     uM73DepartureClearance  [73] DepartureClearance,
588
589     -- PROCEED DIRECT TO [position]
590     -- Urg(N)/Alr(M)/Resp(W/U)
591     uM74Position  [74] Position,
592
593     -- WHEN ABLE PROCEED DIRECT TO [position]
594     -- Urg(N)/Alr(M)/Resp(W/U)
595     uM75Position [75] Position,
596
597     -- AT [time] PROCEED DIRECT TO [position]
598     -- Urg(N)/Alr(M)/Resp(W/U)
599     uM76TimePosition [76] TimePosition,
600
601     -- AT [position] PROCEED DIRECT TO [position]
602     -- Urg(N)/Alr(M)/Resp(W/U)
603     uM77PositionPosition [77] PositionPosition,
604
605     -- AT [level] PROCEED DIRECT TO [position]
606     -- Urg(N)/Alr(M)/Resp(W/U)
607     uM78LevelPosition [78] LevelPosition,
608
609     -- CLEARED TO [position] VIA [routeClearance]
610     -- Urg(N)/Alr(M)/Resp(W/U)
611     uM79PositionRouteClearance [79] PositionRouteClearanceIndex,
612
613     -- CLEARED [routeClearance]
614     -- Urg(N)/Alr(M)/Resp(W/U)
615     uM80RouteClearance [80] RouteClearanceIndex,
616
617     -- CLEARED [procedureName]
618     -- Urg(N)/Alr(M)/Resp(W/U)
619     uM81ProcedureName [81] ProcedureName,
620
621     -- CLEARED TO DEVIATE UP TO [specifiedDistance] [direction] OF ROUTE
622     -- Urg(N)/Alr(M)/Resp(W/U)
623     uM82DistanceSpecifiedDirection [82] DistanceSpecifiedDirection,
624
625     -- AT [position] CLEARED [routeClearance]
626     -- Urg(N)/Alr(M)/Resp(W/U)
627     uM83PositionRouteClearance [83] PositionRouteClearanceIndex,
628
629     -- AT [position] CLEARED [procedureName]
630     -- Urg(N)/Alr(M)/Resp(W/U)
631     uM84PositionProcedureName [84] PositionProcedureName,
632
633     -- EXPECT [routeClearance]
634     -- Urg(L)/Alr(L)/Resp(R)
635     uM85RouteClearance [85] RouteClearanceIndex,
636
637     -- AT [position] EXPECT [routeClearance]
638     -- Urg(L)/Alr(L)/Resp(R)
639     uM86PositionRouteClearance [86] PositionRouteClearanceIndex,
640
641     -- EXPECT DIRECT TO [position]
642     -- Urg(L)/Alr(L)/Resp(R)
643     uM87Position [87] Position,
644
645     -- AT [position] EXPECT DIRECT TO [position]
646     -- Urg(L)/Alr(L)/Resp(R)
647     uM88PositionPosition [88]PositionPosition,
648
649     -- AT [time] EXPECT DIRECT TO [position]
650     -- Urg(L)/Alr(L)/Resp(R)
651     uM89TimePosition [89] TimePosition,
652
653
654     -- AT [level] EXPECT DIRECT TO [position]
655     -- Urg(L)/Alr(L)/Resp(R)
656     uM90LevelPosition [90] LevelPosition,
657
658     -- HOLD AT [position] MAINTAIN [level] INBOUND TRACK [degrees][direction] TURNS [legtype]
659     -- Urg(N)/Alr(M)/Resp(W/U)
660     uM91HoldClearance [91] HoldClearance,
661
662     -- HOLD AT [position] AS PUBLISHED MAINTAIN [level]
663     --  Urg(N)/Alr(M)/Resp(W/U)
664     uM92PositionLevel [92] PositionLevel,
665
666     -- EXPECT FURTHER CLEARANCE AT [time]
667     -- Urg(L)/Alr(L)/Resp(R)
668     uM93Time [93] Time,
669
670     -- TURN [direction] HEADING [degrees]
671     -- Urg(N)/Alr(M)/Resp(W/U)
672     uM94DirectionDegrees [94] DirectionDegrees,
673
674     -- TURN [direction] GROUND TRACK [degrees]
675     -- Urg(N)/Alr(M)/Resp(W/U)
676     uM95DirectionDegrees [95] DirectionDegrees,
677
678     -- CONTINUE PRESENT HEADING
679     -- Urg(N)/Alr(M)/Resp(W/U)
680     uM96NULL [96] NULL,
681
682     -- AT [position] FLY HEADING [degrees]
683     -- Urg(N)/Alr(M)/Resp(W/U)
684     uM97PositionDegrees [97] PositionDegrees,
685
686     -- IMMEDIATELY TURN [direction] HEADING [degrees]
687     -- Urg(D)/Alr(H)/Resp(W/U)
688     uM98DirectionDegrees [98] DirectionDegrees,
689
690     -- EXPECT [procedureName]
691     -- Urg(L)/Alr(L)/Resp(R)
692     uM99ProcedureName [99] ProcedureName,
693
694     -- AT [time] EXPECT [speed]
695     -- Urg(L)/Alr(L)/Resp(R)
696     uM100TimeSpeed [100] TimeSpeed,
697
698     -- AT [position] EXPECT [speed]
699     -- Urg(L)/Alr(L)/Resp(R)
700     uM101PositionSpeed [101] PositionSpeed,
701
702     -- AT [level] EXPECT [speed]
703     -- Urg(L)/Alr(L)/Resp(R)
704     uM102LevelSpeed [102] LevelSpeed,
705
706     -- AT [time] EXPECT [speed] TO [speed]
707     -- Urg(L)/Alr(L)/Resp(R)
708     uM103TimeSpeedSpeed [103] TimeSpeedSpeed,
709
710     -- AT [position] EXPECT [speed] TO [speed]
711     -- Urg(L)/Alr(L)/Resp(R)
712     uM104PositionSpeedSpeed [104] PositionSpeedSpeed,
713
714     -- AT [level] EXPECT [speed] TO [speed]
715     -- Urg(L)/Alr(L)/Resp(R)
716     uM105LevelSpeedSpeed [105] LevelSpeedSpeed,
717
718     -- MAINTAIN [speed]
719     -- Urg(N)/Alr(M)/Resp(W/U)
720     uM106Speed [106] Speed,
721
722     -- MAINTAIN PRESENT SPEED
723     -- Urg(N)/Alr(M)/Resp(W/U)
724     uM107NULL [107] NULL,
725
726     -- MAINTAIN [speed] OR GREATER
727     -- Urg(N)/Alr(M)/Resp(W/U)
728     uM108Speed [108] Speed,
729
730     -- MAINTAIN [speed] OR LESS
731     -- Urg(N)/Alr(M)/Resp(W/U)
732     uM109Speed [109] Speed,
733
734     -- MAINTAIN [speed] TO [speed]
735     -- Urg(N)/Alr(M)/Resp(W/U)
736     uM110SpeedSpeed [110] SpeedSpeed,
737
738     -- INCREASE SPEED TO [speed]
739     -- Urg(N)/Alr(M)/Resp(W/U)
740     uM111Speed [111] Speed,
741
742     -- INCREASE SPEED TO [speed] OR GREATER
743     -- Urg(N)/Alr(M)/Resp(W/U)
744     uM112Speed [112] Speed,
745
746     -- REDUCE SPEED TO [speed]
747     -- Urg(N)/Alr(M)/Resp(W/U)
748     uM113Speed [113] Speed,
749
750     -- REDUCE SPEED TO [speed] OR LESS
751     -- Urg(N)/Alr(M)/Resp(W/U)
752     uM114Speed [114] Speed,
753
754     -- DO NOT EXCEED [speed]
755     -- Urg(N)/Alr(M)/Resp(W/U)
756     uM115Speed [115] Speed,
757
758     -- RESUME NORMAL SPEED
759     -- Urg(N)/Alr(M)/Resp(W/U)
760     uM116NULL [116] NULL,
761
762     -- CONTACT [unitname] [frequency]
763     -- Urg(N)/Alr(M)/Resp(W/U)
764     uM117UnitNameFrequency [117] UnitNameFrequency,
765
766     -- AT [position] CONTACT [unitname] [frequency]
767     -- Urg(N)/Alr(M)/Resp(W/U)
768     uM118PositionUnitNameFrequency [118] PositionUnitNameFrequency,
769
770     -- AT [time] CONTACT [unitname] [frequency]
771     -- Urg(N)/Alr(M)/Resp(W/U)
772     uM119TimeUnitNameFrequency [119] TimeUnitNameFrequency,
773
774     -- MONITOR [unitname] [frequency]
775     -- Urg(N)/Alr(M)/Resp(W/U)
776     uM120UnitNameFrequency [120] UnitNameFrequency,
777
778     -- AT [position] MONITOR [unitname] [frequency]
779     -- Urg(N)/Alr(M)/Resp(W/U)
780     uM121PositionUnitNameFrequency [121] PositionUnitNameFrequency,
781
782     -- AT [time] MONITOR [unitname] [frequency]
783     -- Urg(N)/Alr(M)/Resp(W/U)
784     uM122TimeUnitNameFrequency [122] TimeUnitNameFrequency,
785
786     -- SQUAWK [code]
787     -- Urg(N)/Alr(M)/Resp(W/U)
788     uM123Code [123] Code,
789
790     -- STOP SQUAWK
791     -- Urg(N)/Alr(M)/Resp(W/U)
792     uM124NULL [124] NULL,
793
794     -- SQUAWK MODE CHARLIE
795     -- Urg(N)/Alr(M)/Resp(W/U)
796    uM125NULL [125] NULL,
797
798     -- STOP SQUAWK MODE CHARLIE
799     -- Urg(N)/Alr(M)/Resp(W/U)
800     uM126NULL [126] NULL,
801
802     -- REPORT BACK ON ROUTE
803     -- Urg(N)/Alr(L)/Resp(W/U)
804     uM127NULL [127] NULL,
805
806     -- REPORT LEAVING [level]
807     -- Urg(N)/Alr(L)/Resp(W/U)
808     uM128Level [128] Level,
809
810     -- REPORT MAINTAINING [level]
811     -- Urg(N)/Alr(L)/Resp(W/U)
812     uM129Level [129] Level,
813
814     -- REPORT PASSING [position]
815     -- Urg(N)/Alr(L)/Resp(W/U)
816     uM130Position [130] Position,
817
818     -- REPORT REMAINING FUEL AND PERSONS ON BOARD
819     -- Urg(U)/Alr(M)/Resp(Y)
820     uM131NULL [131] NULL,
821
822     -- REPORT POSITION
823     -- Urg(N)/Alr(M)/Resp(Y)
824     uM132NULL [132] NULL,
825
826     -- REPORT PRESENT LEVEL
827     -- Urg(N)/Alr(M)/Resp(Y)
828     uM133NULL [133] NULL,
829
830     -- REPORT [speedtype] [speedtype] [speedtype]SPEED
831     -- Urg(N)/Alr(M)/Resp(Y)
832     uM134SpeedTypeSpeedTypeSpeedType [134] SpeedTypeSpeedTypeSpeedType,
833
834     -- CONFIRM ASSIGNED LEVEL
835     -- Urg(N)/Alr(L)/Resp(Y)
836     uM135NULL [135] NULL,
837
838     -- CONFIRM ASSIGNED SPEED
839     -- Urg(N)/Alr(L)/Resp(Y)
840     uM136NULL [136] NULL,
841
842     -- CONFIRM ASSIGNED ROUTE
843     -- Urg(N)/Alr(L)/Resp(Y)
844     uM137NULL [137] NULL,
845
846   -- CONFIRM TIME OVER REPORTED WAYPOINT
847   -- Urg(N)/Alr(L)/Resp(Y)
848     uM138NULL [138] NULL,
849
850     -- CONFIRM REPORTED WAYPOINT
851     -- Urg(N)/Alr(L)/Resp(Y)
852     uM139NULL [139] NULL,
853
854     -- CONFIRM NEXT WAYPOINT
855     -- Urg(N)/Alr(L)/Resp(Y)
856     uM140NULL [140] NULL,
857
858     -- CONFIRM NEXT WAYPOINT ETA
859     -- Urg(N)/Alr(L)/Resp(Y)
860     uM141NULL [141] NULL,
861
862     -- CONFIRM ENSUING WAYPOINT
863     -- Urg(N)/Alr(L)/Resp(Y)
864     uM142NULL [142] NULL,
865
866     -- CONFIRM REQUEST
867     -- Urg(N)/Alr(L)/Resp(Y)
868     uM143NULL [143] NULL,
869
870     -- CONFIRM SQUAWK
871     -- Urg(N)/Alr(L)/Resp(Y)
872     uM144NULL [144] NULL,
873
874     -- REPORT HEADING
875     -- Urg(N)/Alr(M)/Resp(Y)
876     uM145NULL [145] NULL,
877
878     -- REPORT GROUND TRACK
879     -- Urg(N)/Alr(M)/Resp(Y)
880     uM146NULL [146] NULL,
881
882     -- REQUEST POSITION REPORT
883     -- Urg(N)/Alr(M)/Resp(Y )
884     uM147NULL [147] NULL,
885
886     -- WHEN CAN YOU ACCEPT [level]
887     -- Urg(N)/Alr(L)/Resp(Y)
888     uM148Level [148] Level,
889
890     -- CAN YOU ACCEPT [level] AT [position]
891     -- Urg(N)/Alr(L)/Resp(A/N)
892     uM149LevelPosition [149] LevelPosition,
893
894     -- CAN YOU ACCEPT [level] AT [time]
895     -- Urg(N)/Alr(L)/Resp(A/N)
896     uM150LevelTime [150] LevelTime,
897
898     -- WHEN CAN YOU ACCEPT [speed]
899     -- Urg(N)/Alr(L)/Resp(Y)
900     uM151Speed  [151] Speed,
901
902     -- WHEN CAN YOU ACCEPT [specifiedDistance] [direction] OFFSET
903     -- Urg(N)/Alr(L)/Resp(Y)
904     uM152DistanceSpecifiedDirection [152] DistanceSpecifiedDirection,
905
906     -- ALTIMETER [altimeter]
907     -- Urg(N)/Alr(L)/Resp(R)
908     uM153Altimeter  [153] Altimeter,
909
910     -- RADAR SERVICE TERMINATED
911     -- Urg(N)/Alr(L)/Resp(R)
912     uM154NULL [154] NULL,
913
914     -- RADAR CONTACT [position]
915     -- Urg(N)/Alr(M)/Resp(R)
916     uM155Position [155] Position,
917
918     -- RADAR CONTACT LOST
919     -- Urg(N)/Alr(M)/Resp(R)
920     uM156NULL [156] NULL,
921
922     -- CHECK STUCK MICROPHONE [frequency]
923     -- Urg(U)/Alr(M)/Resp(N)
924     uM157Frequency  [157] Frequency,
925
926     -- ATIS [atiscode]
927     -- Urg(N)/Alr(L)/Resp(R)
928     uM158AtisCode [158] ATISCode,
929
930     -- ERROR [errorInformation]
931     -- Urg(U)/Alr(M)/Resp(N)
932     uM159ErrorInformation [159] ErrorInformation,
933
934     -- NEXT DATA AUTHORITY [facility]
935     -- Urg(L)/Alr(N)/Resp(N)
936     uM160Facility [160] Facility,
937
938     -- END SERVICE
939     -- Urg(L)/Alr(N)/Resp(N)
940     uM161NULL [161] NULL,
941
942     -- SERVICE UNAVAILABLE
943     -- Urg(L)/Alr(L)/Resp(N )
944     uM162NULL [162] NULL,
945
946     -- [facilitydesignation]
947     -- Urg(L)/Alr(N)/Resp(N)
948     uM163FacilityDesignation  [163] FacilityDesignation,
949
950     -- WHEN READY
951     -- Urg(L)/Alr(N)/Resp(N)
952     uM164NULL [164] NULL,
953
954     -- THEN
955     -- Urg(L)/Alr(N)/Resp(N)
956     uM165NULL [165] NULL,
957
958     -- DUE TO [traffictype]TRAFFIC
959     -- Urg(L)/Alr(N)/Resp(N)
960     uM166TrafficType [166] TrafficType,
961
962     -- DUE TO AIRSPACE RESTRICTION
963     -- Urg(L)/Alr(N)/Resp(N)
964     uM167NULL [167] NULL,
965
966     -- DISREGARD
967     -- Urg(U)/Alr(M)/Resp(R)
968     uM168NULL [168] NULL,
969
970     -- [freetext]
971     -- Urg(N)/Alr(L)/Resp(R)
972     uM169FreeText [169] FreeText,
973
974     -- [freetext]
975     -- Urg(D)/Alr(H)/Resp(R)
976     uM170FreeText [170] FreeText,
977
978     -- CLIMB AT [verticalRate] MINIMUM
979     -- Urg(N)/Alr(M)/Resp(W/U)
980     uM171VerticalRate [171] VerticalRate,
981
982     -- CLIMB AT [verticalRate] MAXIMUM
983     -- Urg(N)/Alr(M)/Resp(W/U)
984     uM172VerticalRate [172] VerticalRate,
985
986     -- DESCEND AT [verticalRate] MINIMUM
987     -- Urg(N)/Alr(M)/Resp(W/U)
988     uM173VerticalRate [173] VerticalRate,
989
990     -- DESCEND AT [verticalRate] MAXIMUM
991     -- Urg(N)/Alr(M)/Resp(W/U)
992     uM174VerticalRate [174] VerticalRate,
993
994     -- REPORT REACHING [level]
995     -- Urg(N)/Alr(L)/Resp(W/U)
996     uM175Level [175] Level,
997
998     -- MAINTAIN OWN SEPARATION AND VMC
999     -- Urg(N)/Alr(M)/Resp(W/U)
1000     uM176NULL [176] NULL,
1001
1002     -- AT PILOTS DISCRETION
1003     -- Urg(L)/Alr(L)/Resp(N)
1004     uM177NULL [177] NULL,
1005
1006     -- Reserved
1007     -- Urg(L)/Alr(L)/Resp(Y)
1008     uM178NULL [178] NULL,
1009
1010     -- SQUAWK IDENT
1011     -- Urg(N)/Alr(M)/Resp(W/U)
1012     uM179NULL [179] NULL,
1013
1014     -- REPORT REACHING BLOCK [level] TO [level]
1015     -- Urg(N)/Alr(L)/Resp(W/U)
1016     uM180LevelLevel [180] LevelLevel,
1017
1018     -- REPORT DISTANCE [tofrom] [position]
1019     -- Urg(N)/Alr(M)/Resp(Y)
1020     uM181ToFromPosition [181] ToFromPosition,
1021
1022     -- CONFIRM ATIS CODE
1023     -- Urg(N)/Alr(L)/Resp(Y)
1024     uM182NULL [182] NULL,
1025
1026     -- [freetext]
1027     -- Urg(N)/Alr(M)/Resp(N)
1028     uM183FreeText [183] FreeText,
1029
1030     -- AT [time] REPORT DISTANCE [tofrom] [position]
1031     -- Urg(N)/Alr(L)/Resp(Y)
1032     uM184TimeToFromPosition [184] TimeToFromPosition,
1033
1034     -- AFTER PASSING [position] CLIMB TO [level]
1035     -- Urg(N)/Alr(M)/Resp(W/U)
1036     uM185PositionLevel [185] PositionLevel,
1037
1038     -- AFTER PASSING [position] DESCEND TO [level]
1039     -- Urg(N)/Alr(M)/Resp(W/U)
1040     uM186PositionLevel [186] PositionLevel,
1041
1042     -- [freetext]
1043     -- Urg(L)/Alr(N)/Resp(N)
1044     uM187FreeText [187] FreeText,
1045
1046     -- AFTER PASSING [position] MAINTAIN [speed]
1047     -- Urg(N)/Alr(M)/Resp(W/U)
1048     uM188PositionSpeed [188] PositionSpeed,
1049
1050     -- ADJUST SPEED TO [speed]
1051     -- Urg(N)/Alr(M)/Resp(W/U)
1052     uM189Speed [189] Speed,
1053
1054     -- FLY HEADING [degrees]
1055     -- Urg(N)/Alr(M)/Resp(W/U)
1056     uM190Degrees [190] Degrees,
1057
1058     -- ALL ATS TERMINATED
1059     -- Urg(N)/Alr(M)/Resp(R)
1060     uM191NULL [191] NULL,
1061
1062     -- REACH [level] BY [time]
1063   -- Urg(N)/Alr(M)/Resp(W/U)
1064     uM192LevelTime [192] LevelTime,
1065
1066     -- IDENTIFICATION LOST
1067     -- Urg(N)/Alr(M)/Resp(R)
1068     uM193NULL [193] NULL,
1069
1070     -- [freetext]
1071     -- Urg(N)/Alr(L)/Resp(Y)
1072     uM194FreeText [194] FreeText,
1073
1074     -- [freetext]
1075     -- Urg(L)/Alr(L)/Resp(R)
1076     uM195FreeText [195] FreeText,
1077
1078     -- [freetext]
1079     -- Urg(N)/Alr(M)/Resp
1080     uM196FreeText [196] FreeText,
1081
1082     -- [freetext]
1083     -- Urg(U)/Alr(M)/Resp(W/U)
1084     uM197FreeText [197] FreeText,
1085
1086     -- [freetext]
1087     -- Urg(D)/Alr(H)/Resp(W/U)
1088     uM198FreeText [198] FreeText,
1089
1090     -- [freetext]
1091     -- Urg(N)/Alr(L)/Resp(N)
1092     uM199FreeText [199] FreeText,
1093
1094     -- REPORT REACHING
1095     -- Urg(N)/Alr(L)/Resp(W/U)
1096     uM200NULL [200] NULL,
1097
1098     -- Not Used
1099     -- Urg(L)/Alr(L)/Resp(N)
1100     uM201NULL [201] NULL,
1101
1102     -- Not Used
1103     -- Urg(L)/Alr(L)/Resp(N)
1104     uM202NULL [202] NULL,
1105
1106     -- [freetext]
1107     -- Urg(N)/Alr(M)/Resp(R)
1108     uM203FreeText [203] FreeText,
1109
1110     -- [freetext]
1111     -- Urg(N)/Alr(M)/Resp(Y)
1112     uM204FreeText [204] FreeText,
1113
1114     -- [freetext]
1115     -- Urg(N)/Alr(M)/Resp(A/N)
1116     uM205FreeText [205] FreeText,
1117
1118     -- [freetext]
1119     -- Urg(L)/Alr(N)/Resp(Y)
1120     uM206FreeText [206] FreeText,
1121
1122     -- [freetext]
1123     -- Urg(L)/Alr(L)/Resp(Y)
1124     uM207FreeText [207] FreeText,
1125
1126     -- [freetext]
1127     -- Urg(L)/Alr(L)/Resp(N)
1128     uM208FreeText [208] FreeText,
1129
1130     -- REACH [level] BY [position]
1131     -- Urg(N)/Alr(M)/Resp(W/U)
1132     uM209LevelPosition [209] LevelPosition,
1133
1134     -- IDENTIFIED [position]
1135     -- Urg(N)/Alr(M)/Resp(R)
1136     uM210Position [210] Position,
1137
1138     -- REQUEST FORWARDED
1139     -- Urg(N)/Alr(L)/Resp(N)
1140     uM211NULL [211] NULL,
1141
1142     -- [facilitydesignation] ATIS [atiscode] CURRENT
1143     -- Urg(N)/Alr(L)/Resp(R)
1144     uM212FacilityDesignationATISCode [212] FacilityDesignationATISCode,
1145
1146     -- [facilitydesignation] ALTIMETER [altimeter]
1147     -- Urg(N)/Alr(L)/Resp(R)
1148     uM213FacilityDesignationAltimeter [213] FacilityDesignationAltimeter,
1149
1150     -- RVR RUNWAY [runway] [rvr]
1151     -- Urg(N)/Alr(M)/Resp(R)
1152     uM214RunwayRVR [214] RunwayRVR,
1153
1154     -- TURN [direction][degrees]
1155     -- Urg(N)/Alr(M)/Resp(W/U)
1156     uM215DirectionDegrees [215] DirectionDegrees,
1157
1158     -- REQUEST FLIGHT PLAN
1159     -- Urg(N)/Alr(M)/Resp(Y)
1160     uM216NULL [216] NULL,
1161
1162     -- REPORT ARRIVAL
1163     -- Urg(N)/Alr(M)/Resp(Y)
1164     uM217NULL [217] NULL,
1165
1166     -- REQUEST ALREADY RECEIVED
1167     -- Urg(L)/Alr(N)/Resp(N)
1168     uM218NULL [218] NULL,
1169
1170     -- STOP CLIMB AT [level]
1171     -- Urg(U)/Alr(M)/Resp(W/U)
1172     uM219Level [219] Level,
1173
1174     -- STOP DESCENT AT [level]
1175     -- Urg(U)/Alr(M)/Resp(W/U)
1176     uM220Level [220] Level,
1177
1178     -- STOP TURN HEADING [degrees]
1179     -- Urg(U)/Alr(M)/Resp(W/U)
1180     uM221Degrees [221] Degrees,
1181
1182     -- NO SPEED RESTRICTION
1183     -- Urg(L)/Alr(L)/Resp(R)
1184     uM222NULL [222] NULL,
1185
1186     -- REDUCE TO MINIMUM APPROACH SPEED
1187     -- Urg(N)/Alr(M)/Resp(W/U)
1188     uM223NULL [223] NULL,
1189
1190   -- NO DELAY EXPECTED
1191   -- Urg(N)/Alr(L)/Resp(R)
1192     uM224NULL [224] NULL,
1193
1194     -- DELAY NOT DETERMINED
1195     -- Urg(N)/Alr(L)/Resp(R)
1196     uM225NULL [225] NULL,
1197
1198     -- EXPECTED APPROACH TIME [time]
1199     -- Urg(N)/Alr(L)/Resp(R)
1200     uM226Time [226] Time,
1201
1202     -- LOGICAL ACKNOWLEDGMENT
1203     -- Urg(N)/Alr(M)/Resp(N)
1204     uM227NULL [227] NULL,
1205
1206     -- REPORT ETA [position]
1207     --Urg(L)/Alr(L)/Resp(Y)
1208     uM228Position [228] Position,
1209
1210     -- REPORT ALTERNATE AERODROME
1211     -- Urg(L)/Alr(L)/Resp(Y)
1212     uM229NULL [229] NULL,
1213
1214     -- IMMEDIATELY
1215     -- Urg(D)/Alr(H)/Resp(N)
1216     uM230NULL [230] NULL,
1217
1218     -- STATE PREFERRED LEVEL
1219     -- Urg(L)/Alr(L)/Resp(Y)
1220     uM231NULL [231] NULL,
1221
1222     -- STATE TOP OF DESCENT
1223     -- Urg(L)/Alr(L)/Resp(Y)
1224     uM232NULL [232] NULL,
1225
1226     -- USE OF LOGICAL ACKNOWLEDGMENT PROHIBITED
1227     -- Urg(N)/Alr(M)/Resp(N)
1228     uM233NULL [233] NULL,
1229
1230     -- FLIGHT PLAN NOT HELD
1231     -- Urg(L)/Alr(L)/Resp(N)
1232     uM234NULL [234] NULL,
1233
1234     -- ROGER 7500
1235     -- Urg(U)/Alr(H)/Resp(N)
1236     uM235NULL [235] NULL,
1237
1238     -- LEAVE CONTROLLED AIRSPACE
1239     -- Urg(N)/Alr(M)/Resp(W/U)
1240     uM236NULL [236] NULL,
1241     ...,
1242
1243     -- REQUEST AGAIN WITH NEXT UNIT
1244     -- Urg(N)/Alr(L)/Resp(N)
1245     uM237NULL [237]NULL
1246 }
1247
1248 ------------------------------------------------------------------------------------
1249 -- Downlink message element
1250 -- ----------------------------------------------------------------------------------
1251 ATCDownlinkMsgElementId ::= CHOICE
1252 {
1253     -- WILCO
1254     -- Urg(N)/Alr(M)/Resp(N)
1255     dM0NULL [0] NULL,
1256
1257     --UNABLE
1258     -- Urg(N)/Alr(M)/Resp(N)
1259     dM1NULL [1] NULL,
1260
1261     -- STANDBY
1262     -- Urg(N)/Alr(M)/Resp(N)
1263     dM2NULL [2] NULL,
1264
1265     -- ROGER
1266     -- Urg(N)/Alr(M)/Resp(N)
1267     dM3NULL [3] NULL,
1268
1269     -- AFFIRM
1270     -- Urg(N)/Alr(M)/Resp(N)
1271     dM4NULL [4] NULL,
1272
1273     -- NEGATIVE
1274     -- Urg(N)/Alr(M)/Resp(N)
1275     dM5NULL [5] NULL,
1276
1277     -- REQUEST [level]
1278   -- Urg(N)/Alr(L)/Resp(Y)
1279     dM6Level  [6] Level,
1280
1281     -- REQUEST BLOCK [level] TO [level]
1282   -- Urg(N)/Alr(L)/Resp(Y)
1283     dM7LevelLevel [7] LevelLevel,
1284
1285     -- REQUEST CRUISE CLIMB TO [level]
1286     -- Urg(N)/Alr(L)/Resp(Y)
1287     dM8Level [8] Level,
1288
1289     -- REQUEST CLIMB TO [level]
1290     -- Urg(N)/Alr(L)/Resp(Y)
1291     dM9Level  [9] Level,
1292
1293     -- REQUEST DESCENT TO [level]
1294     -- Urg(N)/Alr(L)/Resp(Y)
1295     dM10Level [10] Level,
1296
1297     -- AT [position] REQUEST CLIMB TO [level]
1298     -- Urg(N)/Alr(L)/Resp(Y)
1299     dM11PositionLevel [11] PositionLevel,
1300
1301     -- AT [position] REQUEST DESCENT TO [level]
1302     -- Urg(N)/Alr(L)/Resp(Y)
1303     dM12PositionLevel [12] PositionLevel,
1304
1305     -- AT [time] REQUEST CLIMB TO [level]
1306     -- Urg(N)/Alr(L)/Resp(Y)
1307     dM13TimeLevel [13] TimeLevel,
1308
1309     -- AT [time] REQUEST DESCENT TO [level]
1310     -- Urg(N)/Alr(L)/Resp(Y)
1311     dM14TimeLevel [14] TimeLevel,
1312
1313     -- REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
1314     -- Urg(N)/Alr(L)/Resp(Y)
1315     dM15DistanceSpecifiedDirection  [15] DistanceSpecifiedDirection,
1316
1317     -- AT [position] REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
1318     -- Urg(N)/Alr(L)/Resp(Y)
1319     dM16PositionDistanceSpecifiedDirection [16] PositionDistanceSpecifiedDirection,
1320
1321     -- AT [time] REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
1322     -- Urg(N)/Alr(L)/Resp(Y)
1323     dM17TimeDistanceSpecifiedDirection [17] TimeDistanceSpecifiedDirection,
1324
1325     -- REQUEST [speed]
1326     -- Urg(N)/Alr(L)/Resp(Y)
1327     dM18Speed [18] Speed,
1328
1329     -- REQUEST [speed] TO [speed]
1330     -- Urg(N)/Alr(L)/Resp(Y)
1331     dM19SpeedSpeed  [19] SpeedSpeed,
1332
1333     -- REQUEST VOICE CONTACT
1334     -- Urg(N)/Alr(L)/Resp(Y)
1335     dM20NULL  [20] NULL,
1336
1337     -- REQUEST VOICE CONTACT [frequency]
1338     -- Urg(N)/Alr(L)/Resp(Y)
1339     dM21Frequency [21] Frequency,
1340
1341     -- REQUEST DIRECT TO [position]
1342     -- Urg(N)/Alr(L)/Resp(Y)
1343     dM22Position  [22] Position,
1344
1345     -- REQUEST [procedureName]
1346     -- Urg(N)/Alr(L)/Resp(Y)
1347     dM23ProcedureName [23] ProcedureName,
1348
1349     -- REQUEST CLEARANCE [routeClearance]
1350     -- Urg(N)/Alr(L)/Resp(Y)
1351     dM24RouteClearance  [24] RouteClearanceIndex,
1352
1353     -- REQUEST [clearanceType] CLEARANCE
1354     -- Urg(N)/Alr(L)/Resp(Y)
1355     dM25ClearanceType [25] ClearanceType,
1356
1357     -- REQUEST WEATHER DEVIATION TO [position] VIA [routeClearance]
1358     -- Urg(N)/Alr(M)/Resp(Y)
1359     dM26PositionRouteClearance [26] PositionRouteClearanceIndex,
1360
1361     -- REQUEST WEATHER DEVIATION UP TO [specifiedDistance] [direction] OF ROUTE
1362     -- Urg(N)/Alr(M)/Resp(Y)
1363     dM27DistanceSpecifiedDirection [27] DistanceSpecifiedDirection,
1364
1365     -- LEAVING [level]
1366     -- Urg(N)/Alr(L)/Resp(N)
1367     dM28Level [28] Level,
1368
1369     -- CLIMBING TO [level]
1370     -- Urg(N)/Alr(L)/Resp(N)
1371     dM29Level [29]Level,
1372
1373     -- DESCENDING TO [level]
1374     -- Urg(N)/Alr(L)/Resp(N)
1375     dM30Level [30] Level,
1376
1377     -- PASSING [position]
1378     -- Urg(N)/Alr(L)/Resp(N)
1379     dM31Position  [31] Position,
1380
1381     -- PRESENT LEVEL [level]
1382     -- Urg(N)/Alr(L)/Resp(N)
1383     dM32Level [32] Level,
1384
1385     -- PRESENT POSITION [position]
1386     -- Urg(N)/Alr(L)/Resp(N)
1387     dM33Position [33] Position,
1388
1389     -- PRESENT SPEED [speed]
1390     -- Urg(N)/Alr(L)/Resp(N)
1391     dM34Speed [34] Speed,
1392
1393     -- PRESENT HEADING [degrees]
1394     -- Urg(N)/Alr(L)/Resp(N)
1395     dM35Degrees [35] Degrees,
1396
1397     -- PRESENT GROUND TRACK [degrees]
1398     -- Urg(N)/Alr(L)/Resp(N)
1399     dM36Degrees [36] Degrees,
1400
1401     -- MAINTAINING [level]
1402     -- Urg(N)/Alr(L)/Resp(N)
1403     dM37Level [37] Level,
1404
1405     -- ASSIGNED LEVEL [level]
1406     -- Urg(N)/Alr(M)/Resp(N)
1407     dM38Level [38] Level,
1408
1409     -- ASSIGNED SPEED [speed]
1410     -- Urg(N)/Alr(M)/Resp(N)
1411     dM39Speed [39] Speed,
1412
1413     -- ASSIGNED ROUTE [routeClearance]
1414     -- Urg(N)/Alr(M)/Resp(N)
1415     dM40RouteClearance [40] RouteClearanceIndex,
1416
1417     -- BACK ON ROUTE
1418     -- Urg(N)/Alr(M)/Resp(N)
1419     dM41NULL [41] NULL,
1420
1421     -- NEXT WAYPOINT [position]
1422     -- Urg(N)/Alr(L)/Resp(N)
1423     dM42Position [42] Position,
1424
1425     -- NEXT WAYPOINT ETA [time]
1426     -- Urg(N)/Alr(L)/Resp(N)
1427     dM43Time [43] Time,
1428
1429     -- ENSUING WAYPOINT [position]
1430     -- Urg(N)/Alr(L)/Resp(N)
1431     dM44Position [44] Position,
1432
1433     -- REPORTED WAYPOINT [position]
1434     -- Urg(N)/Alr(L)/Resp(N)
1435     dM45Position [45] Position,
1436
1437     -- REPORTED WAYPOINT [time]
1438     -- Urg(N)/Alr(L)/Resp(N)
1439     dM46Time [46] Time,
1440
1441     -- SQUAWKING [code]
1442     -- Urg(N)/Alr(L)/Resp(N)
1443     dM47Code [47] Code,
1444
1445     -- POSITION REPORT [positionreport]
1446     -- Urg(N)/Alr(M)/Resp(N)
1447     dM48PositionReport [48] PositionReport,
1448
1449     -- WHEN CAN WE EXPECT [speed]
1450     -- Urg(L)/Alr(L)/Resp(Y)
1451     dM49Speed [49] Speed,
1452
1453     -- WHEN CAN WE EXPECT [speed] TO [speed]
1454     -- Urg(L)/Alr(L)/Resp(Y)
1455     dM50SpeedSpeed [50] SpeedSpeed,
1456
1457     -- WHEN CAN WE EXPECT BACK ON ROUTE
1458     -- Urg(L)/Alr(L)/Resp(Y)
1459     dM51NULL [51] NULL,
1460
1461     -- WHEN CAN WE EXPECT LOWER LEVEL
1462     -- Urg(L)/Alr(L)/Resp(Y)
1463     dM52NULL [52] NULL,
1464
1465     -- WHEN CAN WE EXPECT HIGHER LEVEL Urg(L)/Alr(L)/Resp(Y)
1466     dM53NULL [53] NULL,
1467
1468     -- WHEN CAN WE EXPECT CRUISE CLIMB TO [level]
1469     -- Urg(L)/Alr(L)/Resp(Y)
1470     dM54Level [54] Level,
1471
1472     -- PAN PAN PAN
1473     -- Urg(U)/Alr(H)/Resp(Y)
1474     dM55NULL  [55] NULL,
1475
1476     -- MAYDAY MAYDAY MAYDAY
1477     -- Urg(D)/Alr(H)/Resp(Y)
1478     dM56NULL  [56] NULL,
1479
1480     -- [remainingFuel] OF FUEL REMAINING AND [personsonboard] PERSONS ON BOARD
1481     -- Urg(U)/Alr(H)/Resp(Y)
1482     dM57RemainingFuelPersonsOnBoard [57] RemainingFuelPersonsOnBoard,
1483
1484     -- CANCEL EMERGENCY
1485     -- Urg(U)/Alr(M)/Resp(Y)
1486     dM58NULL  [58] NULL,
1487
1488     -- DIVERTING TO [position] VIA [routeClearance]
1489     -- Urg(U)/Alr(H)/Resp(Y)
1490     dM59PositionRouteClearance  [59] PositionRouteClearanceIndex,
1491
1492     -- OFFSETTING [specifiedDistance] [direction] OF ROUTE
1493     -- Urg(U)/Alr(H)/Resp(Y)
1494     dM60DistanceSpecifiedDirection [60] DistanceSpecifiedDirection,
1495
1496     -- DESCENDING TO [level]
1497     -- Urg(U)/Alr(H)/Resp(Y)
1498     dM61Level [61] Level,
1499
1500     -- ERROR [errorInformation]
1501     -- Urg(U)/Alr(L)/Resp(N)
1502     dM62ErrorInformation [62] ErrorInformation,
1503
1504     -- NOT CURRENT DATA AUTHORITY
1505     -- Urg(L)/Alr(L)/Resp(N)
1506     dM63NULL [63] NULL,
1507
1508     -- [facilitydesignation]
1509     -- Urg(L)/Alr(L)/Resp(N)
1510     dM64FacilityDesignation [64] FacilityDesignation,
1511
1512     --  DUE TO WEATHER
1513     -- Urg(L)/Alr(L)/Resp(N)
1514     dM65NULL [65] NULL,
1515
1516     -- DUE TO AIRCRAFT PERFORMANCE
1517     -- Urg(L)/Alr(L)/Resp(N)
1518     dM66NULL [66] NULL,
1519
1520     -- [freetext]
1521     -- Urg(N)/Alr(L)/Resp(N)
1522     dM67FreeText [67] FreeText,
1523
1524     -- [freetext]
1525     -- Urg(D)/Alr(H)/Resp(Y)
1526     dM68FreeText [68] FreeText,
1527
1528     -- REQUEST VMC DESCENT
1529     -- Urg(N)/Alr(L)/Resp(Y)
1530     dM69NULL [69] NULL,
1531
1532     -- REQUEST HEADING [degrees]
1533     -- Urg(N)/Alr(L)/Resp(Y)
1534     dM70Degrees [70] Degrees,
1535
1536     -- REQUEST GROUND TRACK [degrees]
1537     -- Urg(N)/Alr(L)/Resp(Y)
1538     dM71Degrees [71] Degrees,
1539
1540     -- REACHING [level]
1541     -- Urg(N)/Alr(L)/Resp(N)
1542     dM72Level [72] Level,
1543
1544     -- [versionnumber]
1545     -- Urg(L)/Alr(L)/Resp(N)
1546     dM73Versionnumber [73] VersionNumber,
1547
1548     -- REQUEST TO MAINTAIN OWN SEPARATION AND VMC
1549     -- Urg(L)/Alr(L)/Resp(Y)
1550     dM74NULL [74] NULL,
1551
1552     -- AT PILOTS DISCRETION
1553     -- Urg(L)/Alr(L)/Resp(N)
1554     dM75NULL [75] NULL,
1555
1556     -- REACHING BLOCK [level] TO [level]
1557     -- Urg(N)/Alr(L)/Resp(N)
1558     dM76LevelLevel [76] LevelLevel,
1559
1560     -- ASSIGNED BLOCK [level] TO [level]
1561     -- Urg(N)/Alr(M)/Resp(N)
1562     dM77LevelLevel  [77] LevelLevel,
1563
1564     -- AT [time] [distance] [tofrom] [position]
1565     -- Urg(N)/Alr(L)/Resp(N)
1566     dM78TimeDistanceToFromPosition  [78] TimeDistanceToFromPosition,
1567
1568     -- ATIS [atiscode]
1569     -- Urg(N)/Alr(L)/Resp(N)
1570     dM79AtisCode  [79] ATISCode,
1571
1572     -- DEVIATING UP TO [specifiedDistance] [direction] OF ROUTE
1573     -- Urg(U)/Alr(H)/Resp(Y)
1574     dM80DistanceSpecifiedDirection [80] DistanceSpecifiedDirection,
1575
1576     -- WE CAN ACCEPT [level] AT [time]
1577     -- Urg(L)/Alr(L)/Resp(N)
1578     dM81LevelTime [81] LevelTime,
1579
1580     -- WE CANNOT ACCEPT [level]
1581     -- Urg(L)/Alr(L)/Resp(N)
1582     dM82Level [82] Level,
1583
1584     -- WE CAN ACCEPT [speed] AT [time]
1585     -- Urg(L)/Alr(L)/Resp(N)
1586     dM83SpeedTime [83] SpeedTime,
1587
1588     -- WE CANNOT ACCEPT [speed]
1589     -- Urg(L)/Alr(L)/Resp(N)
1590     dM84Speed [84] Speed,
1591
1592     -- WE CAN ACCEPT [specifiedDistance] [direction] AT [time]
1593     -- Urg(L)/Alr(L)/Resp(N)
1594     dM85DistanceSpecifiedDirectionTime [85] DistanceSpecifiedDirectionTime,
1595
1596     -- WE CANNOT ACCEPT [specifiedDistance] [direction]
1597     -- Urg(L)/Alr(L)/Resp(N)
1598     dM86DistanceSpecifiedDirection  [86] DistanceSpecifiedDirection,
1599
1600     -- WHEN CAN WE EXPECT CLIMB TO [level]
1601     -- Urg(L)/Alr(L)/Resp(Y)
1602     dM87Level [87] Level,
1603
1604     -- WHEN CAN WE EXPECT DESCENT TO [level]
1605     --Urg(L)/Alr(L)/Resp(Y)
1606     dM88Level [88] Level,
1607
1608     -- MONITORING [unitname] [frequency]
1609     -- Urg(U)/Alr(M)/Resp(N)
1610     dM89UnitnameFrequency [89] UnitNameFrequency,
1611
1612     -- [freetext]
1613     -- Urg(N)/Alr(M)/Resp(N)
1614     dM90FreeText  [90] FreeText,
1615
1616     -- [freetext]
1617     -- Urg(N)/Alr(L)/Resp(Y)
1618     dM91FreeText  [91] FreeText,
1619
1620     -- [freetext]
1621     -- Urg(L)/Alr(L)/Resp(Y)
1622     dM92FreeText [92] FreeText,
1623
1624     -- [freetext]
1625     -- Urg(U)/Alr(H)/Resp(N)
1626     dM93FreeText [93] FreeText,
1627
1628     -- [freetext]
1629     -- Urg(D)/Alr(H)/Resp(N)
1630     dM94FreeText [94] FreeText,
1631
1632     -- [freetext]
1633     -- Urg(U)/Alr(M)/Resp(N)
1634     dM95FreeText [95] FreeText,
1635
1636     -- [freetext]
1637     -- Urg(U)/Alr(L)/Resp(N)
1638     dM96FreeText [96] FreeText,
1639
1640     -- [freetext]
1641     -- Urg(L)/Alr(L)/Resp(N)
1642     dM97FreeText [97] FreeText,
1643
1644     -- [freetext]
1645     -- Urg(N)/Alr(N)/Resp(N)
1646     dM98FreeText [98] FreeText,
1647
1648     -- CURRENT DATA AUTHORITY
1649     -- Urg(L)/Alr(L)/Resp(N)
1650     dM99NULL [99] NULL,
1651
1652     -- LOGICAL ACKNOWLEDGMENT
1653     -- Urg(N)/Alr(M)/Resp(N)
1654     dM100NULL [100] NULL,
1655
1656     -- REQUEST END OF SERVICE
1657     -- Urg(L)/Alr(L)/Resp(Y)
1658     dM101NULL [101] NULL,
1659
1660     -- LANDING REPORT
1661     -- Urg(N)/Alr(N)/Resp(N)
1662     dM102NULL [102] NULL,
1663
1664     -- CANCELLING IFR
1665     -- Urg(N)/Alr(L)/Resp(Y)
1666     dM103NULL [103] NULL,
1667
1668     -- ETA[position][time]
1669     -- Urg(L)/Alr(L)/Resp(N)
1670     dM104PositionTime [104] PositionTime,
1671
1672     -- ALTERNATE AERODROME[airport]
1673     -- Urg(L)/Alr(L)/Resp(N)
1674     dM105Airport [105] Airport,
1675
1676     -- PREFERRED LEVEL[level]
1677     -- Urg(L)/Alr(L)/Resp(N)
1678     dM106Level [106] Level,
1679
1680     -- NOT AUTHORIZED NEXT DATA AUTHORITY
1681     -- Urg(L)/Alr(L)/Resp(N)
1682     dM107NULL [107] NULL,
1683
1684     -- DE-ICING COMPLETE
1685     -- Urg(L)/Alr(L)/Resp(N)
1686     dM108NULL [108] NULL,
1687
1688     -- TOP OF DESCENT [time]
1689     -- Urg(L)/Alr(L)/Resp(N)
1690     dM109Time [109] Time,
1691
1692     -- TOP OF DESCENT [position]
1693     -- Urg(L)/Alr(L)/Resp(N)
1694     dM110Position [110] Position,
1695
1696     -- TOP OF DESCENT [time] [position]
1697     -- Urg(L)/Alr(L)/Resp(N)
1698     dM111TimePosition [111] TimePosition,
1699
1700     -- SQUAWKING 7500
1701     -- Urg(U)/Alr(H)/Resp(N)
1702     dM112NULL [112] NULL,
1703
1704     -- [speedType] [speedType] [speedType] SPEED [speed]
1705     -- Urg(N)/Alr(L)/Resp(N)
1706     dM113SpeedTypeSpeedTypeSpeedTypeSpeed [113] SpeedTypeSpeedTypeSpeedTypeSpeed,
1707
1708     ...
1709 }
1710
1711 AircraftAddress ::= BIT STRING (SIZE(24))
1712
1713 AircraftFlightIdentification ::= IA5String (SIZE (2..8))
1714
1715 Airport ::= IA5String (SIZE (4))
1716
1717 Altimeter ::= CHOICE
1718 {
1719     altimeterEnglish  [0] AltimeterEnglish,
1720     altimeterMetric [1] AltimeterMetric
1721 }
1722
1723 AltimeterEnglish ::= INTEGER (2200..3200)
1724 -- unit = Inches Mercury, Range (22.00 .. 32.00), resolution = 0.01
1725
1726 AltimeterMetric ::= INTEGER (7500..12500)
1727 -- unit = Hectopascal, Range (750.0..1250.0), resolution = 0.1
1728
1729 ATISCode ::= IA5String (SIZE (1))
1730
1731 ATSRouteDesignator ::= IA5String (SIZE (2..7))
1732
1733 ATWAlongTrackWaypoint ::= SEQUENCE
1734 {
1735     position    [0] Position,
1736     aTWDistance [1] ATWDistance,
1737     speed       [2] Speed             OPTIONAL,
1738     aTWLevels   [3] ATWLevelSequence  OPTIONAL
1739 }
1740
1741 ATWLevel ::= SEQUENCE
1742 {
1743     atw ATWLevelTolerance,
1744     level Level
1745 }
1746
1747 ATWLevelSequence ::= SEQUENCE SIZE (1..2) OF ATWLevel
1748
1749 ATWLevelTolerance ::= ENUMERATED
1750 {
1751     at        (0),
1752     atorabove (1),
1753     atorbelow (2)
1754 }
1755
1756 ATWDistance ::= SEQUENCE
1757 {
1758     atwDistanceTolerance  ATWDistanceTolerance,
1759     distance  Distance
1760 }
1761
1762 ATWDistanceTolerance ::= ENUMERATED
1763 {
1764     plus  (0),
1765     minus (1)
1766 }
1767
1768 ClearanceType ::= ENUMERATED
1769 {
1770     noneSpecified (0),
1771     approach      (1),
1772     departure     (2),
1773     further       (3),
1774     start-up      (4),
1775     pushback      (5),
1776     taxi          (6),
1777     take-off      (7),
1778     landing       (8),
1779     oceanic       (9),
1780     en-route      (10),
1781     downstream    (11),
1782     ...
1783 }
1784
1785 Code ::= SEQUENCE SIZE (4) OF CodeOctalDigit
1786
1787 CodeOctalDigit ::= INTEGER (0..7)
1788
1789 ControlledTime ::= SEQUENCE
1790 {
1791     time  Time,
1792     timeTolerance TimeTolerance
1793 }
1794
1795 Date ::= SEQUENCE
1796 {
1797     year  Year,
1798     month Month,
1799     day Day
1800 }
1801
1802 DateTimeGroup ::= SEQUENCE
1803 {
1804     date  Date,
1805     timehhmmss  Timehhmmss
1806 }
1807
1808 Day ::= INTEGER (1..31)
1809 --unit = Day, Range (1..31), resolution = 1
1810
1811 DegreeIncrement ::= INTEGER (1..20)
1812 --unit = Degree, Range (1..20), resolution = 1
1813
1814 Degrees ::= CHOICE
1815 {
1816     degreesMagnetic [0] DegreesMagnetic,
1817     degreesTrue     [1] DegreesTrue
1818 }
1819
1820 DegreesMagnetic ::= INTEGER (1..360)
1821 --unit = degree, Range (1..360), resolution = 1
1822
1823 DegreesTrue ::= INTEGER (1..360)
1824 --unit = degree, Range (1..360), resolution = 1
1825
1826 DepartureClearance ::= SEQUENCE
1827 {
1828     aircraftFlightIdentification  [0] AircraftFlightIdentification,
1829     clearanceLimit                [1] Position,
1830     flightInformation             [2] FlightInformation           OPTIONAL,
1831     furtherInstructions           [3] FurtherInstructions         OPTIONAL
1832 }
1833
1834 DepartureMinimumInterval ::= INTEGER (1..150)
1835 --unit = Minute, Range (0.1..15.0), resolution = 0.1
1836
1837 Direction ::= ENUMERATED
1838 {
1839     left        (0),
1840     right       (1),
1841     eitherSide  (2),
1842     north       (3),
1843     south       (4),
1844     east        (5),
1845     west        (6),
1846     northEast   (7),
1847     northWest   (8),
1848     southEast   (9),
1849     southWest   (10)
1850 }
1851
1852 DirectionDegrees ::= SEQUENCE
1853 {
1854     direction Direction,
1855     degrees Degrees
1856 }
1857
1858 Distance ::= CHOICE
1859 {
1860     distanceNm  [0] DistanceNm,
1861     distanceKm  [1] DistanceKm
1862 }
1863
1864
1865 DistanceKm ::= INTEGER (0..8000)
1866 --  unit = Kilometer, Range (0..2000), resolution = 0.25
1867
1868 DistanceNm ::= INTEGER (0..9999)
1869 --  unit = Nautical Mile, Range (0..999.9), resolution = 0.1
1870
1871 DistanceSpecified ::= CHOICE
1872 {
1873     distanceSpecifiedNm [0] DistanceSpecifiedNm,
1874     distanceSpecifiedKm [1] DistanceSpecifiedKm
1875 }
1876
1877
1878 DistanceSpecifiedDirection ::= SEQUENCE
1879 {
1880     distanceSpecified DistanceSpecified,
1881     direction Direction
1882 }
1883
1884 DistanceSpecifiedDirectionTime ::= SEQUENCE
1885 {
1886     distanceSpecifiedDirection  DistanceSpecifiedDirection,
1887     time  Time
1888 }
1889
1890 DistanceSpecifiedKm ::= INTEGER (1..500)
1891 --  unit = Kilometer, Range (1..500), resolution = 1
1892
1893 DistanceSpecifiedNm ::= INTEGER (1..250)
1894 --  unit = Nautical Mile, Range (1..250), resolution = 1
1895
1896 ErrorInformation ::= ENUMERATED
1897 {
1898     unrecognizedMsgReferenceNumber    (0),
1899     logicalAcknowledgmentNotAccepted  (1),
1900     insufficientResources             (2),
1901     invalidMessageElementCombination  (3),
1902     invalidMessageElement             (4),
1903     ...
1904 }
1905
1906 Facility ::= CHOICE{
1907     noFacility            [0] NULL,
1908     facilityDesignation   [1] FacilityDesignation
1909 }
1910
1911 FacilityDesignation ::= IA5String (SIZE (4..8))
1912
1913 FacilityFunction ::= ENUMERATED
1914 {
1915     center            (0),
1916     approach          (1),
1917     tower             (2),
1918     final             (3),
1919     groundControl     (4),
1920     clearanceDelivery (5),
1921     departure         (6),
1922     control           (7),
1923     radio             (8),
1924     ...
1925 }
1926
1927 FacilityDesignationAltimeter ::= SEQUENCE
1928 {
1929     facilityDesignation FacilityDesignation,
1930     altimeter Altimeter
1931 }
1932
1933 FacilityDesignationATISCode ::= SEQUENCE
1934 {
1935     facilityDesignation FacilityDesignation,
1936     aTISCode  ATISCode
1937 }
1938
1939 FacilityName ::= IA5String (SIZE (3..18))
1940
1941 Fix ::= IA5String (SIZE (1..5))
1942
1943 FixName ::= SEQUENCE
1944 {
1945     name    [0] Fix,
1946     latlon  [1] LatitudeLongitude OPTIONAL
1947 }
1948
1949 FlightInformation ::= CHOICE
1950 {
1951     routeOfFlight   [0] RouteInformation,
1952     levelsOfFlight  [1] LevelsOfFlight,
1953     routeAndLevels  [2] RouteAndLevels
1954 }
1955
1956 FreeText ::= IA5String (SIZE (1..256))
1957
1958 Frequency ::= CHOICE
1959 {
1960     frequencyhf         [0] Frequencyhf,
1961     frequencyvhf        [1] Frequencyvhf,
1962     frequencyuhf        [2] Frequencyuhf,
1963     frequencysatchannel [3] Frequencysatchannel
1964 }
1965
1966 Frequencyhf ::= INTEGER (2850..28000)
1967 --  unit = Kilohertz, Range (2850..28000), resolution = 1
1968
1969 Frequencysatchannel ::= NumericString (SIZE (12))
1970 --  Frequencysatchannel corresponds to a 12 digit telephone number
1971
1972 Frequencyuhf ::= INTEGER (9000..15999)
1973 --  unit = Megahertz, Range (225.000..399.975), resolution = 0.025
1974
1975 Frequencyvhf ::= INTEGER (23600..27398)
1976 --  unit = Megahertz, Range (118.000..136.990), resolution = 0.005
1977
1978 FurtherInstructions ::= SEQUENCE
1979 {
1980     code                [0] Code              OPTIONAL,
1981     frequencyDeparture  [1] UnitNameFrequency OPTIONAL,
1982     clearanceExpiryTime [2] Time              OPTIONAL,
1983     airportDeparture    [3] Airport           OPTIONAL,
1984     airportDestination  [4] Airport           OPTIONAL,
1985     timeDeparture       [5] TimeDeparture     OPTIONAL,
1986     runwayDeparture     [6] Runway            OPTIONAL,
1987     revisionNumber      [7] RevisionNumber    OPTIONAL,
1988     aTISCode            [8] ATISCode          OPTIONAL
1989 }
1990
1991
1992 Holdatwaypoint ::= SEQUENCE
1993 {
1994     position                [0] Position,
1995     holdatwaypointspeedlow  [1] Speed       OPTIONAL,
1996     aTWlevel                [2] ATWLevel    OPTIONAL,
1997     holdatwaypointspeedhigh [3] Speed       OPTIONAL,
1998     direction               [4] Direction   OPTIONAL,
1999     degrees                 [5] Degrees     OPTIONAL,
2000     eFCtime                 [6] Time        OPTIONAL,
2001     legtype                 [7] LegType     OPTIONAL
2002 }
2003
2004 HoldClearance ::= SEQUENCE
2005 {
2006     position  [0] Position,
2007     level     [1] Level,
2008     degrees   [2] Degrees,
2009     direction [3] Direction,
2010     legType   [4] LegType       OPTIONAL
2011 }
2012
2013
2014 Humidity ::= INTEGER (0..100)
2015 --  unit = Percent humidity, Range (0..100), resolution = 1
2016
2017 InterceptCourseFrom ::= SEQUENCE
2018 {
2019     fromSelection InterceptCourseFromSelection,
2020     degrees       Degrees
2021 }
2022
2023 InterceptCourseFromSelection ::= CHOICE
2024 {
2025     publishedIdentifier       [0] PublishedIdentifier,
2026     latitudeLongitude         [1] LatitudeLongitude,
2027     placeBearingPlaceBearing  [2] PlaceBearingPlaceBearing,
2028     placeBearingDistance      [3] PlaceBearingDistance
2029 }
2030
2031 Icing ::= ENUMERATED
2032 {
2033     reserved  (0),
2034     light     (1),
2035     moderate  (2),
2036     severe    (3)
2037 }
2038
2039
2040 Latitude ::= SEQUENCE
2041 {
2042     latitudeType      LatitudeType,
2043     latitudeDirection LatitudeDirection
2044 }
2045
2046 LatitudeDegrees ::= INTEGER (0..90000)
2047 -- unit = Degree, Range (0..90), resolution = 0.001
2048
2049 LatitudeDegreesMinutes ::= SEQUENCE
2050 {
2051     latitudeWholeDegrees  LatitudeWholeDegrees,
2052     minutesLatLon         MinutesLatLon
2053 }
2054
2055 LatitudeDegreesMinutesSeconds ::= SEQUENCE
2056 {
2057     latitudeWholeDegrees  LatitudeWholeDegrees,
2058     latlonWholeMinutes    LatLonWholeMinutes,
2059     secondsLatLon         SecondsLatLon
2060 }
2061
2062 LatitudeDirection ::= ENUMERATED
2063 {
2064     north (0),
2065     south (1)
2066 }
2067
2068 LatitudeWholeDegrees ::= INTEGER (0..89)
2069 -- unit = Degree, Range (0..89), resolution = 1
2070
2071 LatitudeLongitude ::= SEQUENCE
2072 {
2073     latitude  [0] Latitude  OPTIONAL,
2074     longitude [1] Longitude OPTIONAL
2075 }
2076
2077 LatitudeReportingPoints ::= SEQUENCE
2078 {
2079     latitudeDirection LatitudeDirection,
2080     latitudeDegrees   LatitudeDegrees
2081 }
2082
2083 LatitudeType ::= CHOICE
2084 {
2085     latitudeDegrees         [0] LatitudeDegrees,
2086     latitudeDegreesMinutes  [1] LatitudeDegreesMinutes,
2087     latitudeDMS             [2] LatitudeDegreesMinutesSeconds
2088 }
2089
2090 LatLonWholeMinutes ::= INTEGER (0..59)
2091 -- unit = Minute, Range (0..59), resolution = 1
2092
2093 LatLonReportingPoints ::= CHOICE
2094 {
2095     latitudeReportingPoints   [0] LatitudeReportingPoints,
2096     longitudeReportingPoints  [1] LongitudeReportingPoints
2097 }
2098
2099 LegDistance ::= CHOICE
2100 {
2101     legDistanceEnglish  [0] LegDistanceEnglish,
2102     legDistanceMetric   [1] LegDistanceMetric
2103 }
2104
2105 LegDistanceEnglish ::= INTEGER (0..50)
2106 -- unit = Nautical Mile, Range (0..50), resolution = 1
2107
2108 LegDistanceMetric ::= INTEGER (1..128)
2109 -- unit = Kilometer, Range (1..128), resolution = 1
2110
2111 LegTime ::= INTEGER (0..10)
2112 --unit = Minute, Range (0..10), resolution = 1
2113
2114 LegType ::= CHOICE
2115 {
2116     legDistance [0] LegDistance,
2117     legTime     [1] LegTime
2118 }
2119
2120 Level ::= CHOICE
2121 {
2122     singleLevel [0] LevelType,
2123     blockLevel  [1] SEQUENCE SIZE (2) OF LevelType
2124 }
2125
2126 LevelFeet ::= INTEGER (-60..7000)
2127 --unit = Feet, Range (-600..70000), resolution = 10
2128
2129 LevelFlightLevel ::= INTEGER (30..700)
2130 --unit = Level (100 Feet), Range (030..700), resolution = 1
2131
2132 LevelFlightLevelMetric ::= INTEGER (100..2500)
2133 --unit = Level (10 Meters), Range (100..2500), resolution = 1
2134 LevelLevel ::= SEQUENCE SIZE (2) OF Level
2135 LevelMeters ::= INTEGER (-30..25000)
2136 --unit = Meter, Range (-30..25000), resolution = 1
2137
2138 LevelPosition ::= SEQUENCE
2139 {
2140     level     Level,
2141     position  Position
2142 }
2143
2144 LevelProcedureName ::= SEQUENCE
2145 {
2146     level         Level,
2147     procedureName ProcedureName
2148 }
2149
2150 LevelsOfFlight ::= CHOICE
2151 {
2152     level               [0] Level,
2153     procedureName       [1] ProcedureName,
2154     levelProcedureName  [2] LevelProcedureName
2155 }
2156
2157 LevelSpeed ::= SEQUENCE
2158 {
2159     level Level,
2160     speed SpeedSpeed
2161 }
2162
2163 LevelSpeedSpeed ::= SEQUENCE
2164 {
2165     level   Level,
2166     speeds  SpeedSpeed
2167 }
2168
2169 LevelTime ::= SEQUENCE
2170 {
2171     level Level,
2172     time  Time
2173 }
2174
2175 LevelType ::= CHOICE
2176 {
2177     levelFeet               [0] LevelFeet,
2178     levelMeters             [1] LevelMeters,
2179     levelFlightLevel        [2] LevelFlightLevel,
2180     levelFlightLevelMetric  [3] LevelFlightLevelMetric
2181 }
2182
2183 Longitude ::= SEQUENCE
2184 {
2185     longitudeType       LongitudeType,
2186     longitudeDirection  LongitudeDirection
2187 }
2188
2189 LongitudeDegrees ::= INTEGER (0..180000)
2190 --unit = Degree, Range (0..180), resolution = 0.001
2191
2192 LongitudeDegreesMinutes ::= SEQUENCE
2193 {
2194     longitudeWholeDegrees LongitudeWholeDegrees,
2195     minutesLatLon         MinutesLatLon
2196 }
2197
2198 LongitudeDegreesMinutesSeconds ::= SEQUENCE
2199 {
2200     longitudeWholeDegrees LongitudeWholeDegrees,
2201     latLonWholeMinutes    LatLonWholeMinutes,
2202     secondsLatLon         SecondsLatLon
2203 }
2204
2205 LongitudeDirection ::= ENUMERATED
2206 {
2207     east  (0),
2208     west  (1)
2209 }
2210
2211 LongitudeWholeDegrees ::= INTEGER (0..179)
2212 -- unit = Degree, Range (0..179), resolution = 1
2213
2214 LongitudeReportingPoints ::= SEQUENCE
2215 {
2216     longitudeDirection  LongitudeDirection,
2217     longitudeDegrees    LongitudeDegrees
2218 }
2219
2220 LongitudeType ::= CHOICE
2221 {
2222     longitudeDegrees        [0] LongitudeDegrees,
2223     longitudeDegreesMinutes [1] LongitudeDegreesMinutes,
2224     longitudeDMS            [2] LongitudeDegreesMinutesSeconds
2225 }
2226
2227 MinutesLatLon ::= INTEGER (0..5999)
2228 --unit = Minute, Range (0..59.99), resolution = 0.01
2229
2230 Month ::= INTEGER (1..12)
2231 --unit = 1 Month, Range (1..12), resolution = 1
2232
2233 Navaid ::= SEQUENCE
2234 {
2235     name    [0] NavaidName,
2236     latlon  [1] LatitudeLongitude OPTIONAL
2237 }
2238
2239 NavaidName ::= IA5String (SIZE (1..4))
2240
2241 PersonsOnBoard ::= INTEGER (1..1024)
2242
2243 PlaceBearing ::= SEQUENCE
2244 {
2245     publishedIdentifier PublishedIdentifier,
2246     degrees             Degrees
2247 }
2248
2249 PlaceBearingDistance ::= SEQUENCE
2250 {
2251     publishedIdentifier PublishedIdentifier,
2252     degrees             Degrees,
2253     distance            Distance
2254 }
2255
2256 PlaceBearingPlaceBearing ::= SEQUENCE SIZE (2) OF PlaceBearing
2257
2258 Position ::= CHOICE
2259 {
2260     fixName               [0] FixName,
2261     navaid                [1] Navaid,
2262     airport               [2] Airport,
2263     latitudeLongitude     [3] LatitudeLongitude,
2264     placeBearingDistance  [4] PlaceBearingDistance
2265 }
2266
2267 PositionDegrees ::= SEQUENCE
2268 {
2269     position  Position,
2270     degrees   Degrees
2271 }
2272
2273
2274 PositionDistanceSpecifiedDirection ::= SEQUENCE
2275 {
2276     position  Position,
2277     distanceSpecifiedDirection  DistanceSpecifiedDirection
2278 }
2279
2280 PositionLevel ::= SEQUENCE
2281 {
2282     position  Position,
2283     level     Level
2284 }
2285
2286 PositionLevelLevel ::= SEQUENCE
2287 {
2288     position  Position,
2289     levels  LevelLevel
2290 }
2291
2292 PositionLevelSpeed ::= SEQUENCE
2293 {
2294     positionlevel PositionLevel,
2295     speed         Speed
2296 }
2297
2298 PositionPosition ::= SEQUENCE SIZE (2) OF Position
2299
2300 PositionProcedureName ::= SEQUENCE
2301 {
2302     position      Position,
2303     procedureName ProcedureName
2304 }
2305
2306 PositionReport ::= SEQUENCE
2307 {
2308     positioncurrent         [0]   Position,
2309     timeatpositioncurrent   [1]   Time,
2310     level                   [2]   Level,
2311     fixnext                 [3]   Position        OPTIONAL,
2312     timeetaatfixnext        [4]   Time            OPTIONAL,
2313     fixnextplusone          [5]   Position        OPTIONAL,
2314     timeetaatdestination    [6]   Time            OPTIONAL,
2315     remainingFuel           [7]   RemainingFuel   OPTIONAL,
2316     temperature             [8]   Temperature     OPTIONAL,
2317     winds                   [9]   Winds           OPTIONAL,
2318     turbulence              [10]  Turbulence      OPTIONAL,
2319     icing                   [11]  Icing           OPTIONAL,
2320     speed                   [12]  Speed           OPTIONAL,
2321     speedground             [13]  SpeedGround     OPTIONAL,
2322     verticalChange          [14]  VerticalChange  OPTIONAL,
2323     trackAngle              [15]  Degrees         OPTIONAL,
2324     heading                 [16]  Degrees         OPTIONAL,
2325     distance                [17]  Distance        OPTIONAL,
2326     humidity                [18]  Humidity        OPTIONAL,
2327     reportedWaypointPosition[19]  Position        OPTIONAL,
2328     reportedWaypointTime    [20]  Time            OPTIONAL,
2329     reportedWaypointLevel   [21]  Level           OPTIONAL
2330 }
2331
2332 PositionRouteClearanceIndex ::= SEQUENCE
2333 {
2334     position            Position,
2335     routeClearanceIndex RouteClearanceIndex
2336 }
2337
2338 PositionSpeed ::= SEQUENCE
2339 {
2340     position  Position,
2341     speed     Speed
2342 }
2343
2344 PositionSpeedSpeed ::= SEQUENCE
2345 {
2346     position  Position,
2347     speeds    SpeedSpeed
2348 }
2349
2350 PositionTime ::= SEQUENCE
2351 {
2352     position  Position,
2353     time      Time
2354 }
2355
2356 PositionTimeLevel ::= SEQUENCE
2357 {
2358     positionTime  PositionTime,
2359     level Level
2360 }
2361
2362 PositionTimeTime ::= SEQUENCE
2363 {
2364     position  Position,
2365     times     TimeTime
2366 }
2367
2368 PositionUnitNameFrequency ::= SEQUENCE
2369 {
2370     position  Position,
2371     unitname  UnitName,
2372   frequency Frequency
2373 }
2374
2375 Procedure ::= IA5String (SIZE (1..20))
2376
2377 ProcedureName ::= SEQUENCE
2378 {
2379     type        [0] ProcedureType,
2380     procedure   [1] Procedure,
2381     transition  [2] ProcedureTransition OPTIONAL
2382 }
2383
2384 ProcedureTransition ::= IA5String (SIZE (1..5))
2385
2386 ProcedureType ::= ENUMERATED
2387 {
2388     arrival   (0),
2389     approach  (1),
2390     departure (2)
2391 }
2392
2393 PublishedIdentifier ::= CHOICE
2394 {
2395     fixName [0] FixName,
2396     navaid  [1] Navaid
2397 }
2398
2399 RemainingFuel ::= Time
2400
2401 RemainingFuelPersonsOnBoard ::= SEQUENCE
2402 {
2403     remainingFuel   RemainingFuel,
2404     personsOnBoard  PersonsOnBoard
2405 }
2406
2407 ReportingPoints ::= SEQUENCE
2408 {
2409     latLonReportingPoints [0] LatLonReportingPoints,
2410     degreeIncrement       [1] DegreeIncrement         OPTIONAL
2411 }
2412
2413 RevisionNumber ::= INTEGER (1..16)
2414
2415 RouteAndLevels ::= SEQUENCE
2416 {
2417     routeOfFlight   RouteInformation,
2418     levelsOfFlight  LevelsOfFlight
2419 }
2420
2421 RouteClearance ::= SEQUENCE
2422 {
2423     airportDeparture            [0] Airport                                     OPTIONAL,
2424     airportDestination          [1] Airport                                     OPTIONAL,
2425     runwayDeparture             [2] Runway                                      OPTIONAL,
2426     procedureDeparture          [3] ProcedureName                               OPTIONAL,
2427     runwayArrival               [4] Runway                                      OPTIONAL,
2428     procedureApproach           [5] ProcedureName                               OPTIONAL,
2429     procedureArrival            [6] ProcedureName                               OPTIONAL,
2430     routeInformations           [7] SEQUENCE SIZE (1..128)  OF RouteInformation OPTIONAL,
2431     routeInformationAdditional  [8] RouteInformationAdditional                  OPTIONAL
2432 }
2433
2434 RouteClearanceIndex ::= INTEGER (1..2)
2435 -- RouteClearanceIndex identifies the position of the RouteClearance data
2436 -- in the ASN.1 type for
2437 -- ATC UplinkMessage, constrained Data, routeClearance Data
2438 -- ATC DownlinkMessage, constrained Data, routeClearance Data
2439
2440 RouteInformation ::= CHOICE
2441 {
2442     publishedIdentifier       [0] PublishedIdentifier,
2443     latitudeLongitude         [1] LatitudeLongitude,
2444     placeBearingPlaceBearing  [2] PlaceBearingPlaceBearing,
2445     placeBearingDistance      [3] PlaceBearingDistance,
2446     aTSRouteDesignator        [4] ATSRouteDesignator
2447 }
2448
2449
2450 RouteInformationAdditional ::= SEQUENCE
2451 {
2452     aTWAlongTrackWaypoints  [0] SEQUENCE SIZE (1..8) OF ATWAlongTrackWaypoint   OPTIONAL,
2453     reportingpoints         [1] ReportingPoints                                 OPTIONAL,
2454     interceptCourseFroms    [2] SEQUENCE SIZE (1..4) OF InterceptCourseFrom     OPTIONAL,
2455     holdAtWaypoints         [3] SEQUENCE SIZE (1..8) OF Holdatwaypoint          OPTIONAL,
2456     waypointSpeedLevels     [4] SEQUENCE SIZE (1..32) OF WaypointSpeedLevel     OPTIONAL,
2457     rTARequiredTimeArrivals [5] SEQUENCE SIZE (1..32) OF RTARequiredTimeArrival OPTIONAL
2458 }
2459
2460 RTARequiredTimeArrival ::= SEQUENCE
2461 {
2462     position      [0] Position,
2463     rTATime       [1] RTATime,
2464     rTATolerance  [2] RTATolerance  OPTIONAL
2465 }
2466
2467 RTATime ::= SEQUENCE
2468 {
2469     time            Time,
2470     timeTolerance   TimeTolerance
2471 }
2472
2473 RTATolerance ::= INTEGER (1..150)
2474 --unit= Minute, Range (0.1..15.0), resolution = 0.1
2475
2476 Runway ::= SEQUENCE
2477 {
2478     direction     RunwayDirection,
2479     configuration RunwayConfiguration
2480 }
2481
2482 RunwayDirection ::= INTEGER (1..36)
2483
2484 RunwayConfiguration ::= ENUMERATED
2485 {
2486     left    (0),
2487     right   (1),
2488     center  (2),
2489     none    (3)
2490 }
2491
2492 RunwayRVR ::= SEQUENCE
2493 {
2494     runway  Runway,
2495     rVR     RVR
2496 }
2497
2498 RVR ::= CHOICE
2499 {
2500     rVRFeet   [0] RVRFeet,
2501     rVRMeters [1] RVRMeters
2502 }
2503
2504 RVRFeet ::= INTEGER (0..6100)
2505 -- unit = Feet, Range (0..6100), resolution = 1
2506
2507 RVRMeters ::= INTEGER (0..1500)
2508 -- unit = Meters (0..1500), resolution = 1
2509
2510 SecondsLatLon ::= INTEGER (0..59)
2511 --unit = Second, Range (0.. 59), resolution = 1
2512
2513 Speed ::= CHOICE
2514 {
2515     speedIndicated        [0] SpeedIndicated,
2516     speedIndicatedMetric  [1] SpeedIndicatedMetric,
2517     speedTrue             [2] SpeedTrue,
2518     speedTrueMetric       [3] SpeedTrueMetric,
2519     speedGround           [4] SpeedGround,
2520     speedGroundMetric     [5] SpeedGroundMetric,
2521     speedMach             [6] SpeedMach
2522 }
2523
2524 SpeedIndicated ::= INTEGER (0..400)
2525 -- unit = Knots, Range (0..400), resolution = 1
2526
2527 SpeedIndicatedMetric ::= INTEGER (0..800)
2528 -- unit = Kilometers/Hour, Range (0..800), resolution = 1
2529
2530 SpeedGround ::= INTEGER (-50..2000)
2531 -- unit = Knots, Range (-50..2000), resolution = 1
2532
2533 SpeedGroundMetric ::= INTEGER (-100..4000)
2534 -- unit = Kilometers/Hour, Range (-100..4000), resolution = 1
2535
2536 SpeedMach ::= INTEGER (500..4000)
2537 -- unit = Mach Range (0.5 to 4.0), resolution = 0.001
2538
2539 SpeedSpeed ::= SEQUENCE SIZE (2) OF Speed
2540 SpeedTime ::= SEQUENCE
2541 {
2542   speed Speed,
2543   time  Time
2544 }
2545
2546 SpeedTrue ::= INTEGER (0..2000)
2547 -- unit = Knots, Range (0..2000), resolution = 1
2548
2549 SpeedTrueMetric ::= INTEGER (0..4000)
2550 -- unit = Kilometers/Hour, Range (0..4000), resolution = 1
2551
2552 SpeedType ::= ENUMERATED
2553 {
2554     noneSpecified (0),
2555     indicated     (1),
2556     true          (2),
2557     ground        (3),
2558     mach          (4),
2559     approach      (5),
2560     cruise        (6),
2561     minimum       (7),
2562     maximum       (8),
2563     ...
2564 }
2565
2566 SpeedTypeSpeedTypeSpeedType ::= SEQUENCE SIZE (3) OF SpeedType
2567
2568 SpeedTypeSpeedTypeSpeedTypeSpeed ::= SEQUENCE
2569 {
2570     speedTypes  SpeedTypeSpeedTypeSpeedType,
2571     speed       Speed
2572 }
2573
2574 Temperature ::= INTEGER (-100..100)
2575 -- unit = Degree Celsius, Range (-100..100), resolution = 1
2576
2577 Time ::= SEQUENCE
2578 {
2579     hours   TimeHours,
2580     minutes TimeMinutes
2581 }
2582
2583 TimeLevel ::= SEQUENCE
2584 {
2585     time  Time,
2586     level Level
2587 }
2588
2589 TimeDeparture ::= SEQUENCE
2590 {
2591     timeDepartureAllocated          [0] Time                      OPTIONAL,
2592     timeDepartureControlled         [1] ControlledTime            OPTIONAL,
2593     timeDepartureClearanceExpected  [2] Time                      OPTIONAL,
2594     departureMinimumInterval        [3] DepartureMinimumInterval  OPTIONAL
2595 }
2596
2597
2598 TimeDistanceSpecifiedDirection ::= SEQUENCE
2599 {
2600     time                        Time,
2601     distanceSpecifiedDirection  DistanceSpecifiedDirection
2602 }
2603
2604 TimeDistanceToFromPosition ::= SEQUENCE
2605 {
2606     time      Time,
2607   distance  Distance,
2608   tofrom    ToFrom,
2609   position  Position
2610 }
2611
2612 Timehhmmss ::= SEQUENCE
2613 {
2614   hoursminutes  Time,
2615   seconds       TimeSeconds
2616 }
2617
2618 TimeHours ::= INTEGER (0..23)
2619 -- unit = Hour, Range (0..23), resolution = 1
2620
2621 TimeUnitNameFrequency ::= SEQUENCE
2622 {
2623     time      Time,
2624     unitName  UnitName,
2625     frequency Frequency
2626 }
2627
2628 TimeMinutes ::= INTEGER (0..59)
2629 -- unit = Minute, Range (0..59), resolution = 1
2630
2631 TimePosition ::= SEQUENCE
2632 {
2633     time      Time,
2634     position  Position
2635 }
2636
2637 TimePositionLevel ::= SEQUENCE
2638 {
2639     timeposition  TimePosition,
2640     level         Level
2641 }
2642
2643 TimePositionLevelSpeed ::= SEQUENCE
2644 {
2645     timeposition  TimePosition,
2646     levelspeed    LevelSpeed
2647 }
2648
2649 TimeSeconds ::= INTEGER (0..59)
2650 -- unit = Second, Range (0..59), resolution = 1
2651
2652 TimeSpeed ::= SEQUENCE
2653 {
2654     time  Time,
2655     speed Speed
2656 }
2657
2658 TimeSpeedSpeed ::= SEQUENCE
2659 {
2660     time        Time,
2661     speedspeed  SpeedSpeed
2662 }
2663
2664 TimeTime ::= SEQUENCE SIZE (2) OF Time
2665
2666 TimeToFromPosition ::= SEQUENCE
2667 {
2668     time      Time,
2669     tofrom    ToFrom,
2670     position  Position
2671 }
2672 TimeTolerance ::= ENUMERATED
2673 {
2674     at        (0),
2675     atorafter (1),
2676     atorbefore(2)
2677 }
2678
2679 ToFrom ::= ENUMERATED
2680 {
2681     to    (0),
2682     from  (1)
2683 }
2684
2685 ToFromPosition ::= SEQUENCE
2686 {
2687     toFrom    ToFrom,
2688     position  Position
2689 }
2690
2691 TrafficType ::= ENUMERATED
2692 {
2693     noneSpecified     (0),
2694     oppositeDirection (1),
2695     sameDirection     (2),
2696     converging        (3),
2697     crossing          (4),
2698     diverging         (5),
2699     ...
2700 }
2701
2702 Turbulence ::= ENUMERATED
2703 {
2704     light     (0),
2705     moderate  (1),
2706     severe    (2)
2707 }
2708
2709 UnitName ::= SEQUENCE
2710 {
2711     facilityDesignation [0] FacilityDesignation,
2712     facilityName        [1] FacilityName          OPTIONAL,
2713     facilityFunction    [2] FacilityFunction
2714 }
2715
2716 UnitNameFrequency ::= SEQUENCE
2717 {
2718     unitName  UnitName,
2719     frequency Frequency
2720 }
2721
2722 VersionNumber ::= INTEGER (0..15)
2723
2724 VerticalChange ::= SEQUENCE
2725 {
2726     direction VerticalDirection,
2727     rate      VerticalRate
2728 }
2729
2730 VerticalDirection ::= ENUMERATED
2731 {
2732     up    (0),
2733     down  (1)
2734 }
2735
2736 VerticalRate ::= CHOICE
2737 {
2738     verticalRateEnglish [0] VerticalRateEnglish,
2739     verticalRateMetric  [1] VerticalRateMetric
2740 }
2741
2742 VerticalRateEnglish ::= INTEGER (0..3000)
2743 -- unit = Feet/Minute, Range (0..30000), resolution = 10
2744
2745 VerticalRateMetric ::= INTEGER (0..1000)
2746 -- unit = Meters/Minute, Range (0..10000), resolution = 10
2747
2748 WaypointSpeedLevel ::= SEQUENCE
2749 {
2750     position  [0] Position,
2751     speed     [1] Speed             OPTIONAL,
2752     aTWLevels [2] ATWLevelSequence  OPTIONAL
2753 }
2754
2755 WindDirection ::= INTEGER (1..360)
2756 -- unit = Degree, Range (1..360), resolution = 1
2757
2758 Winds ::= SEQUENCE
2759 {
2760     direction WindDirection,
2761     speed     WindSpeed
2762 }
2763
2764 WindSpeed ::= CHOICE
2765 {
2766     windSpeedEnglish  [0] WindSpeedEnglish,
2767     windSpeedMetric   [1] WindSpeedMetric
2768 }
2769
2770 WindSpeedEnglish ::= INTEGER (0..255)
2771 -- unit = Knot, Range (0..255), resolution = 1
2772
2773 WindSpeedMetric ::= INTEGER (0..511)
2774 -- unit = Kilometer/Hour, Range (0..511), resolution = 1
2775
2776 Year ::= INTEGER (1996..2095)
2777 -- unit = Year, Range (1996..2095), resolution = 1
2778
2779 END
2780
2781
2782 --
2783 -- Editor modelines  -  https://www.wireshark.org/tools/modelines.html
2784 --
2785 -- Local variables:
2786 -- c-basic-offset: 4
2787 -- tab-width: 8
2788 -- indent-tabs-mode: nil
2789 -- End:
2790 --
2791 -- vi: set shiftwidth=4 tabstop=8 expandtab:
2792 -- :indentSize=4:tabSize=8:noTabs=true:
2793 --