BW3-Core/docu/docs/modul/descriptor.md

134 lines
3.9 KiB
Markdown
Raw Normal View History

2019-10-27 21:08:23 +01:00
# <center>Descriptor</center>
---
## Beschreibung
2019-10-27 21:53:00 +01:00
Mit diesem Modul können einem Alarmpaket beliebige Beschreibungen in Abhänigkeit der enthaltenen Informationen hinzugefügt werden.
2019-10-27 21:08:23 +01:00
2020-02-24 23:38:13 +01:00
## Unterstütze Alarmtypen
- Fms
- Pocsag
- Zvei
- Msg
2019-10-27 21:08:23 +01:00
## Resource
`descriptor`
## Konfiguration
Informationen zum Aufbau eines [BOSWatch Pakets](../develop/packet.md)
2021-02-04 17:07:30 +01:00
**Achtung:** Zahlen welche führende Nullen entahlten müssen in Anführungszeichen gesetzt werden Bsp. `'0012345'`
2019-10-27 21:08:23 +01:00
|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||
|csvPath|Pfad der CSV-Datei (relativ zum Projektverzeichnis)||
2019-10-27 21:08:23 +01:00
#### `descriptions:`
|Feld|Beschreibung|Default|
|----|------------|-------|
|for|Inhalt im `scanField` auf welchem geprüft werden soll||
|add|Beschreibungstext welcher im `descrField` hinterlegt werden soll||
|isRegex|Muss explizit auf `true` gesetzt werden, falls RegEx verwendet wird|false|
2019-10-27 21:08:23 +01:00
**Beispiel:**
```yaml
- type: module
res: descriptor
config:
2020-04-14 22:17:53 +02:00
- scanField: tone
2019-10-27 21:08:23 +01:00
descrField: description
wildcard: "{DESCR}"
descriptions:
- for: 12345
add: FF DescriptorTest
2021-02-04 17:07:30 +01:00
- for: '05678' # führende Nullen in '' !
2019-10-27 21:08:23 +01:00
add: FF TestDescription
- for: '890(1[1-9]|2[0-9])' # Regex-Pattern in '' !
add: Feuerwehr Wache \\1 (BF)
isRegex: true
2019-10-27 21:08:23 +01:00
- scanField: status
descrField: fmsStatDescr
wildcard: "{STATUSTEXT}"
descriptions:
- for: 1
add: Frei (Funk)
- for: 2
add: Frei (Wache)
- ...
```
**Wichtige Punkte für YAML-Regex:**
- Apostroph: Regex-Pattern sollten in `'` stehen, um YAML-Parsing-Probleme zu vermeiden
- isRegex-Flag: Muss explizit auf `true` gesetzt werden
- Escaping: Backslashes müssen in YAML doppelt escaped werden (`\\1` statt `\1`)
- Regex-Gruppen: Mit `\\1`, `\\2` etc. können Teile des Matches in der Beschreibung verwendet werden
#### `csvPath:`
**Beispiel:**
```
- type: module
res: descriptor
config:
- scanField: tone
descrField: description
wildcard: "{DESCR}"
csvPath: "config/descriptions_tone.csv"
```
`csvPath` gibt den Pfad zu einer CSV-Datei an, relativ zum Projektverzeichnis (z. B. `"config/descriptions_tone.csv"`).
Eine neue CSV-Datei (z. B. `descriptions_tone.csv`) hat folgendes Format:
**Beispiel**
```
for,add,isRegex
11111,KBI Landkreis Z,false
12345,FF A-Dorf,false
23456,FF B-Dorf,false
^3456[0-9]$,FF Grossdorf, true
```
In der Spalte isRegex kann **zusätzlich** angegeben werden, ob der Wert in for als regulärer Ausdruck interpretiert werden soll (true/false). Standardmäßig ist `false`.
Wenn `isRegex` auf `true` gesetzt ist, wird der Wert aus `for` als regulärer Ausdruck ausgewertet.
### Kombination von YAML- und CSV-Konfiguration
Beide Varianten können parallel genutzt werden. In diesem Fall werden zuerst die Beschreibungen aus der YAML-Konfiguration und zusätzlich die Beschreibungen aus der angegebenen CSV-Datei geladen.
**Beispiel**
```
- type: module
res: descriptor
config:
- scanField: tone
descrField: description
wildcard: "{DESCR}"
descriptions:
- for: 12345
add: FF YAML-Test
- for: '05678' # führende Nullen in '' !
add: FF YAML-Nullen
csvPath: "config/descriptions_tone.csv"
```
2019-10-27 21:08:23 +01:00
---
2020-02-24 23:38:13 +01:00
## Modul Abhängigkeiten
- keine
2019-10-27 21:08:23 +01:00
2020-02-24 23:38:13 +01:00
---
## Externe Abhängigkeiten
2019-10-27 21:08:23 +01:00
- keine
---
## Paket Modifikationen
- Wenn im Paket das Feld `scanField` vorhanden ist, wird das Feld `descrField` dem Paket hinzugefügt
2019-10-27 21:53:00 +01:00
- Wenn keine Beschreibung vorhanden ist, wird im Feld `descrField` der Inhalt des Feldes `scanField` hinterlegt
2019-10-27 21:08:23 +01:00
---
## Zusätzliche Wildcards
- Von der Konfiguration abhängig