From a92dd8d94c699aba3c1c6fabfed95910b80e1d4f Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Sat, 26 Oct 2019 10:18:55 +0200 Subject: [PATCH] update docs --- boswatch/wildcard.py | 2 +- docu/docs/develop/ModulPlugin.md | 19 +++++++++++++++---- docu/docs/develop/packet.md | 9 +-------- docu/docs/img/client.drawio | 1 + docu/docs/img/client.png | Bin 0 -> 28358 bytes docu/docs/img/server.drawio | 1 + docu/docs/img/server.png | Bin 0 -> 37573 bytes docu/docs/information/serverclient.md | 6 +++++- 8 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 docu/docs/img/client.drawio create mode 100644 docu/docs/img/client.png create mode 100644 docu/docs/img/server.drawio create mode 100644 docu/docs/img/server.png diff --git a/boswatch/wildcard.py b/boswatch/wildcard.py index cf8ced0..814d7a4 100644 --- a/boswatch/wildcard.py +++ b/boswatch/wildcard.py @@ -38,7 +38,7 @@ def replaceWildcards(message, bwPacket): "{BR}": "\r\n", "{LPAR}": "(", "{RPAR}": ")", - "{TIME}": time.time(), + "{TIME}": time.strftime("%d.%m.%Y %H:%M:%S"), # info wildcards # server diff --git a/docu/docs/develop/ModulPlugin.md b/docu/docs/develop/ModulPlugin.md index 0c5aaaa..1afa1f8 100644 --- a/docu/docs/develop/ModulPlugin.md +++ b/docu/docs/develop/ModulPlugin.md @@ -98,20 +98,31 @@ was zur weiteren Ausführung des Routers mit dem original Paket führt. Daher ma --- ## Nutzung der Wildcards +Es gibt einige vordefinierte Wildcards welche in der [BOSWatch Paket](packet.md) Dokumentation zu finden sind. + +Außerdem sind die folgenden allgemeinen Wildcards definiert: + +- `{BR}` - Zeilenumbruch `\r\n` +- `{LPAR}` - öffnende Klammer `(` +- `{RPAR}` - schließende Klammer `)` +- `{TIME}` - Aktueller Zeitstempel im Format `%d.%m.%Y %H:%M:%S` + ### Wildcards registrieren [Module] Module können zusätzliche Wildcards registrieren welche anschließend in den Plugins ebenfalls geparst werden können. Dies kann über die interne Methode `self.registerWildcard(newWildcard, bwPacketField)` gemacht werden. -Der erste Parameter `newWildcard` muss im folgenden Format angegeben werden: `{WILDCARD}` - -Der zweite Parameter `bwPacketField` entspricht dem Namen des Feldes welches dem bwPacket per `bwPacket.set(FIELDNAME, VALUE)` hinzugefügt wurde. +- `newWildcard` muss im folgenden Format angegeben werden: `{WILDCARD}` +- `bwPacketField` ist der Name des Feldes im bwPacket - gestezt per `bwPacket.set(FIELDNAME, VALUE)` **Bitte beachten:** - Selbst vom Modul registrierte Wildcards **müssen** in der Modul Dokumentation unter `Zusätzliche Wildcards` aufgeführt werden. ### Wildcards parsen [Plugins] -Das parsen der Wildcars funktioniert komfortabel über die interne Methode `TEXT = self.parseWildcards(TEXT)`. +Das parsen der Wildcars funktioniert komfortabel über die interne Methode `msg = self.parseWildcards(msg)`. + +- `msg` enstrpicht dabei dem String in welchem die Wildcards ersetzt werden sollen + Die Platzhalter der Wildcards findet man in der [BOSWatch Paket](packet.md) Dokumentation. Sollten Module zusätzliche Wildcards registrieren, findet man Informationen dazu in der jeweiligen Plugin Dokumentation diff --git a/docu/docs/develop/packet.md b/docu/docs/develop/packet.md index 5a20bb1..11b29ac 100644 --- a/docu/docs/develop/packet.md +++ b/docu/docs/develop/packet.md @@ -1,4 +1,4 @@ -#
BOSWatch Packet Format
+#
BOSWatch Paket Format
Ein BOSWatch Datenpaket wird in einem Python Dict abgebildet. In der nachfolgenden Tabelle sind die genutzten Felder abgebildet. @@ -51,10 +51,3 @@ Ein BOSWatch Datenpaket wird in einem Python Dict abgebildet. In der nachfolgend |vehicle|X||||`{VEC}`|| |vehicle|X||||`{VEC}`|| |tacticalInfo|X||||`{TACI}`|(I, II, III, IV)| - ---- -## Weitere Wildcards -- `{BR}` - Zeilenumbruch `\r\n` -- `{LPAR}` - öffnende Klammer `(` -- `{RPAR}` - schließende Klammer `)` -- `{TIME}` - Aktueller zeitstempel diff --git a/docu/docs/img/client.drawio b/docu/docs/img/client.drawio new file mode 100644 index 0000000..efe7227 --- /dev/null +++ b/docu/docs/img/client.drawio @@ -0,0 +1 @@ +7Vjbcts2EP0aPdrDi0gpj5FsJ9Nxpm7VadMnD0iuSNQgwYJLU+rXFzeSoijJlyhOMq09o9EeAIvdPdhDQhN/mW8+CFJmn3gCbOI5yWbiX008bx5M5acCtgbwZ74BUkETA7k9sKL/gAUdi9Y0gWowETlnSMshGPOigBgHGBGCN8Npa86Gu5YkhRGwigkbo3/QBDObljfr8Y9A06zd2Q3fmZGctJNtJlVGEt7sQP71xF8KztF8yzdLYKp2bV3Mupsjo11gAgp8zoKmWa0XC//q4Sf8rYohvZn/vrqY29hw2yYMiczfmlxgxlNeEHbdowvB6yIB5dWRVj/nlvNSgq4E/wLErSWT1MgllGHO7ChsKH5Wyy/DmTX/1GZgrauNda6N7Y5xB4LmgCBarECx/bxr7HhSZu9KW62vcfFsPSteixhOVKw9hESkgCfmeWaeKufOBpaaD8BlFmIrJwhgBOnj8LgRe2rTbl5PrPxiuX0Bz9bvI2G13WlE/CMIpPLgv2c0LSSEis1Fi96SCNgdryhSrkYjjshzOYHtDcSyooqeBbF+OmDnBPAaGS1g2TWt4mRNGVtyxoWOx1/PY4hjiVco+APsjERSVQK1IhUkodL9FRXSjdm/UAeyW9X2rKeQjJQq13yTKqm6LAAbLh6qS+WF3yNvdJhHj4YqBWxOktmqnm15q3mhNZteQILAQNmudjjOV2I//CZd/uat6T2zNYPvqjW9A60ZMlQNwWUFvDBFXRWDRfuAmbTDbfh3zduBi0qz815OcKflph9svfwKMagMZdUyASRpvcpMDu0u4VEAkXgaqUpSPCtI/3SQpEjUuwTE8jVDx6w+E4JEd5dsLi8kuZKtIqrKYdwmhGFY9PUxCWT363yinrndFvS8aetkT8Y/LvQXZJTX8q0q58VFkZ7KaXQy9pRlqBtNRhFWJdF920jZHWrESNod/Td+GNws1f951NkNn5RnN3DeUp9dd1TGNxDo1wvt9NwCapfecarFzBIV7hHlunsEGKW3q/Y46MJ4PS3Tb6nMnwgtvm9ZXoFWYyPCssUfAPXtrMMqELIrVZXXHRbxqiEYZ52M6/HKXJjijCrxsVLu0KKs0aj7C2Xwxxep6fRpkZq9qUjN/hsvkcEzXyLProFfRE5wVKo6YfilBjl2UDH2eG0vSvFWXtISfSl6okUiw/Nt1AFSDlLN/s/mqnesl7q73LHb3xl6yZ8Gg16ajXspPNBK86/VSe8OkPX/Zdxexhu5nEFV3efy4ZCf5wCE+2IajMXUOXQCghefAGn2P+mZF5H+d1H/+l8= \ No newline at end of file diff --git a/docu/docs/img/client.png b/docu/docs/img/client.png new file mode 100644 index 0000000000000000000000000000000000000000..fea551233ea142846c3e2802bf97b6f7a3fd9665 GIT binary patch literal 28358 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 d(uusmTADa^IT_{sVQkIRw+P3{{t@)y5|4@ literal 0 HcmV?d00001 diff --git a/docu/docs/img/server.drawio b/docu/docs/img/server.drawio new file mode 100644 index 0000000..7a1cd1b --- /dev/null +++ b/docu/docs/img/server.drawio @@ -0,0 +1 @@ +7VrbkuI2EP0aHpcCC3N5HGBmt1IzlcmSyu48pYQtbGVki5XlNeTr07Il3wGTZRYqE6gy0tHFLXX3UUuihxbB7qPAW/+Ju4T1rIG766Flz7Km9gieCthnwEjlFOAJ6mbQsABW9G+iwYFGY+qSqFJRcs4k3VZBh4chcWQFw0LwpFptw1n1rVvskQawcjBrol+oK309LGtS4J8I9Xzz5uF4lpUE2FTWI4l87PKkBKH7HloIzmWWCnYLwtTcmXnJ2j0cKM0FEySUXRokyWozn6Pl6y/y98gh3sP0j9UHpLv5jlmsR6yllXszBYLHoUtUL4Memic+lWS1xY4qTUDngPkyYJAbQjKSgr+SBWdcpK3ROP1AyYYyVsI3tvoqnIeyhGcfwDGjXggYIxsY31zLSYQku4MzMMznFeyR8IBIsYcqusFMa0Kb4nCi80mh2PFAY35ZqQbE2pi8vOtiviGhp/yM6bfsxmwTF+xPZ7mQPvd4iNl9gc6r+ijqPHK+1Vr4i0i5186EY8mrOoLpEvuvqn3fNtkX3V2aWe4qub3OZbIqAY8rAMbDY+GQIwPXrCCx8Ig8NkGjdo0KwrCk36uCtKknbXonBN6XKmw5DWVU6vlZAYWhjAd21VLsmmvV6g+nR+tDIpOgMJR8KP/edkYtnjtmUnsUpL3MbTJsXQeySiXLG3+LuSn4EKW2cwcVhqPtrig0vTxhGir9+YJg13QJw2h7NcCNt6/FaSTa4rCThKhNwiUFKqLrWJJUTpIaqvNKlN6V3Dz2/LwEcpKGnqJt4vg4pFFQkj4T5JS4jdFflEYH6adJow8L9b0MP9pWlSBNDyV+zDnz5/Dj8Dr8uKPyayn9UlAl5ApyVBnDjQWnVhi1INi351S7I6f+KKX+kEbtg6yVc8RvMYGyVvKo2QKEVFuVdPaMgsrFab9aZ7bxuM4B4AQvtZhfYwm9kEMOuIZQ1m5xwM3UIY5zGQcc1RwQNR1w3OJ/0zdzP3Td8ORqrjTr6EpD65q+NDsduytzpLCbudPBtFQ6mBv0Ea8Je+YRlZSr0jWXkgdQgdUKHJjB1L1MUJ4DJb3xzIEW+U7smLcc9i9PYJdC90sqoJvs/aEyo7yV2YhZCtEUEOw8tf/sh0QmXLxG/QSaMxJFfwawJQ0u45/T2vo47dvNFbJtB2Hiw8t76OT/BbKzVw+tjm5tX9OrjZTXCew/E4eoId50bF8WUj1dLLE63BFAXtZgzaMES0dF9w5TTKK0FLrKaGKVpukjBKNWODy+1QKO9xLv54dsNxPvm2O1Y0vaT+C3C3KO1ZVzLHRN0rGuSjpP3I1hrb5JrlmkjcELVbxjDbib/kBQQTcOlg0O0sciClmnxw3vkFdQ/fhs2jxobSWWyZvxCrqmeT+z2KPhbZr3fehu9WEm31SMuQ+/K6xW2YXqnqQrKBcp6YFW/Oy8jLDoPS6ddm3pvAETH//nls7OlwRX3YVb5x3Ed3bXVippMNRn2HWrFekwh3T2yktTyxMOsUeixno42DCeKNScwQdm+TdheoMv3wut5JH1zdAKagsM67QSunfqqh1yDsNRRJ1e63HBoG+ZM4KXUtGp84L+pHJLmR8Rvv2BQffg/QADldRmt2jNYOfdZrZcV1aMBqGaMWTj1I0Ke2j0M5qd6Cibh0ZH516votG08h5zMX9QLoSO1T/3ehWyxb8usurFX1fQ/T8= \ No newline at end of file diff --git a/docu/docs/img/server.png b/docu/docs/img/server.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac8e715ac196e71084f78be3251322e3cc2d5b7 GIT binary patch literal 37573 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
    STx6G+U)*vSMFF#hKn-}or`CUKq8 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 literal 0 HcmV?d00001 diff --git a/docu/docs/information/serverclient.md b/docu/docs/information/serverclient.md index f0d6bca..6916b67 100644 --- a/docu/docs/information/serverclient.md +++ b/docu/docs/information/serverclient.md @@ -17,6 +17,8 @@ nachträglich an den Server übermittelt werden. Dabei überwacht der Client selbstständig die benötigten Programme zum Empfang der Daten und startet diese bei einem Fehler ggf. neu. +
    ![](../img/client.png)
    + --- ## BOSWatch Server @@ -26,4 +28,6 @@ Verarbeitung der Daten. Auch hier werden die empfangenen Daten in From von bwPacket's in einer Queue abelegt um zu gewährleisten, das auch während einer länger dauernden Plugin Ausführung alle Pakete korrekt empfangen werden können und es zu keinen Verlusten kommt. Die Verarbeitung der Pakete geschieht anschließend in sogenannten Routern, welche aufgrund ihres Umfangs jedoch in einem eigenen Kapitel -erklärt werden. Diese steuern die Verteilung der Daten an die einzelnen Plugins. \ No newline at end of file +erklärt werden. Diese steuern die Verteilung der Daten an die einzelnen Plugins. + +
    ![](../img/server.png)
    \ No newline at end of file