\chapter{Archív s~implementáciou}

Archív, ktorý je prílohou tejto bakalárskej práce, obsahuje zdrojové kódy
implementovaných nástrojov a~knižníc, ďalšie pomocné programy a~ukážkové
konfiguračné súbory programov.

V~jednotlivých adresároch archívu sa nachádzajú zdrojové kódy vlastný nástrojov
spolu s~ich dokumentáciou:

\begin{itemize}
    \item \verb|mbmux| -- multiplexer protokolu Modbus,
    \item \verb|patches| -- úpravy projektových konfigurácií jednotlivých
        nástrojov, aby pri inštalácii neprepísali verziu knižnice
        \verb|tomlconfig| nachádzajúcu sa v~archíve,
    \item \verb|telegraf-bacnet| -- BACnet plugin pre~nástroj Telegraf,
    \item \verb|tomlconfig| -- knižnica pre~načítavanie konfigurácie vo~formáte
        TOML do~tried
    \item \verb|visu| -- webová aplikácia pre~vizualizáciu a~ovládanie
        technologických celkov
\end{itemize}

Ďalej sa v~archíve nachádzajú dva pomocné programy.
Prvý je \verb|cooling_modbus.py|, ktorý simuluje chladiaci systém, ktorý je
možné ovládať pomocou protokolu Modbus.
Druhým programom je \verb|heating_bacnet.py|.
Ten simuluje vykurovací systém pracujúci s~protokolom BACnet.

V~neposlednom rade obsahuje archív ukážkové konfiguračné súbory a~SVG schémy
(\verb|configs/*|, \verb|schemes/*|), súbory popisujúce prípravu obrazov
kontajnerov s~jednotlivými nástrojmi (\verb|dockerfiles/*|) a~súbor popisujúci
spustenie a~nastavenie jednotlivých kontajnerov (\verb|docker-compose.yml|).

\section{Spustenie}

Najprv je nutné jednotlivé obrazy kontajnerov zostaviť pomocou príkazu
\verb|docker-compose build|.
Následne príkaz \verb|docker-compose up| vytvorí sieť s~adresným priestorom
\verb|192.168.130.0/24|, perzistentné úložisko pre~InfluxDB a~spustí zostavené
obrazy v~kontajneroch.
Po~spustení sú jednotlivé nástroje implicitne dostupné na~nasledovných adresách
a~portoch:

\begin{itemize}
    \item \verb|192.168.130.100| -- simulovaný vykurovací systém (BACnet),
    \item \verb|192.168.130.101| -- simulovaný chladiaci systém (Modbus),
    \item \verb|192.168.130.130| -- multiplexer protokolu Modbus,
    \item \verb|192.168.130.150| -- Telegraf a~BACnet plugin,
    \item \verb|192.168.130.151:8086| -- webové rozhranie databázového systému
        InfluxDB (tiež na~akejkoľvek adrese hosťujúceho stroja),
    \item \verb|192.168.130.152:8000| -- webové rozhranie vizualizačného
        nástroja (tiež na~akejkoľvek adrese hosťujúceho stroja).
\end{itemize}

Implicitné prihlasovacie údaje do~databázového systému InfluxDB sa nachádzajú
v~súbore \verb|docker-compose.yml|.

Alternatívne je možné jednotlivé nástroje nastaviť a~spustiť samostatne podľa
ich dokumentácie.
