diff --git a/docu/docs/img/router.drawio b/docu/docs/img/router.drawio new file mode 100644 index 0000000..dd94468 --- /dev/null +++ b/docu/docs/img/router.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docu/docs/img/router.png b/docu/docs/img/router.png new file mode 100644 index 0000000..61af275 Binary files /dev/null and b/docu/docs/img/router.png differ diff --git a/docu/docs/information/router.md b/docu/docs/information/router.md new file mode 100644 index 0000000..93a4bd4 --- /dev/null +++ b/docu/docs/information/router.md @@ -0,0 +1,93 @@ +#
Routing Mechanismus
+ +BOSWatch 3 hat einen Routing Mechanismus integriert. Mit diesem ist es auf einfache Weise möglich, den Verlauf von Alarmpaketen zu steuern. + + +--- +## Ablauf + +Nachfolgender Ablauf soll am Beispiel eines Alarms mit einem Pocsag Paket erklärt werden. + +
![](../img/router.png)
+ +- BOSWatch startet alle Router, welche in der config als `alarmRouter` konfiguriert worden sind (in diesem Fall nur `Router1`) +- Der Router `Router1` beginnt seine Ausführung und arbeitet die einzelnen Routenpunkte sequentiell ab + - Das Modul `descriptor` wird aufgerufen und fügt ggf. Beschreibungen zum Paket hinzu + - Das Modul `doubleFilter` wird aufgerufen und blockiert doppelte Alarme + (hier würde die Ausführung dieses Routers und damit des kompletten Alarmprozesses stoppen wenn der Alarm als doppelter erkannt würde) + - Der Router `Router2` wir nun aufgerufen (bis zur Rückkehr aus `Router2` ist der Router `Router1` angehalten) +- Der Router `Router2` beginnt seine Ausführung und arbeitet die einzelnen Routenpunkte sequentiell ab + - Das Modul `modeFilter` wird aufgerufen und stoppt den Router da es sich nicht um ein FMS Paket handelt + - Es wird zur Ausführung von `Router1` zurückgekehrt +- Der Router `Router3` beginnt seine Ausführung und arbeitet die einzelnen Routenpunkte sequentiell ab + - Das Modul `modeFilter` wird aufgerufen und leitet das Paket weiter da es sich um ein Pocsag Paket handelt + - Das Plugin `Telegram` wird aufgerufen + - Das Plugin `MySQL` wird augerufen + - Es wird zur Ausführung von `Router1` zurückgekehrt +- Der Router `Router1` setzt seine Ausführung fort + - Das Modul `modeFilter` wird aufgerufen und stoppt den Router da es sich nicht um ein ZVEI Paket handelt + +Jetzt sind alle Routenpunkte abgearbeitet und die Alarmierung damit abgeschlossen. + +--- +## Konfiguration + +Nachfolgend ist die Router Konfiguration des BW3-Servers für das obige Beispiel zu finden: + +```yaml +alarmRouter: + - Router1 + +router: + - name: Router1 + route: + - type: module + res: descriptor + config: + [...] + - type: module + res: filter.doubleFilter + config: + [...] + - type: router + res: Router2 + - type: router + res: Router3 + - type: module + res: filter.modeFilter + config: + allowed: + - zvei + - type: plugin + res: sms + config: + [...] + + - name: Router2 + route: + - type: module + res: filter.modeFilter + config: + allowed: + - fms + - type: plugin + res: mysql + config: + [...] + + - name: Router3 + route: + - type: module + res: filter.modeFilter + config: + allowed: + - pocsag + - type: plugin + res: telegram + config: + [...] + - type: plugin + res: mysql + config: + [...] +``` diff --git a/docu/mkdocs.yml b/docu/mkdocs.yml index c8432d3..0948dd6 100644 --- a/docu/mkdocs.yml +++ b/docu/mkdocs.yml @@ -15,7 +15,7 @@ nav: - Server/Cient Prinzip: information/serverclient.md - Broadcast Service: information/broadcast.md # - Modul/Plugin Konzept: tbd.md -# - Routing Mechanismus: tbd.md + - Routing Mechanismus: information/router.md - Changelog: changelog.md - Module: - Mode Filter: modul/mode_filter.md