falcon-bms-control
lets you control Falcon BMS from any touch enabled device (tablet or computer).
Releases for iOS, android and Windows are available for free.
This repository contains the following modules/folders:
client
: The client code, implemented using lua and the (amazing)love2d
framework.lua-server
: A fully functioning lua mock server, very useful for development, testing and debugging. Runs anywhere, does not require BMS to be running.server
: The actual server that reads from BMS shared memory and invokes callbacks. Currently in C#.
- be cross platform
- require zero configuration (maybe allow for some)
- auto discovery of server from multiple clients
- configurable fixed server address to skip discovery
- responsive controls
- work well on touch devices
- make most of the screen space available (as far as possible with simple layouts)
- photorealistic graphics including buttons and bezels
- replace more advanced and configurable tools like Helios
Anyone can extend the client code and run the development version in the following ways:
- Linux, Windows and macOS: use
love2d
to run the client, install using an appropriate package manager - Android: One can install
love2d
for android love2d in the Play Store and use it to run the assembled package (see client folder for details)
- Look at issues on github: Github Issues
- Look at things in the
prose/ideas
folder.
There may be some overlap between issues and the ideas
folder, but the folder can also be used as a scratch pad while offline.
The windows client can be built using the appropriate script and run on a Surface or a similar computer with a touchscreen. The windows client is not code-signed.
Clients are built for iOS and android are using seperate repositories that are quite involved and require code-signing and certificates to push new releases to the Apple store and Play store, hence they are currently not open source.
- Any text editor, try
vscode
,vim
or something fancier
love2d
installed using a package manager of sortsstylua
installed using a package manager orcargo
to format lua code- (Recommended) Unix or linux or the linux subsystem (on windows) to run any of the scripts
- (Not required) An android or windows touch device to test using touch features
- (Not required)
cargo
and a rust toolchain to buildboon
to build release packages
- the 'simple'
lua-server
requires the same tools as theclient
server
requiresmsbuild
andnuget
and (probably) a Windows machine with Visual Studio or respective tools installed.
- Please contribute changes back to this project via a fork and pull-request.
- Please format your code, there are scripts to do it with consistent settings across platforms.
- Your contributions will be subject to the same license as the overall project is.