From 5aafb02772146a9b92804cd4be479148de47833f Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Fri, 20 Sep 2019 12:00:02 +0200 Subject: [PATCH] update docs --- docu/docs/changelog.md | 1 - docu/docs/config.md | 3 ++- docu/docs/develop/ModulPlugin.md | 20 ++++++++++++++------ docu/docs/img/broadcast.drawio | 1 + docu/docs/img/broadcast.png | Bin 0 -> 52272 bytes docu/docs/index.md | 1 + docu/docs/information/broadcast.md | 22 +++++++++++++--------- docu/docs/modul/mode_filter.md | 14 ++++++++++++-- docu/docs/tbd.md | 1 - docu/mkdocs.yml | 6 +++--- 10 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 docu/docs/img/broadcast.drawio create mode 100644 docu/docs/img/broadcast.png diff --git a/docu/docs/changelog.md b/docu/docs/changelog.md index e8b26f6..6abd741 100644 --- a/docu/docs/changelog.md +++ b/docu/docs/changelog.md @@ -1,5 +1,4 @@ #
Changelog
- --- ## Version [2.9.0] - date diff --git a/docu/docs/config.md b/docu/docs/config.md index 7ab60d5..d15cb35 100644 --- a/docu/docs/config.md +++ b/docu/docs/config.md @@ -4,9 +4,9 @@ Die Konfiguration von BOSWatch 3 ist im YAML Format abgelegt und wird nachfolgen Immer wenn für eine Einstellung ein **Default** Wert angegeben ist, muss diese Einstellung nicht zwingend in die Konfiguration eingetragen werden. ---- ## Client +--- ### `client:` |Feld|Beschreibung|Default| |----|------------|-------| @@ -30,6 +30,7 @@ server: ip: 10.10.10.2 port: 9123 ``` + --- ### `inputSource:` Aktuell gibt es nur `sdr:` als Input Quelle diff --git a/docu/docs/develop/ModulPlugin.md b/docu/docs/develop/ModulPlugin.md index 614e8d9..1b6b58e 100644 --- a/docu/docs/develop/ModulPlugin.md +++ b/docu/docs/develop/ModulPlugin.md @@ -1,9 +1,10 @@ #
Eigenes Modul/Plugin schreiben
+ Um ein eigenes Modul oder Plugin zu schreiben, sollte man sich am besten zuerst einmal das das `template` im entsprechenden Ordner ansehen. Dies kann als Vorlage für das eigene Modul oder Plugin genutzt werden. --- -## Informationen anpassen -- Dateikopf anpassen +## Allgemeine Informationen +Im ersten Schritt sollte eine Kopie des jeweiligen Templates (Modul oder Plugin) erstellt werden. Nun sollten im Dateikopf die Angaben angepasst werden. --- ## Benötigte Methoden überschreiben @@ -14,7 +15,6 @@ Die Modul Basisklasse bietet einige Methoden, welche vom Modul überschrieben we - `doWork(bwPacket)` wird bei der Ausführung aufgerufen - `onUnload()` wird beim Zerstören der Plugin Modul zum Programmende ausgeführt ---- ### Plugin Die Plugin Basisklasse bietet einige Methoden, welche vom Plugin überschrieben werden können. @@ -70,11 +70,15 @@ Sollten weitere Unterelemente oder eine Liste exisitieren wird erneut ein Objekt --- ## Arbeiten mit dem bwPacket -An das Modul bzw. Plugin wird eine Instanz eines BOSWatch-Packet Objekts übergeben. +An das Modul bzw. Plugin wird eine Instanz eines BOSWatch-Paket Objekts übergeben. Aus dieser kann mittels `bwPacket.get(FIELDNAME)` das entsprechende Feld ausgelesen werden. Mittels `bwPacket.set(FIELDNAME, VALUE)` kann ein Wert hinzugefügt oder modifiziert werden. -Eine Auflistung der bereitgestellten Informationen findet sich im entsprechenden [BOSWatch Paket](packet.md) Dokumentation. -Selbst vom Modul hinzugefügte Informationen müssen dokumentiert werden. +Eine Auflistung der bereitgestellten Informationen findet sich im entsprechenden [BOSWatch Paket](packet.md) Dokumentation. + +Bitte beachten: + +- Selbst vom Modul hinzugefügte Felder **müssen** in der Modul Dokumentation unter `Paket Modifikation` aufgeführt werden. +- Sollte ein Modul oder Plugin Felder benutzen, welche in einem anderen Modul erstellt werden, **muss** dies im Punkt `Abhänigkeiten` des jeweiligen Moduls oder Plugins zu dokumentieren. ### Zu beachten bei Module Module können Pakete beliebig verändern. Diese Änderungen werden im Router entsprechend weitergeleitet. @@ -90,6 +94,10 @@ Plugins geben keine Pakete mehr zurück. Sie fungieren ausschließlich als Endpu Die Plugin Basisklasse liefert intern immer ein `None` an den Router zurück, was zur weiteren Ausführung des Routers mit dem original Paket führt. Daher macht es in Plugins keinen Sinn ein Paket zu modifizieren. +--- +## Richtiges Logging + tbd ... + --- ## Wildcards parsen (Plugin only) Das parsen der Wildcars funktioniert komfortabel über die interne Methode `self.parseWildcards(MSG)`. diff --git a/docu/docs/img/broadcast.drawio b/docu/docs/img/broadcast.drawio new file mode 100644 index 0000000..3976119 --- /dev/null +++ b/docu/docs/img/broadcast.drawio @@ -0,0 +1 @@ +7Vpbb9owFP41PK6K49x4bGm3adrWakzaeJpMYsBdEiNjCuzXzybO1VBCExo2WlVqfGyf2N93bnbTg4No/YGh+ewLDXDYM41g3YO3PdMEwLPFHynZJBIHOolgykigBuWCIfmDldBQ0iUJ8KI0kFMacjIvC30ax9jnJRlijK7KwyY0LL91jqZYEwx9FOrSHyTgs0TqmW4u/4jJdJa+GTj9pCdC6WC1k8UMBXRVEMG7HhwwSnnyFK0HOJTgpbgk897v6c0WxnDM60zof3K/umN0jwfcur8fGeNvv27eKS1PKFyqDavF8k2KAKPLOMBSidGDN6sZ4Xg4R77sXQnOhWzGo1C0gHickDAc0JCy7Vw48Xzs+0K+4Iz+xoWesWdbtlSoFoAZx+u9OwMZXsLQMI0wZxsxRE2wHQWxsjFLbWKVEwYsNWRWIMtMhUgZyTRTneMoHhSUR8BqnhbWAGFvshNWx/fweNIOrMA8N1gdDdYhZmKPGrhi07yMYBmpmMa4AqsSoZBMY9H0BUhCMbyREBIRD65VR0SCQL5mJ2VlUpN3pmFjyyONuYpxEvmkrZYNWqCs6gm2VZOyUzHmaYwNiNzLG2G7faxzwqChcYMDkRFVkzI+o1Mao/Aul1ZQfFxG8xQz0cynfKZ0rnB9xJxv1CC05LTMPV4T/lNqu7JVa1TouV2rF20bm7QRi+0XJsnmqNiXT9u2NrU5TwCRKDxPsgCNLpmPn0u3KoJxxKaYPzewv9tsGA4RJ0/llbRuBEAPtAz7T9uqZkr8M/Xe3by1Gk+B7XTtn0BD/80/2/PP9Ihx0D+dTv1TL9sXYsl8Ob9g1zSMjl0TWDorOA4uL2pWixpgu11T099Hjbw3kNcTiKPLIajqO4KxegS5J0tr+gH59dPa4VRTSGLmUVmsfo46mHogbJh61NQHSuRBLHPavnEFCz+WVzIRCCvUJ+tUSorXTrresq25/bKiJClrirZmlG2vwVWMsa+WvUjXr8bm7l3f1IsZPRbEwbW8zJW4hmixIP7RnqtK1rRIHZXK190la5uFpdGwsCzQY+9gJ5U1DQIV64B2hfU9zqorciuKjHrhozWvr3ED255RGUcYVZZCQCl/5IeixhnkoDGadk1jLPyf4s0YGxijdwbFzX97Zjdh3dBqNSycmqU5qEWkizuzawfD7s/senU4ZhQFPlqc6z8pTsALtM7twG7qdylnUhTmMbGz/J1eNB2OeJ3mb7N6Q+e4L8vf2lWf41wBr5//Oq+bzm3NNgPC5McnpvF98NDLPkYhNL7cGGLCzmOI+5ox5B87A6Q3oofPAHaXMUS7qbSsl8WQajDSFJ04aEC9/PNRnMcK8SSjhRFTFiGpbYU2lxM8ALBL7GTBpGBl2amtYfAQzfyju4Te/NNFePcX \ No newline at end of file diff --git a/docu/docs/img/broadcast.png b/docu/docs/img/broadcast.png new file mode 100644 index 0000000000000000000000000000000000000000..4d93707a82bbe35830e972ee1693da87c43b8c02 GIT binary patch literal 52272 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

