2021-06-05 16:53:57 +02:00
|
|
|
# RPI player
|
2021-06-05 16:41:54 +02:00
|
|
|
|
2021-06-05 16:53:57 +02:00
|
|
|
Will be a simple media player frontend for raspberry pis based on SDL2. Think like oldschool mp4 players.
|
|
|
|
|
|
|
|
The idea is to make it super simple and efficient so that it can be used on a pi zero with small lcd screens.
|
2021-06-05 16:41:54 +02:00
|
|
|
|
|
|
|
## Compilation
|
|
|
|
|
|
|
|
Will only work on linux! Works on the rasberry pi.
|
|
|
|
|
|
|
|
### Dependencies
|
|
|
|
|
|
|
|
Arch/Manjaro:
|
|
|
|
|
|
|
|
```
|
|
|
|
pacman -S --needed scons pkgconf gcc yasm libevent
|
|
|
|
```
|
|
|
|
|
|
|
|
Debian/Raspian:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo apt-get install build-essential scons pkg-config libudev-dev yasm libevent libevent-dev
|
|
|
|
```
|
|
|
|
|
|
|
|
Optionally if you install MariaDB/MySQL and/or PostgreSQL the compile system should pick it up. Make sure to get a version
|
|
|
|
whoch contains the development headers (A bunch of .h files).
|
|
|
|
|
|
|
|
### Initial setup
|
|
|
|
|
|
|
|
clone this repo, then call `scons`, it will clone rcpp cms into a new engine directory. Run this every time you update the project.
|
|
|
|
You don't have to run it before / between builds.
|
|
|
|
|
|
|
|
```
|
|
|
|
# git clone https://github.com/Relintai/rcpp_sample_simple_data_collector_app.git rcpp_sample_simple_data_collector_app
|
|
|
|
# cd school_industrial_comm_2021
|
|
|
|
# scons
|
|
|
|
```
|
|
|
|
|
|
|
|
Now you can build the project like: `scons bl`. ([b]uild [l]inux)
|
|
|
|
|
|
|
|
Adding -jX to the build command will run the build on that many threads. Like: `scons bl -j4`.
|
|
|
|
|
|
|
|
```
|
|
|
|
# scons bl -j4
|
|
|
|
- or -
|
|
|
|
# ./build.sh
|
|
|
|
```
|
|
|
|
Now you can run it.
|
|
|
|
|
|
|
|
First run migrations, this will create the necessary database tables:
|
|
|
|
|
|
|
|
```
|
|
|
|
# ./engine/bin/server m
|
|
|
|
- or -
|
|
|
|
# ./migrate.sh
|
|
|
|
```
|
|
|
|
|
|
|
|
Now you can start the server:
|
|
|
|
|
|
|
|
```
|
|
|
|
# ./engine/bin/server
|
|
|
|
- or -
|
|
|
|
# ./run.sh
|
|
|
|
```
|
|
|
|
|
|
|
|
Make sure to run it from the project's directory, as it needs data files.
|
|
|
|
|
|
|
|
Now just open http://127.0.0.1:8080
|
|
|
|
|
|
|
|
You can push floats to the "a/b" MQTT topics, and the new values will be save in the `database.sqlite` file, and will appear
|
|
|
|
in your browser.
|
|
|
|
|
|
|
|
If you have mosqitto installed you can use the `publish_random_data.py` or `publish_data.sh` scripts to automatically
|
|
|
|
push things into the proper MQTT topic.
|
|
|
|
|
|
|
|
## Structure
|
|
|
|
|
|
|
|
The main Application implementation is `app/ic_application.h`.
|
|
|
|
|
|
|
|
The `main.cpp` contains the initialization code for the framework.
|
|
|
|
|
|
|
|
The `content/www` folder is the wwwroot.
|