graph/Readme.md

65 lines
2.2 KiB
Markdown

# [graph](https://git.tek.govt.hu/dowerx/graph)
## Moduláris grafikon megjelenítő
Dinamikusan betöltött könyvtárok segítségével adható meg a megjelenített adat.\
Példaként egy HTTP szerver plugint készítettem hozzá.
![demo gif](doc/demo.gif)
## Fordítás
A projekt a CMake buildrendszert használja és Debian 12 (Bookworm) rendszeren volt tesztelve.
Nem tartalmaz platformspecifikus kódot. POSIX kompatibilis környezetben elméletileg lefordítható.
Fuggőségei:
- C++ 20 vagy nagyobb
- Qt 6
- [flags-cpp](https://git.tek.govt.hu/dowerx/flags-cpp), C++ parancssori paraméter feldolgozó könyvtár
- [rum](https://git.tek.govt.hu/dowerx/rum), C++ web API könyvtár
- [nlohmann::json](https://github.com/nlohmann/json), C++ JSON könyvtár
Fordítási parancsok:
```sh
mkdir -p build && cd build
cmake .. && make -j $(nproc)
```
Elkészült fájlok:
- *server*: a program grafikus része, a pluginok betöltője
- *plugins/libhttp.so*: HTTP szerver plugin
## Használat
- *server* futtatása: `./server`, a megadott paramétereket a betöltött pluginek később megkapják
- *Ctrl+A*: grafikon hozzáadása
- *Ctrl+L*: plugin betöltése
- *grafikonra jobbklikk*
- *Clear*: grafikon tartalmának törlése
- *Remove*: grafikon törélse
- *pluginra duplaklikk*: plugin eltávolítása
## HTTP plugin
A plugin a kapott paraméterek felhasználva indít egy HTTP szervert és az arra érkezett kérések alapján ad adatokat a grafikonokhoz.
```sh
$ ./server --help
Help:
--help: print help
--port: http port
--workers: number of worker threads
```
## Példa
A *test* mappában található egy Python script, ez használható a HTTP plugin tesztelésére:
```sh
$ ./test.py --help
usage: test.py [-h] [-t {sine,cosine,sine_array,star}] [-n NUM] [-d DELAY] -c CHART -s SERIES [-p PORT] [-a ADDRESS]
options:
-h, --help show this help message and exit
-t {sine,cosine,sine_array,star}
test type
-n NUM sin_array size/iteration
-d DELAY delay between iteration
-c CHART chart id
-s SERIES series name
-p PORT server port
-a ADDRESS server address
```