BW3-Core/plugin/readme.md

42 lines
1.8 KiB
Markdown
Raw Normal View History

2018-01-15 14:18:15 +01:00
## Eigene Plugins schreiben
2018-01-15 21:37:24 +01:00
Um ein eigenes Plugin zu schreiben, sollte man sich am besten zuerst einmal das Plugin `template` ansehen.
2018-01-15 14:18:15 +01:00
Dies kann als Vorlage für das eigene Plugin genutzt werden.
### 1.) Informationen anpassen
- Dateikopf anpassen
2018-02-22 13:36:50 +01:00
- Namen des Plugins vergeben in der `__init__` Methode `super().__init__("template")`
2018-01-15 14:18:15 +01:00
### 2.) Benötigte Methode überschreiben
Die Plugin Basisklasse bietet einige Methoden, welche vom Plugin überschrieben werden können.
- `onLoad()` wird direkt beim Import des Plugins ausgeführt
- `setup()` wird vor jeder Ausführung gerufen
2018-01-15 21:37:24 +01:00
- `fms(bwPacket)` wird bei einem FMS Paket ausgeführt
- `pocsag(bwPacket)` wird bei einem POCSAG Paket ausgeführt
- `zvei(bwPacket)` wird bei einem ZVEI Packet ausgeführt
2018-02-22 13:36:50 +01:00
- `msg(bwPacket)` wird bei einem Nachrichten Packet ausgeführt
2018-01-15 14:18:15 +01:00
- `teardown()` wird nach jeder Ausführung gerufen
- `onUnload()` wird beim Zerstören der Plugin Instanz zum Programmende ausgeführt
2018-01-15 21:32:52 +01:00
### 3.) Zugriff auf Config Datei
Wenn sich im Ordner des Plugins eine ini-Datei befindet,
welche exakt so wie das Plugin heißt, kann deren Inhalt
über die lokale Config-Reader Instanz
- `self.config.getBool(SECTION, KEY)`
- `self.config.getInt(SECTION, KEY)`
- `self.config.getStr(SECTION, KEY)`
abgerufen werden.
2018-01-15 21:37:24 +01:00
### 4.) Daten aus dem BOSWatch Paket lesen
An die Alarm Funktionen FMS, POCSAG und ZVEI wird eine Instanz eines
2018-01-15 21:45:58 +01:00
BOSWatch-Packet Objekts übergeben.
2018-01-15 21:37:24 +01:00
Aus dieser kann mittels `bwPacket.get(FELDNAME)` das entsprechende Feld
ausgelesen werden. Eine Auflistung der bereitgestellten Informationen
2018-02-22 13:36:50 +01:00
findet sich im entsprechenden BOSWatch-Packet Dokument.
### 5.) Wildcards parsen
Das parsen der Wildcars funktioniert komfortabel über die interne Methode `self.parseWildcards(MSG)`.
2018-02-23 07:31:16 +01:00
Die Platzhalter für die Wildcards findet man in `boswatch/utils/wildcard.py` oder in der `packet.md`-