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
|
|
|
|
|
- Namen des Plugins vergeben in der __init__ Methode `super().__init__("template")`
|
|
|
|
|
|
|
|
|
|
### 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-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
|
|
|
|
|
findet sich im entsprechenden BOSWatch-Packet Dokument.
|