Giter Club home page Giter Club logo

ffsim's Introduction

FFSim

This repository contains an X-Plane plugin that enables Hardware in the Loop (HIL) testing of a flight controller.

It has been tested on X-Plane's default plane (Cessna Skyhawk), but it should work fine on any single-engine airplane with "standard" control surfaces.

The plugin will override user control of the aircraft while enabled. If manual control of the aircraft is required, the plugin can be enabled and disabled mid-flight via the menu under Plugins->Plugin Admin->Enable/Disable.

The parking brake can be controlled by the user even when the plugin is enabled. It's usually under the 'B' key.

Communication is done via USB-UART (FTDI), so you will need to make sure the serial port has the right permissions set. Also you may need to hardcode the serial port used if it is not /dev/ttyUSB0 or COM5—ideally this would be configurable via the X-Plane GUI instead.

The plugin will print debug information if launched from the command line with ./X-Plane-x86 |grep FFSim or similar. It will print a message when the serial connection is established or lost.

Windows

Windows has a few prerequisites. The following worked for an RSCS Windows 10 Education machine, YMMV:

  1. Install Cygwin. Make sure the standard development packages are installed—in particular a 64-bit GNU linker is essential.
  2. Install Rust via the EXE. When prompted, enter your host triple as x86_64-pc-windows-gnu.
  3. Install LLVM via the latest 64-bit prebuilt Windows binary available from the LLVM releases page.

Building

You must use a 64-bit compiler

cargo build
cp target/debug/libffsim.so $XPLANE_DIR/Resources/plugins/ffsim.xpl

The name of the DLL (libffsim.so) will differ slightly on Windows and macOS. The destination file should still have the extension .xpl.

Optimized Build

cargo build --release
cp target/release/libffsim.so $XPLANE_DIR/Resources/plugins/ffsim.xpl

ffsim's People

Contributors

pavlos1 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.