Go to file
2024-05-31 21:45:42 +02:00
doc docs 2024-05-19 17:53:59 +02:00
inc/graph full chart widget 2024-05-19 16:57:15 +02:00
src/graph star plugin 2024-05-31 21:45:42 +02:00
test docs 2024-05-19 17:53:59 +02:00
.clang-format plugin loading gui 2024-05-14 17:29:58 +02:00
.gitignore yippie 2024-05-15 22:52:13 +02:00
CMakeLists.txt cmake options 2024-05-31 21:45:13 +02:00
Readme.md nlohmann::json 2024-05-19 17:56:17 +02:00

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

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, C++ parancssori paraméter feldolgozó könyvtár
  • rum, C++ web API könyvtár
  • nlohmann::json, C++ JSON könyvtár

Fordítási parancsok:

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.

$ ./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:

$ ./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