linkec / fsuipc-node

FSUIPC external application interface tools listening tools written in nodeJS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@fsuipc/api - FSUIPC Node API

Tooling to use FSUIPC external application interface, with nodeJS.

Coverage Status npm version branch-master

Disclamer

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.

Requirements

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

Installation

npm i --save @fsuipc/api
or
yarn add @fsuipc/api

API Usage

After import, you can use FsuipcApi to listen to provided values.

Import

import { FsuipcApi } from '@fsuipc/api';

Instantiate

const fsuipcApi = new FsuipcApi(Simulator.FSX);

Init

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.

Listen to offsets values

FsuipcApi.listen() methods takes 2-3 arguments:

  • interval [number]: interval at which values will be polled from FSUIPC stream
  • offsetsList [string[]]: a list of string representing offsets you want to subscribe on
  • terminateOnError [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.

Complete example

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)
);

About

FSUIPC external application interface tools listening tools written in nodeJS

License:Other


Languages

Language:TypeScript 99.7%Language:JavaScript 0.3%