From 2d365823d84ea7536132712579f2cf05b54ee15a Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Mon, 28 Oct 2019 08:59:54 +0100 Subject: [PATCH] add routing docu --- docu/docs/img/router.drawio | 1 + docu/docs/img/router.png | Bin 0 -> 48160 bytes docu/docs/information/router.md | 93 ++++++++++++++++++++++++++++++++ docu/mkdocs.yml | 2 +- 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 docu/docs/img/router.drawio create mode 100644 docu/docs/img/router.png create mode 100644 docu/docs/information/router.md 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 @@ +7Vxbc+I2FP41zLQPYWz5AnkEkmx3ujtLS6d7eekIW7bVCsuVRQL99ZV8wRfsrAlgkQ15wTqWbEnnfOeTjk48MGarzTsGo+AjdREZAM3dDIy7AQC6qY3Fj5RsU8nIvE0FPsNuVqkQLPB/KBNqmXSNXRRXKnJKCcdRVejQMEQOr8ggY/SpWs2jpPrWCPpoT7BwINmXfsYuD1LpGIwK+S8I+0H+Zt3OxreCeeVsJHEAXfpUEhn3A2PGKOXp1WozQ0ROXj4vabuHlru7jjEU8i4NHh9mC+RObr/huQbnwa/2/ca8sbJxxHybjxi5YgKyImU8oD4NIbkvpFNG16GL5GM1USrqfKA0EkJdCP9GnG8zbcI1p0IU8BXJ7qIN5l+y5vL6q7wejqyseLcp3bvb5oWQs+2XciFtZuXFollSytulA5Sjap24TBTTNXPQM7Nl5BYImY/4MxXtnX4FMBBdIdEh0Y4hAjl+rHYEZhbq7+oVShQXmR4P0Gney0dI1tmrBsAmor/TOIJhRdv2v2tpf1OPhvwmTvQ1ERV0M9oUN8WVn/0mT1nmAgH3NdlJWUmMHjDhSEi0n779ef/+5/1KuUQMcdkgS3uai2smWhigtKanAHO0iGCiuifhhqrG5mFCZpRQlrQ1XIjGniPngjP6DyrdsZ0xWnq79z0ixtHmeZvZV3HWwM5An3k9My8/FT5E+MZUFpT8Ry47uVHk/lQR0IdWCep6R5wX0P5aQfbZcd4V5kAlzNtRvocnie6Xw/53uhZQ1kvgTJ/3HI5PCFjP84DTCFjXXtqWfRrAmlXA6k2AtXsFrFpmfl2ABR0BqyslZqCYl+9Q7DAcccreOB3v1uTq6PhWJbr1QXndDS5/3d0V3i1W0BneSdMJY3BbqhBRHPK49OS5FBTGBcZV6zKs2kbsO/X1sVazp7QHhXXthnKE7xlf6eTk9gZMlXRi9EUnDkw6k64DweVwRz8rwxp3GKZq7rguDLsj2e7KHCqBbO8Befpp8RlyJxBSI1E1ZJKBNEggW0k7g6FLcOgnZshlNR6ggVzVpKjDrVhOnpAi+Tuw3X/GDvAeo6s05uph/zhInwCgta2b1XHnNjoXPsE11HJAqKVrrEW3VEJU7znaAgY/dLTFAJcWbgHgCtruoO0ab2kzg55A2x5wOQtojR8btLZ2aaC1LKWgrURRup5e6tUoyqjHMIpudYStcSRqXxRGqXMC+E4YpV7fGPUQRsmn8ELOVh8+Lt7c0aphXlww9xpbO8AJdd2SH+uEjlPp/p68X5y7dL0kO6S/LYTXT2vGqgFuqF1nvC6Ag647ekMpwkH7jl4Fk88/zd4ck9v1FZ9yJgfXY9lDkG52RHq6Ee97Q2HVk/D05zcU9fq9nMua12DxGQzOUBp3yrvZ88mscTn8oeRk1tSU00dv0YE5Wfs4bFhUbBe/fbggOxg7qNkOlmPLtLTT2MFeRED9huH1RQQUxiWNzscJavNt2o8Trug+H7rruwT1CTiG/erQrTCXrmsynXHsJuE4nfaWTdcG7j8QQT6Dq7eO7wtg71vVtrD4uHhzZlDL4lIeCzJNpV5+UI4FvexsucclnNnVyyv9Bxyz3cl3zv+wm4A9yfIyBaT+QfI5WGZrZmmSfBuVczNfnnrS+Or5p9li8u6gzJOWqq0uQzvcZXjIbtn/j26X2olcRt1n2Naey9iRST/5KE07hNq0xgGM5CVeJV8eKE+inAzsQDIh2A+FjEufsZN+gEtE5jTGHFN5d0k5F/ZlTIm8MRWW5ycqq4ZhxJ+okrxsEkfpFxLk9MO84OGNVPI0689dwLn8tMJEzgR4cNzQHOIk0VcYAxs60qIfXMihzBAW8jj9daRnQTceQ+gmF+u6KW3sxmE0jv8Cln2jg/EwCv0TqF6vLRqshtgPaFA9OJvqm1zLVfVnUL1ZS0MDDWlo/aq+PVfguKzC93KpyYOESxwYSxKhIdkO8mz/KFk9xk3cUmwmtCYOgKHb1CqLLzQ2ecLJTCxR0hlCkDsUV5NESEV/WKJEHqSdDZ3kOzBpP701yyswYS5xnP7nAvV2NWCdP5fIgetkxGmFlTxDbWTR8jFqE9mlVBwLQEXpa9MHsiRkPuxKhsJceRWxVWYLaYhqNJiJYIZogjzeAPQVdt1k5dhEsFUKPgVj1iKlprVPmVYTeG4PB48oFh+3SY/Lik8EGff/Aw== \ 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 0000000000000000000000000000000000000000..61af27570b6f81c6ca6ff7d1ba72a595280d44e3 GIT binary patch literal 48160 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 W;!XrUeK&9d__?QLpovnq3H^W8E|Cxb literal 0 HcmV?d00001 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