# Úpravy stacku

Pre testovanie boli do aplikácie socktap urobené nasledovné modifikácie:

* Konfigurovateľné station-id vo vysielanej CAM správe (parameter --station-id=1234)
* CAM service agreguje prijímané CAM v dosahu podľa station-id
* Pridaná kontajnerová trieda itsDevice obsahujúca station-id, mqtt parametre a zoznam správ
* Pridaná LDM(Local Dynamic MAP) service posielajúca zmeny v CAM zozname (parameter --applications=ldm)
* Pridaný jednoduchý JSON interface
* Pridaný MQTT interface (parameter --mqtt-host=127.0.0.1 a --mqtt-port=1883)

## Pridané knižnice

Upravený socktap potrebuje pre kompiláciu ďalšie dve knižnice pre JSON a MQTT.
JSON sa kontroluje len informatívnym textovým výpisom, MQTT sa overí skutočne
prítomnosť súborov uvedených nižšie v adresároch /usr/include a /usr/lib.

## MQTT

Pre mqtt sa používa mosquitto: https://mosquitto.org/

Verzie inštalovaných knižníc na testovacej zostave:
* libmosquitto-dev/focal,now 1.6.9-1 amd64 [installed,automatic]
* libmosquittopp-dev/focal,now 1.6.9-1 amd64 [installed]
* mosquitto-clients/focal,now 1.6.9-1 amd64 [installed]
* mosquitto/focal,now 1.6.9-1 amd64 [installed]

Pre skompilovanie aplikácie treba hlavičkový súbor mosquittopp.h, a knižnicu mosquittopp.
Pre spustenie aplikácie socktap musí bežať mqtt broker na 127.0.0.1 a porte 1883.
Socktap aktuálne vypíše topic, na ktorý posiela správu aj jej obsah.
TODO: rozdeliť debug výpisy konfigurovateľne podľa modulov...

## JSON

Pre prácu s JSON sa používa: https://github.com/nlohmann/json.
Knižnica obsahuje len hlavičkové súbory, používa sa verzia single header file: nlohmann/json.hpp.