Configuration
The plugin is configured via CPDLC.json in the plugin directory.
Connection Settings
ServerEndpoint
URL of the CPDLC server WebSocket endpoint.
Example:
"ServerEndpoint": "http://localhost:5261/hubs/controller"
Stations
List of station identifiers this controller position will use. The plugin will connect to the server using these callsigns.
Example:
"Stations": ["YZZZ", "YXXX"]
Logging
LogLevel
Controls the verbosity of plugin logs. Valid values: Verbose, Debug, Information, Warning, Error.
Example:
"LogLevel": "Verbose"
Message Display
MaxCurrentMessages
Maximum number of current (active) messages to display per aircraft.
Example:
"MaxCurrentMessages": 50
MaxArchivedMessages
Maximum number of archived messages to display per aircraft.
Example:
"MaxArchivedMessages": 50
MaxDisplayMessageLength
Maximum character length for messages shown in the label items. Messages exceeding this length will be truncated with "...".
Example:
"MaxDisplayMessageLength": 40
MaxExtendedMessageLength
Maximum character length for messages shown in the extended message view. Messages exceeding this length will be truncated with "...".
Example:
"MaxExtendedMessageLength": 80
Uplink Messages
The UplinkMessages object defines the available CPDLC messages for the controller to send.
MasterMessages
Array of all available message templates. Each message has:
Id: Unique identifier matching ICAO Doc 10037Template: Message text with parameter placeholders in brackets (e.g.,[lev],[pos])Parameters: Array of parameter definitions withNameandTypeResponseType: Expected pilot response (WilcoUnable,Roger,AffirmativeNegative,NoResponse)
Example:
{
"Id": 20,
"Template": "CLIMB TO [lev]",
"Parameters": [
{ "Name": "lev", "Type": "Level" }
],
"ResponseType": "WilcoUnable"
}
Parameter Types
Level: Flight level or altitudePosition: Waypoint or fixTime: Time in HHMM formatSpeed: Airspeed (knots or Mach)Degree: Heading or track in degreesDirection: LEFT or RIGHTDistanceOffset: Distance in nautical milesRouteClearance: Route stringProcedureName: SID, STAR, or approach nameUnitName: ATC unit nameFrequency: Radio frequencyCode: Transponder codeAltimeter: Altimeter settingAtisCode: ATIS identifierFacilityDesignation: ICAO facility codeVerticalRate: Vertical rate in feet per minuteToFrom: TO or FROMFreeText: Arbitrary text
QuickAccessMessages
Array of messages shown in the quick access panel. Each entry references a MessageId from MasterMessages. Optionally includes DefaultParameters to pre-fill values and override ResponseType.
Example:
{
"MessageId": 169,
"DefaultParameters": {
"freetext": "REQUEST RECEIVED, RESPONSE WILL BE VIA VOICE"
},
"ResponseType": "Roger"
}
Groups
Array of message groups for organizing messages in the editor. Each group has:
Name: Group label shown in the UIMessages: Array of message references (with optionalDefaultParametersandResponseTypeoverrides)
Example:
{
"Name": "LEVEL",
"Messages": [
{ "MessageId": 19 },
{ "MessageId": 20 },
{ "MessageId": 23 }
]
}
Complete Example
{
"ServerEndpoint": "http://localhost:5261/hubs/controller",
"Stations": ["YZZZ", "YXXX"],
"LogLevel": "Verbose",
"MaxCurrentMessages": 50,
"MaxArchivedMessages": 50,
"MaxDisplayMessageLength": 40,
"MaxExtendedMessageLength": 80,
"UplinkMessages": {
"MasterMessages": [
{
"Id": 0,
"Template": "UNABLE",
"Parameters": [],
"ResponseType": "NoResponse"
},
{
"Id": 20,
"Template": "CLIMB TO [lev]",
"Parameters": [
{ "Name": "lev", "Type": "Level" }
],
"ResponseType": "WilcoUnable"
}
],
"QuickAccessMessages": [
{ "MessageId": 20 }
],
"Groups": [
{
"Name": "LEVEL",
"Messages": [
{ "MessageId": 20 }
]
}
]
}
}