pWRHI&`7tNiJas@jp)gCi=#c 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 3 +---

![BOSWatch](img/bw3.png "BOSWatch 3 Logo")
diff --git a/docu/docs/information/broadcast.md b/docu/docs/information/broadcast.md index 9653eec..1491410 100644 --- a/docu/docs/information/broadcast.md +++ b/docu/docs/information/broadcast.md @@ -2,26 +2,30 @@ Durch den Broadcast Service haben CLients die Möglichkeit, automatisch den Server zu finden und sich mit diesem zu verbinden. Dazu stellt der Server die benötigten Verbinungsinformationen per Broadcast Service bereit. -*Server und Client müssen sich natürlich im selben Subnetz befinden.* +**Hinweis:** *Server und Client müssen sich im selben Subnetz befinden.* --- +## Aufbau Der Broadcast Service besteht aus 2 Teilen - einem Server und einem Clienten. -Nachfolgend soll der Ablauf einer Verbunding des Clienen zum Server mittels des Broadcast Serives erklärt werden. +Nachfolgend soll der Ablauf einer Verbunding des Clienen zum Server mittels des Broadcast Services erklärt werden. -## Schritt 1 - Broadcast Server starten +
![](../img/broadcast.png)
+ +--- +## Ablauf + +### Schritt 1 - Broadcast Server starten Im ersten Schritt wird auf dem Server ein zusätzlicher Broadcast Server in einem seperaten Thread gestartet. Dieser lauscht auf einem festgelegten Port auf UDP Broadcast Pakete. Nun kann eine beliebige Anzahl von Clienten mittels des Broadcast Services die Verbinundgdaten des Server abfragen. -## Schritt 2 - Broadcast durch Clienten -Die CLient Applikation startet nun zur Abfrage der Verbindungsdaten einen BC Clienten und sendet dort auf dem festgelegten Port ein Paket per UDP Boradcast. Der Inhalt des Paketes ist das Magic-Word `` und wird von allen im selben Subnetz vohandenen Gegenstellen empfangen. Nun wird auf eine Antwort des Broadcast Server mit den Verbindungsdaten gewartet. +### Schritt 2 - Broadcast durch Clienten +Die Client Applikation startet nun zur Abfrage der Verbindungsdaten einen BC Clienten und sendet dort auf dem festgelegten Port ein Paket per UDP Boradcast. Der Inhalt des Paketes ist das Magic-Word `` und wird von allen im selben Subnetz vohandenen Gegenstellen empfangen. Nun wird auf eine Antwort des Broadcast Server mit den Verbindungsdaten gewartet. -## Schritt 3 - Verbindungsdaten senden +### Schritt 3 - Verbindungsdaten senden Wird nun ein Broadcast Paket empfangen, prüft der BC Server die Daten auf das Magic-Word ``. Wird dieses erkannt, liest der Server die Absender-IP-Addresse aus dem Paket aus und sendet eine Antwort direkt an diesen Clienten. Dieses Antwortpaket sieht folgendermaßen aus: `;8080` wobei die `8080` hier den normalen TCP Kommunikationsport des Server darstellt. -## Schritt 4 - Verbindungsdaten empfangen +### Schritt 4 - Verbindungsdaten empfangen Nachdem der Client das direkt an ihn gerichtete Paket mit den Verbindungsdaten vom Server empfangen hat, prüft er auf das Magic-Word ``. Ist dieses enthalten wird der Port für die TCP Verbundindung aus dem Paket extrahiert. Außerdem wird die IP-Addresse des Absenders aus dem Paket gelesen. Anschließend stehen dem Clienten die Verbindungsdaten des Servers zur Verfügung und er kann sich per TCP über den angegebenen Port mit dem BOSWatch Server verbindden um seine Alarmierungs-Pakete zu versenden. ---- - Da der Broadcast Server in einem eigenen Thread, unabhängig vom Hauptprogram läuft, können ganz einfach weitere Clienten per Broadcast Service die Verbindungsdaten des Servers abrufen. diff --git a/docu/docs/modul/mode_filter.md b/docu/docs/modul/mode_filter.md index 037199b..5f167f7 100644 --- a/docu/docs/modul/mode_filter.md +++ b/docu/docs/modul/mode_filter.md @@ -1,9 +1,9 @@ #
Mode Filter
+--- ## Beschreibung Mit diesem Modul ist es Möglich, die Pakete auf bestimmte Modes (FMS, POCSAG, ZVEI) zu Filtern. Je nach Konfiguration werden Pakete eines bestimmten Modes im aktuellen Router weitergeleitet oder verworfen. ---- ## Resource `filter.modeFilter` @@ -21,4 +21,14 @@ Mit diesem Modul ist es Möglich, die Pakete auf bestimmte Modes (FMS, POCSAG, Z allowed: - fms - pocsag -``` \ No newline at end of file +``` + +--- +## Abhängigkeiten + +- keine + +--- +## Paket Modifikationen + +- keine diff --git a/docu/docs/tbd.md b/docu/docs/tbd.md index 61a8220..ab157ce 100644 --- a/docu/docs/tbd.md +++ b/docu/docs/tbd.md @@ -1,5 +1,4 @@ #
To be done ...
- --- Hier existiert noch kein Inhalt, gerne kannst du uns aber Helfen die Dokumentation zu vervollständigen. diff --git a/docu/mkdocs.yml b/docu/mkdocs.yml index dae0bc7..4c4fa4d 100644 --- a/docu/mkdocs.yml +++ b/docu/mkdocs.yml @@ -7,10 +7,10 @@ edit_uri: edit/develop/docu/docs/ nav: # - BW3: index.md - Quick Start: -# - Installation: tbd.md + - Installation: tbd.md - Konfiguration: config.md -# - BOSWatch nutzen: tbd.md -# - BOSWatch als Service: tbd.md +# - BOSWatch benutzen: tbd.md +# - Als Service einrichten: tbd.md - Informationen: # - Server/Cient Prinzip: tbd.md - Broadcast Service: information/broadcast.md