All of the files mentioned below can be downloaded here
PACX will read and write several files to allow other applications to interact with it easily. There are currently three files supported by this system. They exist in the %localappdata%\PACX\IO folder.
FlightConfiguration.xml
When this file is written to, it can be used to pre-populate the Start Flight popup in PACX. This can be done either before PACX is opened or while it is running (PACX will detect the change in the file and re-load it). This information can also be saved to this file by pressing CTRL+S on the Start Flight popup.
Manifest.xml
The Manifest.xml file is written by PACX when a flight begins. It will contain all passenger information, as well as the flight itinerary.
FlightReport.xml
The FlightReport.xml file is written after a flight is completed. This can be used to gather information about the result of the flight (such as satisfaction or events that occurred).
Using the PACX Web XMl System
When a flight is submitted to our server, the original XML version is stored as well. Adding "/xml" to the flight report URL will cause the system to serve the report in raw XML form. For example, if the report was https://pacx.online/flight/TEST123, you could access the XML format of that flight by requesting https://pacx.online/flight/TEST123/xml.
Using the PACX Network API
PACX also hosts a server that allows for two-way, real-time communication. By default, it is hosted on port 9000. To simply usage of this system, we have provided a C++ and C# wrapper class. The class will attempt to read the Settings.xml file to determine the address and port of the PACX server and manages the socket code for you. You will provide two event handler functions, one for connection change notifications, and one for data receipt. The classes are below.
C#
PACXConnection.cs
C++
PACXConnection.h
PACXConnection.cpp
A breakdown of the network commands and responses are below.
The get commands will return an XML structure for the requested information.
get manifest
get events
get event <eventid>
get report
get inputeventmap
The subscription commands begin or end receipt of a particular data stream. The data will be provided in XML format once the appropriate event has occurred in PACX.
subscription <add/remove> <newevent/flightinformation/flightreport/usermessage/manifest/huddata/inputeventmap>
The invoke commands allow a network client to call various PACX functions/features or fire interaction events. This feature is what we use to allow in-cockpit controls to begin vocal interaction on PACX.
invoke <activatevocalinteraction/openinteractionmenu/summon>
fire <event string>
Event (All Events)
ID, int
Type, enum
Active, bool
Significant, bool
FriendlyString, string
Turbulence
TurbulenceSeverity, enum
ServiceSuspension
CancellationReason, enum
CancellationDisregarded, enum
PublicAddress
PublicAddressType, enum
PublicAddressSkipped, bool
NoticeableLanding
MedicalIssue
MedicalIssueType, enum
IsSevere, bool
InFlightService
InFlightServiceType, enum
InFlightServiceMeal, enum
InFlightServiceAborted, bool
ExtremeFlying
ExtremeFlyingSeverity, enum
ExtremeFlyingType, enum
UnsafeHandling
UnsafeHandlingType, enum
Diversion
DiversionReason, enum
DiversionDisregarded, bool
Delay
DelayReason, enum
DelayLength, enum
DelayAnnounced, bool
DelayOutcome, enum
BoardingIncident
BoardingIncidentType, enum
BoardingIncidentPassengerIndex, int
AircraftProblem
AircraftProblemType, enum
AircraftProblemAnnounced, bool
AircraftProblemComplete, bool
AheadOfSchedule
AheadOfScheduleAmount, enum
AheadOfScheduleAnnounced, bool
AheadOfScheduleDisregarded, bool
Crash