falcon-bms-control
falcon-bms-control copied to clipboard
Control Falcon BMS from any touch device
Falcon BMS Control
What is this?
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)love2dframework.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#.
Client Goals
- 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)
Client Non-Goals
- photorealistic graphics including buttons and bezels
- replace more advanced and configurable tools like Helios
Development
How can I help extend this?
Anyone can extend the client code and run the development version in the following ways:
- Linux, Windows and macOS: use
love2dto run the client, install using an appropriate package manager - Android: One can install
love2dfor android love2d in the Play Store and use it to run the assembled package (see client folder for details)
What can I do?
- Look at issues on github: Github Issues
- Look at things in the
prose/ideasfolder.
There may be some overlap between issues and the ideas folder, but the folder can also be used as a scratch pad while offline.
Client Release Builds
Windows Client
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.
Android and iOS Builds
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.
Development prerequisites
- Any text editor, try
vscode,vimor something fancier
Client development tools
love2dinstalled using a package manager of sortsstyluainstalled using a package manager orcargoto 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)
cargoand a rust toolchain to buildboonto build release packages
Server development tools
- the 'simple'
lua-serverrequires the same tools as theclient serverrequiresmsbuildandnugetand (probably) a Windows machine with Visual Studio or respective tools installed.
Contributions guidelines
- 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.