RockBlock MK.II Integration to Ground Station System for Space Mission Operations
This is the Ground Station software for the AlphaCubesat project. It receives data from the RockBlock API, processes that data, and ships it to ElasticSearch. It is architected as a RESTful server with multiple modules, Telemetry being the only fully implemented one as of yet, with Control coming in the future. The project is developed in Visual Studio, and remotely built using GCC using Visual Studio's linux targeting features. This requires setting up a connection to a linux machine for building and running. See "Setting up the Alpha Ground Station Development Environment" section.
- Boost C++ Libraries (https://www.boost.org/users/download/)
- Simple-web-server (https://gitlab.com/eidheim/Simple-Web-Server)
- Make sure you have Visual Studio 2017 or later installed (https://visualstudio.microsoft.com/)
- Clone this repo, and open AlphaCubesat.sln with Visual studio
- Navigate to Tools->Options->Cross Platform->Connection Manager
- Click "add", and input parameters for the desired linux machine. If your machine uses SSH keys for authentication, select "private key" as the authentication option, and provide the private key file for the user.
- Make sure dependencies are installed on the linux machine (for boost, a simple apt-get install boost will do. For the web server, download the source off gitlab, and place it in a folder under /usr/include)
- Navigate to Project->Properties->C/C++->General, and under "Additional Include Directories", add the file locations of your dependencies. In this example, my Boost libraries were located under /usr/include/, and web server under /usr/include/simple-web. Simply including /usr/include might work too, but will require you to navigate the files to locate the simple-web code
- Stay in the properties window, Navigate to Linker->Input, and input into "Library Dependencies" the names of libraries that need to be linked against. This will probably be: pthread, boost_system, boost_filesystem, boost_date_time which is shown in the example:
- Click "Apply" if it is not already grayed out. Then click "Ok"
- In the IDE, click the play button (which should display the address of the remote machine) to build and run the software. Make sure port 8080 is open on the machine, and navigate to http://<machine's address>/ping to test if the server is working properly. You can also remotely debug and view the linux console from within visual studio.
You can use Doxygen (http://www.doxygen.nl/) to generate documentation for the source. A pdf copy is provided in this repo at: https://github.com/AlphaCornell/AlphaGroundStation/blob/master/doc_pdf.pdf