Tooling to use FSUIPC external application interface, with nodeJS.
This API is a wrapper around fsuipc-node adapter by koesie10 meant to create a simple API around all available fsuipc offsets.
Please find any information about FSUIPC on their website.
In order for fsuipc
(fsuipc-node) and @fsuipc/api
(this package) to work, and so this API, you must have on your machine:
- Windows 10 64bits
- node 12+
- python 3.7 (don't forget to add it to your PATH)
- visualstudio 2017+ with desktop C++ package
- fsuipc installed as flight simulator plugin
Node API usage requirements:
rxjs
>= 6.5.0
npm i --save @fsuipc/api
or
yarn add @fsuipc/api
After import, you can use FsuipcApi
to listen to provided values.
import { FsuipcApi } from '@fsuipc/api';
const fsuipcApi = new FsuipcApi(Simulator.FSX);
FsuipcApi.init()
returns a promise when you are properly connected to FSUIPC stream. In case your flight simulator isn't running, this will throw an error.
FsuipcApi.listen()
methods takes 2-3 arguments:
interval
[number]: interval at which values will be polled from FSUIPC streamoffsetsList
[string[]]: a list of string representing offsets you want to subscribe onterminateOnError
[boolean = true]: if set to true, if any value is errored, you will be disconnected from FSUIPC stream
This method returns a ConvertedOffsetValues
observable. You can subscribe to this observable to handle values polled from stream.
import { FsuipcApi } from '@fsuipc/api';
const fsuipcApi = new FsuipcApi(Simulator.FSX);
fsuipcApi.init().then(() => {
fsuipcApi.listen(1000, [
'gs',
'altitude',
'comFreq',
'lights',
]).subscribe((result) => {
// Use the result here
console.log(JSON.stringify(result));
});
}).catch((e) =>
console.error(e)
);