Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Operations on Air Traffic Service (ATS) messages as defined in the ICAO 4444 edition 2016 standard.
TODO: consider builder as in AerodromeReport.
Relevant links
- data AtsMessage
- data ArrivalContent = ArrivalContent {}
- data DepartureContent = DepartureContent {}
- data DelayContent = DelayContent {}
- module Data.Icao.Lang
- module Data.Icao.Location
- module Data.Icao.OtherInformation
- module Data.Icao.SupplementaryInformation
- module Data.Icao.Time
- data AircraftIdentification
- data SsrCode
- data FlightRules
- data FlightType
- data AircraftType
- data WakeTurbulenceCategory
- data ComNavAppCapabilityCode
- data SurveillanceCapabilityCode
- mkAircraftIdentification :: MonadFail m => String -> m AircraftIdentification
- mkSsrCode :: MonadFail m => String -> m SsrCode
- mkAircraftType :: MonadFail m => String -> m AircraftType
- type Parser = ParsecT String () Identity
- data Error
- parse :: String -> Either Error AtsMessage
- parser :: Parser AtsMessage
Documentation
data AtsMessage Source #
ICAO 4444 ATS message.
Arr ArrivalContent | Arrival message. |
Dep DepartureContent | Departure message. |
Dla DelayContent | Delay message. |
data ArrivalContent Source #
Arrival message content. An arrival message shall be transmitted: upon reception of an arrival report by the ATS unit serving the arrival aerodrome, or when a controlled flight which has experienced failure of two-way communication has landed, by the aerodrome control tower at the arrival aerodrome.
ArrivalContent | |
|
data DepartureContent Source #
Departure message content. A departure message shall be transmitted by the ATS unit serving the departure aerodrome to all recipients of basic flight plan data.
DepartureContent | |
|
data DelayContent Source #
Delay message content. A delay message shall be transmitted when the departure of an aircraft, for which basic flight plan data has been sent, is delayed by more than 30 minutes after the estimated off-block time contained in the basic flight plan data.
DelayContent | |
|
module Data.Icao.Lang
module Data.Icao.Location
module Data.Icao.OtherInformation
module Data.Icao.Time
data AircraftIdentification Source #
Aircraft identification, a.k.a. call-sign, maximum of 7 uppercase/digit characters.
Secondary Surveillance Rada code, 4 octal digits.
data FlightRules Source #
Flight rules. Note: If the letter Y or Z is used, the point or points at which a change of flight rules is planned is to be shown as indicated in Field Type 15.
IFR | if it is intended that the entire flight will be operated under the IFR |
VFR | if it is intended that the entire flight will be operated under the VFR |
YFR | if the flight initially will be operated under the IFR followed by one or more subsequent changes of flight rules |
ZFR | if the flight initially will be operated under the VFR followed by one or more subsequent changes of flight rules |
data FlightType Source #
Type of flight
Scheduled | if scheduled air transport |
NonScheduled | if non-scheduled air transport |
General | if general aviation |
Military | if military |
Other | other flights |
data AircraftType Source #
Aircraft type, e.g. A320
data WakeTurbulenceCategory Source #
Wake Turbulence Category.
data ComNavAppCapabilityCode Source #
Code describing radiocommunication, navigation and approach aid equipment and capabilities.
N | no COMNAVapproach aid equipment for the route to be flown is carried, or the equipment is unserviceable |
S | Standard COMNAVapproach aid equipment for the route to be flown is carried and serviceable |
A | GBAS landing system |
B | PLV (APV with SBAS) |
C | LORAN C |
D | DME |
E1 | FMC WPR ACARS |
E2 | D-FIX ACARS |
E3 | PDC ACARS |
F | ADF |
G | GNSS |
H | HF RTF |
I | Intertial navaigation |
J1 | CPDLC ATN VDL Mode 2 |
J2 | CPDLC FANS 1/A HFDL |
J3 | CPDLC FANS 1/A VDL Mode A |
J4 | CPDLC FANS 1/A VDL Mode 2 |
J5 | CPDLC FANS 1/A SATCOM (INMARSAT) |
J6 | CPDLC FANS 1/A SATCOM (MTSAT) |
J7 | CPDLC FANS 1/A SATCOM (Iridium) |
K | MLS |
L | ILS |
M1 | ATC SATVOICE (INMARSAT) |
M2 | ATC SATVOICE (MTSAT) |
M3 | ATC SATVOICE (Iridium) |
O | VOR |
P1 | CPDLC RCP 400 |
P2 | CPDLC RCP 240 |
P3 | SATVOICE RCP 400 |
P4 | Reserved for RCP |
P5 | Reserved for RCP |
P6 | Reserved for RCP |
P7 | Reserved for RCP |
P8 | Reserved for RCP |
P9 | Reserved for RCP |
R | PBN approved |
T | TACAN |
U | UHF RTF |
V | VHF RTF |
W | RVSM approved |
X | MNPS approved |
Y | VHF with 8.33 kHz channel spacing capability |
Z | Other equipment carried or other capabilities |
data SurveillanceCapabilityCode Source #
Code describing surveillance equipment and capabilities.
NONE | no surveillance equipment for the route to be flown is carried, or the equipment is unserviceable |
MODE_A | Transponder - Mode A (4 digits — 4,096 codes) |
MODE_C | Transponder - Mode A (4 digits — 4,096 codes) and Mode C |
MODE_S_E | Transponder - Mode S, including aircraft identification, pressure-altitude and extended squitter (ADS-B) capability |
MODE_S_H | Transponder - Mode S, including aircraft identification, pressure-altitude and enhanced surveillance capability |
MODE_S_I | Transponder - Mode S, including aircraft identification, but no pressure-altitude capability |
MODE_S_L | Transponder - Mode S, including aircraft identification, pressure-altitude, extended squitter (ADS-B) and enhanced surveillance capability |
MODE_S_P | Transponder - Mode S, including pressure-altitude, but no aircraft identification capability |
MODE_S | Transponder - Mode S, including both pressure-altitude and aircraft identification capability |
MODE_S_X | Transponder - Mode S with neither aircraft identification nor pressure-altitude capability |
mkAircraftIdentification :: MonadFail m => String -> m AircraftIdentification Source #
AircraftIdentification
smart constructor. Fails if given identification is
not valid.
mkSsrCode :: MonadFail m => String -> m SsrCode Source #
SsrCode
smart constructor. Fails if given code value is not valid.
mkAircraftType :: MonadFail m => String -> m AircraftType Source #
AircraftType
smart constructor. Fails if given identification is
not valid.
Parser
Parsing error.
parse :: String -> Either Error AtsMessage Source #
Parses the given textual representation of an AtsMessage
.
return either an Error
(Left
) or the parsed AtsMessage
(Right
).
parser :: Parser AtsMessage Source #
AtsMessage
parser.