Sample demonstrating of how to implement FCPP applications that exchange data using the Bluetooth Low Energy API (requires two or more devices to see full operation). This code is derived from the original Apache-licensed Android BTLE demo project.
This project uses the Bluetooth Low Energy (BLE) Advertisement and Scanning APIs. The functionality is split into several fragments - one for Advertising, one for Scanning, and then an additional one with the user interface for each particular application/experiment.
This project requires the fcpp/fcpp submodule. Either do a git submodule update and use the
./gradlew build command, or simply use "Import Project" in Android Studio which should take care of all the steps.
This image (also see the slides below) illustrates the architecture:
You can run the corresponding simulations in the fcpp-android-folder through ./make.sh gui run -O simulation.
You can run the project in an emulator to look at the UI, but any Bluetooth functionality is not supported. Please note that the code will try to send telemetry to our server. The application contains two entry points for experiments, here we only document the Evacuation Scenario.
We have implemented a simple demo, below we show the UIs for configuration, and the actual experiment:
We have some presentation slides where we explain a bit the ideas and technology. The "meat" of the program-logic is encoded through high-level constructs (spatio-temporal logic formulas) from our library (jump into the code).


