Go to file
condaatje fe22aef0c3
Update .gitmodules
ssh -> https gitmodule
2023-09-29 12:12:47 -04:00
conf Major refactor. Adding sim wind 2023-05-17 15:56:57 +00:00
src Updating to latest simapi. Updating arduino sketches. Creating simlinks to simdata accordingly. 2023-07-17 03:42:34 +00:00
tests Updated to new release of simapi 2023-07-14 20:18:24 +00:00
udev Major refactor. Adding sim wind 2023-05-17 15:56:57 +00:00
.gitignore monocoque initial commit 2022-10-31 15:11:02 +00:00
.gitmodules Update .gitmodules 2023-09-29 12:12:47 -04:00
.valgrindrc monocoque initial commit 2022-10-31 15:11:02 +00:00
CMakeLists.txt Added static analysis 2022-12-23 22:43:37 +00:00
LICENSE.rst Moved to GPLv3 2022-12-23 22:42:37 +00:00
README.md add workaround for microsoft ssh clone requirements 2023-09-21 10:06:48 -04:00

README.md

Monocoque

___   |/  /____________________________________ ____  ______ 
__  /|_/ /_  __ \_  __ \  __ \  ___/  __ \  __ `/  / / /  _ \
_  /  / / / /_/ /  / / / /_/ / /__ / /_/ / /_/ // /_/ //  __/
/_/  /_/  \____//_/ /_/\____/\___/ \____/\__, / \__,_/ \___/ 
                                           /_/

Cross Platform device manager for driving and flight simulators, for use with common simulator software titles.

Features

  • Updates at 120 frames per seconds.
  • Modular design for support with various titles and devices.
  • Supports bass shakers, tachometers, simlights, simwind etc, through usb and arduino serial.
  • Tachometer support is currently limited to the Revburner model. Supports existing revburner xml configuration files.
  • Includes utility to configure revburner tachometer
  • Can send data to any serial device. So far only tested with arduino. Includes sample arduino sketch for sim lights.
  • The support for haptic bass shakers is limited and needs the most work. So far the engine rev is a simple sine wave, which I find convincing. The gear shift event works but not convincing enough for me.

Dependencies

  • libserialport - arduino serial devices
  • hidapi - usb hid devices
  • libusb - used by hidapi
  • portaudio - sound devices (haptic bass shakers)
  • libenet - UDP support (not yet implemented)
  • libxml2
  • argtable2
  • libconfig
  • slog (static)
  • wine-linux-shm-adapter - for sims that need shared memory mapping like AC.
  • simapi

Building

This code depends on the shared memory data headers in the simapi repo. When pulling lastest if the submodule does not download run:

git submodule sync --recursive
git submodule update --init --recursive

Then to compile simply:

mkdir build; cd build
cmake ..
make

A note about GitHub's ssh cloning policy

if you do not have an ssh key set up in you environment that is registered to a GitHub account, Microsoft will decline the clone request and you'll see a permission error like this:

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

to get around this, first clone the repository over https, then modify the .gitmodules file locally such that ssh urls are replaced with https urls. You can then continue on to sync and update submodules.

git clone https://github.com/Spacefreak18/monocoque
cd monocoque
# vim .gitmodules
git submodule sync --recursive
git submodule update --init --recursive

Testing

Setting up Your Arduino Device

Static Analysis

    mkdir build; cd build
    make clean
    cmake -Danalyze=on ..
    make

Valgrind

    cd build
    valgrind -v --leak-check=full --show-leak-kinds=all --suppressions=../.valgrindrc ./monocoque play

ToDo

  • windows port
  • more memory testing
  • move config code around
  • cleanup tests which are basically just copies of the example from their respective projects
  • much, much more