Git Product home page Git Product logo

cpdisplay's Introduction

CPDisplay

Coverity Scan Build Status

Cockpit Head Down Display for the Vehicle Systems and Controls Lab at Texas A&M University.

This display is designed to work with X-Plane 10, and provides many panels. The display itself is reconfigurable with a series of INI files, allowing users to modify the size and arrangement of panels to suite their needs and display resolutions.

Default Cockpit Display Alternate Cockpit Display Layout

Dependencies

In addition to the dependencies listed below, in order to use Google Maps, you must have a Google Developer account with both Google Maps JavaScript API and Google Maps Geocoding API enabled. The default map provider is currently OpenLayers, which is free and does not require an account.

Name Version Ubuntu Package OS X Homebrew Package Notes
CMake 2.8.12+ cmake cmake
Qt5 5.6+ qt5-default, libqt5svg5, libqt5svg5-dev qt5
QFI 2014-01-26 - - included *1
Qt Dynamic Layout - - - submodule
Qt Toggle Input - - - submodule
VSCL Sprites - - - submodule
CPD Map - - - submodule
  1. QFI - QFlightInstruments
  • Used for the Primary Flight Display and other instruments
  • Included in ext/qfi

X-Plane 10

Tested on X-Plane 10.36 and 10.45.

This program reads UDP data from X-Plane, and thus to function properly, the following UDP data should be enabled in the "Data Input & Output" window1, along with the checkbox to enable "internet" output (instructions below). 2

1, 3, 4, 15-26, 34-50, 96, 97

Note 1: As of version 1.1 (August 7, 2015), when flying on X-Plane 10.40b7, you no longer have to manually select each UDP output packet, since the new Dataref API allows selections to be made from another application. The SwitchBoard class now does this for you, so all you have to do is turn on UDP output in X-Plane and send it to the computer running the Cockpit Display.

Note 2: To turn on the UDP output in X-Plane, go to the "Settings" menu, then click "Net Connections". In the Net Connections window, click on the "Data" tab. Check the box for "IP of data receiver" and set the IP address to the (IPv4) address of the computer running your Cockpit Display, and set the port number to match the port found in the cpd-settings.ini config file. Also make sure that config file has the correct (IPv4) address for the computer running X-Plane so it can send the data requests.

Note 2 continued: To turn on the specific data (for X-Plane versions < 10.40b7), go to the "Settings" menu and click "Data Input & Output". In the "Data Input & Output" window, under the "Data Set" tab, select the first checkbox in the row for all of the above data indices (the internet checkbox). Also make sure the "enable: []internet" checkbox at the top right is selected.

Instructions

The easiest way to download and build this project is using Git and CMake (after installing non-included dependencies). You must first make a config file following the example in config/examples/cpd-settings.ini. All you really have to change is the IP address(es) and port(s) of the machine(s) running X-Plane. Note that there is more setup required if using a Master Control Station (MCS) setup with multiple simulator systems.

The MCS setup instructions are also included in the config/examples/cpd-settings.ini file, and support many instances of X-Plane in a lab to communicate with any number of Cockpit Displays (CPDs) in a one-to-many (X-Plane to CPDs) fashion. We use this type of setup to allow Pilot/CoPilot CPDs to simultaneously communicate with one instance of X-Plane in our 2-seat T-37 cockpit, and to also mirror those displays to another larger screen for observation during user studies, flight demo's, etc.

$ git clone https://github.com/tamu-vscl/cpdisplay.git
$ git submodule init --update
$ cp config/examples/cpd-settings.ini config/cpd-settings.ini
## Change settings to fit your network/system
$ mkdir build && cd build
$ cmake ..
## With most systems these days, you can use `make -jX`, where X is a number of processes to spawn to speed up the build
$ make
## Optionally run from this directory or anywhere else you choose
$ ../bin/cpdisplay

The executable can be run from anywhere, as long as the config directory exists in the same structural location on the file system as this repo ( [project root]/bin/executable and [project root]/config/[files] )

cpdisplay's People

Contributors

jah2235 avatar madtreat avatar

Stargazers

 avatar

Watchers

 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.