This project is to remidie the problem where person scouting during FRC competitions may not have access to the internet, for whatever reason, and cannot communicate their information. FRC guildlines ban the use of personal wireless radios EXCEPT for those using the Bluetooth protocol. Thus this project was born to bridge that gap between people during competition at FRC events. The program is intended to run as a Server with it's acceptable client being found in its sister project here. The program is able to load acceptable JSON data into its database and share it with Android devices running the client, and can take information from the client and add it to the database. Finally, it can output all this data out into a neat little JSON formatted file.
This was originally inted for Linux x64 based systems, however with minor modifications it can be used on Windows x64 devices. This program has not been tested on ARM or x86 devices, any problems with those I would love to fix. The process for building on a Linux x64 Based System is as follows:
- Clone the repository
- Run the enclosed
./gradlew clean build
- The outputed Jar with all dependencies in it should be in
./build/libs/ScoutingBluetoothServer.jar
. Feel free to move it at this point.
For Windows x64 Based Systems
- Clone the repository
- Find the file
WINDOWS.gradle
; deletebuild.gradle
- Rename
WINDOWS.gradle
tobuild.gradle
- Run the enclosed
./gradlew clean build
From the Program's help message:
Welcome to the Bluetooth FIRST Scouting tool by Max Neyraval (2018)!
Simple program to handle scouters over bluetooth. Please turn on the bluetooth radio and give the program the appropriate permissions!
Anyway, here is the proper usage of this program:
java -jar ScoutingBluetoothServer.jar <LOAD DATA> <EXPORT PATH; <TIME BETWEEN SAVES>
Where <LOAD DATA> is a valid path to valid JSON data that can be loaded
Data is a JSON file that either has been exported or has team initialization data. See example.
Where <EXPORT PATH&> is a path to the desired output (make sure you have proper permissions!)
And Where <TIME BETWEEN SAVES>; Is the time between autoexporting data, in minutes
Set this value to 0 to not export OR -1 to export every time a client issues a connection.
It is important to remember that the program must be given read and write permissions to the specified Load and Export files, and must also have access to the Bluetooth API. It is recomended to run the program as an administrator.