From 4a37a70e0450eda66870077b7a003f5eff22a8fe Mon Sep 17 00:00:00 2001 From: Armin Co <armin.co@hs-bochum.de> Date: Thu, 29 Oct 2020 19:14:03 +0100 Subject: [PATCH] Readme mit Installationsanleitung --- Readme.md | 56 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/Readme.md b/Readme.md index 81cb4b9..56c975b 100644 --- a/Readme.md +++ b/Readme.md @@ -1,48 +1,62 @@ # Smart-Grid-Modell (SGM) -## Installation -Voraussetzungen und Abhängigkeiten +## Voraussetzungen und Abhängigkeiten Dieses Repository [https://gitlab.cvh-server.de/aco/smart-grid-modell](https://gitlab.cvh-server.de/aco/smart-grid-modell) -Darin werden die Bibliotheken [spdlog](https://github.com/gabime/spdlog) für das Loggen von Benachritigungen und + +Darin werden die Bibliotheken [spdlog](https://github.com/gabime/spdlog) für das Loggen von Benachrichtigungen und [freeopcua](https://github.com/FreeOpcUa/freeopcua) für OPC-UA Server und Client. Für freeopcua werden zusätzliche Pakete benötigt. Für Debian sind diese in der Datei 'debain.soft' aufgelistet. Die Git-Submodules müssen vor dem kompilieren mit -'git submodule init && git submodule update' heruntergeladen werden. - -Die derzeitig auf dem Pi installierte Version von Raspbian hat nur Zugriff auf die alte CMake Version 3.6.2 -für 'spdlog' wird jedoch 3.10 erwartet. +`git submodule init && git submodule update` heruntergeladen werden. +Alternativ kann beim erstmaligen Clonen des Repositories die Option `--recurse-submodules` mir übergeben werden. +Für die vollständige Erzeugung aller Bestandteile der FreeOpcUa Bibliothek (nicht notwendig) werden noch die folgenden Pakete benötigt. -Weitere, wernn diese Pakete auf Raspbian nicht zur Verfügung stehen, dann kann TLS deaktiviert werden: +Weitere, wenn diese Pakete auf Raspbian nicht zur Verfügung stehen, dann kann TLS deaktiviert werden: - libmbedx509-0 - libmbedcrypto1 - libmbedtls-dev +## Installation druchführen +Sind alle Abhängigkeiten für das Projekt installiert kann mit dem bereitgestellten Skript `install.sh` +das gesamte Projekt gebaut werden. +Auf dem Raspberry-Pi dauert das Kompilieren der FreeOpcUa Bibliothek einige Minuten, +die Entwicklungsarbeit kann jedoch ohne Probleme auf einem anderen Linux-Desktop durchfegührt werden und nur zum finalen +ausführen auf dem Pi kompiliert werden. +Während der Installation wird das Verzeichnis `build` angelegt. +Darin finden sich alle generierten Dateien von CMake die zum kompilieren benötigt werden, sowie die +fertig kompilierten Programme. -# Durchgeführte Arbeiten - -* Systemupdate des Raspberry Pi -* updaten der WiringPi Library auf den aktuellen Stand 2.32 -> 2.60 aufgrund von Kompatibilitätsproblemen +Zum manuellen kompilieren kann in das `build` Verzeichnis gewechselt werden, +mit dem Befehl `cmake ..` wird dann das Makefile generiert und anschließend kann mit dem Befehl +`make` kompiliert werden. +Auf einem Desktop-Linux Rechner kann mit der Option `-j14` die Anzahl der zu verwenden Threads angegeben werden, +dies beschleunigt den Kompiliervorgang. +Auf dem Raspberry-Pi sollten nicht mehr als zwei Threads gewählt werden, da der Arbeitsspeicher knapp werden kann. +Beim manuellen Kompilieren ist zu beachten, dass die ausführbare Datei unter `build/libs/freeopcua/bin` abgelegt wird. +Diese muss anschließend manuell in das `build` Verzeichnis kopiert werden, damit die Skripte zum ausführen verwendet werden können. -# Notwendige Änderungen +## Ausführen -* Neues Build-System mit aktuellem Stand (CMake & C++) -* Aufteilen in eine SGM-Runnable mit API für GUI, CLI oder OPC UA. -* Überarbeiten der Simulationsparameter +Mit dem beigelegten Skript `start_server.sh` kann der OPC UA Server einfach gestartet werden. +Beendet werden kann der Server dann mit dem Drücken der Taste `q`. +Wird die `smart_grid.exe` manuell ausgeführt, dann werden die Ausgänge des Modells beim Beenden nicht deaktiviert. +Dies kann bei Bedarf mit den Skripten `all_off.sh` oder `windmill_off.sh` nachgeholt werden. -# Tools -- kleines Kommandozeilen-Programm zur manuellen Kommunikation mit dem Arduino (i2c_control.exe) +## Infos +Der OPC UA Server ist unter der lokalen ihm per DHCP zugewiesenen IP-Adresse auf dem Port 4840 zu erreichen. +Alternativ kann auch der Hostname raspberrypi.local verwendet werde. -# Notizen +Der angelegte Benuzter auf dem Raspberry Pi ist: "pi" +das zugehörige Passwort ist ebenfalls "pi" -- Adresse des Arduinos: 0x14 -- Adresse des Lux-Sensors: 0x23 \ No newline at end of file +So kann man sich zum Beispiel per ssh mit dem Pi verbinden. -- GitLab