@firemergency-Team:
Ich habe ein großes Problem mit dem DME-Listener und mehreren Adressen die gleichzeitig ausgewertet sollen:
Wenn man die Zeit bei ein paar hundert Millisekunden lässt, kommen nur die Hälfte Meldungen an (was auch mehr als verständlich ist) bzw. es gibt dann mehrere "Fetzen" der Alarmierung.
Wenn ich jedoch her geh und wie die meisten hier 4000-10000 ms nutze, damit wirklich alles bei FE ankommt, die Auswertung im Programm Probleme bereitet.
--> Die Auswertung der einzelnen Adressen funktioniert ja mittlerweile!
Es funktioniert jedoch nicht mit dem Alarmtext. Denn je nach dem wie der Melder (Hier:Boss 925, was aber für alle Swissphone-Melder gilt) programmiert ist, gibt er die einzelnen Adressen als:
Code:
Adresse als Ton --> CR+LF Fixtext CR+LF NULL
Adresse als Alpha --> CR+LF 18:24 16.03.13 CR+LF 02B CR+LF Fixtext Alarmtext CR+LF NULL
aus.
Siehe http://www.funkmeldesystem.de/foren/...ad.php?t=54814
Das bedeutet: Bei einem Intervall mit 4000 ms bekommt man als Alarmtext eine riesiger String mit beiden oben genannten Optionen (je nach Konfiguration). Eine Weiterverarbeitung dieses Textes ist nicht sinnvoll. Auch können keine Filter (auch nicht mit Regex) angewendet werden, da der String zu Variabel ist.
Nochmal: Das Aufrufen der einzelnen Adressen zu den "Pipelines" funktioniert.
Ein Lösungsansatz wäre aus meiner Sicht, dass CR LF (\r\n) mit ausgewertet wird und als Trennzeichen fungiert. Hier muss dann aber auch der DME-Listener für jede Auswertung zwischen den Zeichen einen Alarm anlegen. Jetzt wird derzeit ein Alarm angelegt (im Server) jedoch alle Fixtexte (Pipelines) gefunden.
Da dies tiefere Eingriffe in die Funktionsweise des Plugins sind ist es natürlich nicht mehr universell einsetzbar für Übergaben über die serielle Schnittstelle. Daher wäre es m.M. nach am besten hier eine Checkbox für die Swissphone-Interpretation der Daten setzen zu können.
Wenn das umgesetzt wird, wäre das Sahnehäubchen, die Begriffe Port-Listener und FMEListener im Log (oder auch im Plugin) auf DME-Listener gleichzuziehen.
Beispiel:
Die Übergaben sind im angehängten Bild ersichtlich.
Wünschenswert:
Code:
- Alarm für GF_Nacht (ohne Text)
- Alarm für Gruppe4 (ohne Text)
- Alarm für Kommandant mit Text, Datum und hier 02B
- Alarm für stv_Kommandant mit Text, Datum und hier 03B
- Alarm für ZF_Nacht (ohne Text)
Wobei das übergebene Datum und die Uhrzeit mit persönlich nicht wichtig ist und es steht per Variable in FE zur Verfügung. Dies filtere ich per Regex raus. Jedoch die 02B bzw. die 03B (Adressenindex und Subric vom Melder) ist wichtig, da ich hier die Einsatzart auswerten kann.
Hoffe das ihr das Problem nachvollziehen könnt.
Würde mich über eine Antwort freuen... ;-)
EDIT:
Habe die Steuerzeichen im zweiten Bild nochmal deutlicher dargestellt. Es kann natürlich auch NULL verwendet werden.