diff --git a/docu/docs/modul/descriptor.md b/docu/docs/modul/descriptor.md
new file mode 100644
index 0000000..30d9b13
--- /dev/null
+++ b/docu/docs/modul/descriptor.md
@@ -0,0 +1,65 @@
+#
Descriptor
+---
+
+## Beschreibung
+Mit diesem Modul können einem Alarmpaket beliebige Beschreibung in Abhänigkeit der enthaltenen Informationen im Paket hinzugefügt werden.
+
+## Resource
+`descriptor`
+
+## Konfiguration
+
+Informationen zum Aufbau eines [BOSWatch Pakets](../develop/packet.md)
+
+|Feld|Beschreibung|Default|
+|----|------------|-------|
+|scanField|Feld des BW Pakets welches geprüft werden soll||
+|descrField|Name des Feldes im BW Paket in welchem die Beschreibung gespeichert werden soll||
+|wildcard|Optional: Es kann für das angelegte `descrField` automatisch ein Wildcard registriert werden|None|
+|descriptions|Liste der Beschreibungen||
+
+#### `descriptions:`
+
+|Feld|Beschreibung|Default|
+|----|------------|-------|
+|for|Inhalt im `scanField` auf welchem geprüft werden soll||
+|add|Beschreibungstext welcher im `descrField` hinterlegt werden soll||
+
+**Beispiel:**
+```yaml
+- type: module
+ res: descriptor
+ config:
+ - scanField: zvei
+ descrField: description
+ wildcard: "{DESCR}"
+ descriptions:
+ - for: 12345
+ add: FF DescriptorTest
+ - for: 45678
+ add: FF TestDescription
+ - scanField: status
+ descrField: fmsStatDescr
+ wildcard: "{STATUSTEXT}"
+ descriptions:
+ - for: 1
+ add: Frei (Funk)
+ - for: 2
+ add: Frei (Wache)
+ - ...
+```
+
+---
+## Abhängigkeiten
+
+- keine
+
+---
+## Paket Modifikationen
+
+- Wenn im Paket das Feld `scanField` vorhanden ist, wird das Feld `descrField` dem Paket hinzugefügt
+
+---
+## Zusätzliche Wildcards
+
+- Von der Konfiguration abhängig
\ No newline at end of file
diff --git a/docu/mkdocs.yml b/docu/mkdocs.yml
index 1942050..c8432d3 100644
--- a/docu/mkdocs.yml
+++ b/docu/mkdocs.yml
@@ -20,6 +20,7 @@ nav:
- Module:
- Mode Filter: modul/mode_filter.md
- Regex Filter: modul/regex_filter.md
+ - Descriptor: modul/descriptor.md
- Plugins: tbd.md
- Entwickler:
- Eigenes Modul/Plugin schreiben: develop/ModulPlugin.md
diff --git a/module/descriptor.py b/module/descriptor.py
index a0d7d15..35d41e5 100644
--- a/module/descriptor.py
+++ b/module/descriptor.py
@@ -9,10 +9,10 @@
German BOS Information Script
by Bastian Schroll
-@file: template_module.py
-@date: 01.03.2019
+@file: descriptor.py
+@date: 27.10.2019
@author: Bastian Schroll
-@description: Template Module File
+@description: Module to add descriptions to bwPackets
"""
import logging
from module.module import Module
@@ -26,28 +26,31 @@ logging.debug("- %s loaded", __name__)
class BoswatchModule(Module):
- """!Description of the Module"""
+ """!Adds descriptions to bwPackets"""
def __init__(self, config):
"""!Do not change anything here!"""
super().__init__(__name__, config) # you can access the config class on 'self.config'
def onLoad(self):
"""!Called by import of the plugin"""
- pass
+ for descriptor in self.config:
+ if descriptor.get("wildcard"):
+ self.registerWildcard(descriptor.get("wildcard"), descriptor.get("descrField"))
def doWork(self, bwPacket):
"""!start an run of the module.
@param bwPacket: A BOSWatch packet instance"""
- if bwPacket.get("mode") == "fms":
- pass
- elif bwPacket.get("mode") == "zvei":
- pass
- elif bwPacket.get("mode") == "pocsag":
- pass
- elif bwPacket.get("mode") == "msg":
- pass
-
+ for descriptor in self.config:
+ for description in descriptor.get("descriptions"):
+ if not bwPacket.get(descriptor.get("scanField")):
+ break # scanField is not available in this packet
+ bwPacket.set(descriptor.get("descrField"), description.get("for"))
+ if str(description.get("for")) == str(bwPacket.get(descriptor.get("scanField"))):
+ logging.debug("Description '%s' added in packet field '%s'", description.get("add"),
+ descriptor.get("descrField"))
+ bwPacket.set(descriptor.get("descrField"), description.get("add"))
+ break # this descriptor has found a description - run next descriptor
return bwPacket
def onUnload(self):