https://github.com/viralpickaxe/xplane-udp
XPlane UDP Client for Node.js
https://github.com/viralpickaxe/xplane-udp
flight-simulator library typescript udp
Last synced: 6 months ago
JSON representation
XPlane UDP Client for Node.js
- Host: GitHub
- URL: https://github.com/viralpickaxe/xplane-udp
- Owner: viralpickaxe
- License: mit
- Created: 2017-04-12T15:19:06.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-01T15:35:18.000Z (almost 9 years ago)
- Last Synced: 2025-04-13T14:32:31.255Z (11 months ago)
- Topics: flight-simulator, library, typescript, udp
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/xplane-udp
- Size: 25.4 KB
- Stars: 15
- Watchers: 2
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# XPlane UDP [](https://travis-ci.org/viralpickaxe/xplane-udp)
XPlane UDP Client for Node.js
## Requirements
- NodeJS (v6.X.X)
- Xplane 11
## Usage
```javascript
// Import XPlane class from the package
import { XPlaneClient } from "xplane-udp"
// Create a client on a specific port (this is a value you define in your xplane game settings)
const client = new XPlaneClient(49000)
// Start the UDP listener
client.start()
// Subscribe to the updated event
// This will fire at the rate at which you send UDP updates (set in-game)
client.on("updated", (data) => {
// Do something with the data
console.log(data)
})
// You can also access the data directly from the client instance
callMeMaybe(() => {
// Access data in the following format `.data..`
console.log(client.data.time.real)
console.log(client.data.airspeed.indicated)
})
```
## Output Data Format (XPlaneUpdate interface)
Below is the structure of the data object returned in the `updated` event, or otherwise accesible directly from `client.data..`.
- `time`
- `real` - [s]
- `total` - [s]
- `mission` - [s]
- `timer` - [s]
- `zulu` - [hh.ss]
- `local` - [hh.ss]
- `hobbs`
- `airspeed`
- `indicated` - KIAS [kts]
- `equivalent` - KEAS [kts]
- `true` - KTAS [kts]
- `truegnd` - KTGS [kts]
- `mph` - IAS [mph]
- `mphair` - [mph]
- `mphgnd` - [mph]
- `gload`
- `mach` - Mach number [ratio]
- `vvi` - VVI [fpm]
- `normal`
- `axial`
- `side`
- `angularmoment`
- `m` - [ftlb]
- `l` - [ftlb]
- `n` - [ftlb]
- `angularvelocity`
- `q` - [rad/s]
- `p` - [rad/s]
- `r` - [rad/s]
- `attitude`
- `pitch` - [deg]
- `roll` - [deg]
- `truehdg` - [deg]
- `maghdg` - [deg]
- `aoa`
- `alpha` - [deg]
- `beta` - [deg]
- `hpath` - [deg]
- `vpath` - [deg]
- `slip` - [deg]
- `compass`
- `mag` - [comp]
- `mavar` - [deg]
- `globalposition`
- `lat` - [deg]
- `lon` - [deg]
- `altmsl` - [ft]
- `altagl` - [ft]
- `runway` - [runway no.]
- `altind` - [ft]
- `latnorm`
- `lonnorm`
- `simposition`
- `x` - [m]
- `y` - [m]
- `z` - [m]
- `vx` - [m/s]
- `vy` - [m/s]
- `vz` - [m/s]
- `distft` - [ft]
- `distnm` - [nm]
- `throttlecommand`
- `[1..8]`
- `throttleactual`
- `[1..8]`
- `enginepower`
- `[1..8]` - [hp]
- `enginethrust`
- `[1..8]`
- `enginetorque`
- `[1..8]`
- `enginerpm`
- `[1..8]`
- `proprpm`
- `[1..8]`
- `proppitch`
- `[1..8]`
- `enginewash` - propwash or jetwash
- `[1..8]` - [kts]
- `n1` - turbine N1 %
- `[1..8]` - [%]
- `n2` - turbine N2 %
- `[1..8]` - [%]
- `fuelflow`
- `[1..8]` - [lb/h]
- `itt`
- `[1..8]` - [deg]
- `egt`
- `[1..8]` - [deg]
- `cht`
- `[1..8]` - [deg]
- `oilpressure`
- `[1..8]` - [psi]
- `oiltemp`
- `[1..8]` - [deg]
- `fuelpressure`
- `[1..8]` - [psi]
- `aeroforce`
- `lift` - [lb]
- `drag` - [lb]
- `side` - [lb]
- `engineforce`
- `normal` - [lb]
- `axial` - [lb]
- `side` - [lb]
## Contibute to the code
1. Clone the Repo onto your local machine
2. Install the dependancies: `npm i`
3. Build the code (ts->js): `npm run typescript` (or `typescript-watch` to watch)
4. Contribute!
## Running the tests
1. Clone the Repo onto your local machine
2. Install the dependancies: `npm i`
3. Build the code (ts->js): `npm run typescript`
4. Run the tests: `npm run test`