fsuipc.js
v1.2.0
Published
<img src="https://user-images.githubusercontent.com/8359234/184555256-5e6458a4-6e4c-489b-b1a6-bfe2e6dcd15a.png" alt="fsuipc.js" width="150"/>
Downloads
7
Readme
FSUIPC client implementation for NodeJS.
fsuipc.js
This package allows you to use the single-minimal version of fsuipc.js.
Quick start
- Install
fsuipc.js
:
yarn add fsuipc.js
- Import the module and create a new object:
const fsuipcModule = require('fsuipc.js');
const simulator = new fsuipcModule.FSUIPC();
3: Use the method open
to request a offset and then, read the value in the promise:
simulator
.open()
.then((request) => {
/* Offset name, value in hexadecimal and data type. */
request.add('clockHour', 0x238, fsuipcModule.Type.Byte);
return request.process();
})
.then((result) => {
console.log(JSON.stringify(result));
return simulator.close();
})
.catch((err) => {
console.error(err);
return simulator.close();
});
Methods:
Open:
Opens a connection with a running FSUIPC stream:
simulator.open(requestedSimulator?: Simulator);
open method takes 1 optional argument:
- requestedSimulator[Simulator]: simulator identifier in number, you can get the simulator ident or type importing:
import { Simulator } from 'fsuipc.js';
console.log(Simulator.MSFS);
When requestedSimulator
is not present, the module tries to open a connection with any FSUIPC stream open.
Close:
Closes a running connection:
simulator.close();
Process:
Process a offset request:
request.add('clockHour', 0x238, fsuipcModule.Type.Byte);
simulator.process();
Add:
Adds a offset request to a FSUIPC stream:
request.add('clockHour', 0x238, fsuipcModule.Type.Byte);
Add method takes 3-4 arguments:
- name[string]: offset identifier in string.
- offset[number]: a hexadecimal number that corresponds to a FSUIPC offset.
- type[FixedSizedNumberType | FixedSizedStringType | VariableSizedType]: a type that corresponds to a type of data.
- length[number]: a number that corresponds to data length.
Write (experimental):
Writes a value into the simulator.
request.write(0x3590, fsuipcModule.Type.Int32, 4, 0); // Closes the engine 1 fuel valve.
Writes method takes 3-4 arguments:
- offset[number]: a hexadecimal number that corresponds to a FSUIPC offset.
- type[FixedSizedNumberType | FixedSizedStringType | VariableSizedType]: a type that corresponds to a type of data.
- length[number]: a number that corresponds to data length.
- value[string | ArrayBufferView]: a value that corresponds to the data that we are sending.
Remove:
Remove a offset that was previously created with Add
method:
request.remove('clockHour');
You can find a list with FSUIPC offsets here, have in mind that this list is out of date and is unofficial.