Commit graph

25 commits

Author SHA1 Message Date
KoenigMjr 08d09b4f50 [feat/multicast] refactor: move packet filtering from module to downstream
Remove internal filtering of delimiter and netident packets from the
multicast module. All packets are now passed through with multicastRole
metadata set, allowing downstream filters (e.g. filter.regexFilter) to
handle filtering as needed.

Tone-RICs remain internally consumed as they carry no alarm-relevant
information outside the module.

Update documentation to reflect new behavior and add regexFilter
example for filtering by multicastRole.
2026-03-28 15:41:54 +01:00
KoenigMjr 0b9387af08 [feat/multicast]: add multi-instance multicast module with active trigger system
Introduce a robust multicast processing module for POCSAG that correlates
empty tone-RICs (recipients) with subsequent text-RICs (content).

Key Features:
- Four Output Modes: Internally supports 'complete', 'incomplete', 'single',
  and 'control'. Functional alarms are delivered as the first three, while
  technical 'control' packets (Delimiters/NetIdent) are filtered by default.
- Active Trigger System: Implements a loss-free deferred delivery mechanism
  using a loopback socket (TCP) to re-inject wakeup packets, flushing the
  internal queue during auto-clear timeouts.
- Shared State & Multi-Instance: State is shared across instances but
  separated by frequency to prevent crosstalk in multi-frequency setups.
- Data Aggregation: Automatically generates '{FIELD}_list' wildcards (e.g.,
  RIC_LIST, DESCRIPTION_LIST) for all collected recipients, enabling
  consolidated notifications in downstream plugins.
- Dynamic Filtering: Automatically blocks Delimiter and NetIdent RICs from
  reaching subsequent plugins if they are defined in the configuration.

Infrastructural Changes:
- ModuleBase: Expanded return semantics to support:
  * False: Explicitly blocks/drops a packet.
  * List: Allows a module to expand one input into multiple output packets.
- PluginBase: Updated to handle lists of packets, ensuring a full
  setup->alarm->teardown lifecycle for every individual element.
2026-03-05 13:52:48 +01:00
KoenigMjr 475e4bc5b3 CSV-Cleaning, new matching strategy, new Debug-message, updating docu
- csv-data sets will now be corrected, no matter if the "for"-value is: 1234567, "1234567" or '1234567'
- depending on "isregex" value in csv first exact matches, second regex matches. So it is safe that if double matches occur, exact matches always wins.
- debug for CSV row read implemented
- updating readme to newest development
2025-12-03 22:28:08 +01:00
KoenigMjr 1bd192b0d9 enh: CSV + Regex für descriptor-Modul
- Füge CSV-Import über csvPath-Konfiguration hinzu
- Implementiere Regex-Matching mit isRegex-Flag (YAML & CSV)
- Erstelle unified cache für YAML- und CSV-Einträge
- Wildcard-Replacement mit dynamische Beschreibungen
- Erweitere Logging für bessere Debugging-Möglichkeiten

Neue Features:
* CSV-Dateien können parallel zu YAML-Beschreibungen verwendet werden
* Regex-Unterstützung ermöglicht Pattern-basiertes Matching
* Wildcards wie {TONE} werden in Beschreibungen ("add"-Werte) ersetzt
* Vollständige Abwärtskompatibilität zu bestehenden Konfigurationen

Technische Verbesserungen:
* Unified cache-System für bessere Performance
* Korrekte Iteration über Config-Objekte mit default-Parametern
* Robuste Fehlerbehandlung für CSV-Import
* continue statt break bei fehlenden scanFields

Einschränkungen / known limitations:
* Keine explizite Behandlung von Duplikaten
* Standardverhalten ist „last one wins“, d. h. das zuletzt passende Descriptor-Objekt überschreibt den Wert
* Wenn mehrere CSV/YAML denselben Schlüssel liefern, hängt das Ergebnis von Lade- bzw. Listen-Reihenfolge ab
2025-11-17 17:03:16 +01:00
Bastian Schroll e164533ad4
Update regex_filter.md 2024-05-05 17:13:44 +02:00
Bastian Schroll 87eafc898f
Update descriptor.md 2021-02-04 17:07:30 +01:00
B-Watch 4e95d14d88 added changes from PR-Discussion 2020-07-15 08:09:57 +02:00
B-Watch 2f96e4aa9b added documentation 2020-07-10 21:35:08 +02:00
Jan Speller 7ee5df0616 fix docu zvei->tone 2020-04-14 22:17:53 +02:00
Bastian Schroll 62f3f1aff1
some docu edits 2020-02-24 23:38:13 +01:00
Jan Speller 9fb7fe9ea5 threads 2020-02-24 22:15:28 +01:00
Jan Speller e5d11b74af threads 2020-02-24 22:07:23 +01:00
Jan Speller 4b0614c7da threads and a few fixes to wildcards 2020-02-24 21:51:19 +01:00
Jan Speller a12af18b54 resolve threads (: 2020-02-22 22:53:03 +01:00
Jan Speller 4aea7b5d78 add geocoding module, resolve threads 2020-02-22 19:08:53 +01:00
Bastian Schroll 0d81c35092
edit docs 2019-10-27 21:53:00 +01:00
Bastian Schroll 157f6b5c10
add descriptor module and docu 2019-10-27 21:08:23 +01:00
Bastian Schroll 42209615ab
refactor regexFilter config 2019-10-27 20:12:54 +01:00
Bastian Schroll 3b7847a515
add some documentation 2019-10-26 18:35:31 +02:00
Bastian Schroll 61e085d555
add regexFilter and docs 2019-10-26 13:41:17 +02:00
Bastian Schroll 62fadd6fb3
add docs for registerWildcards() function 2019-10-25 21:59:04 +02:00
Bastian Schroll 5dcd71eb8d
add resource and name to route point 2019-10-25 11:12:41 +02:00
Bastian Schroll 5aafb02772 update docs 2019-09-20 12:00:02 +02:00
Bastian Schroll ace663f348 edit docu 2019-09-19 22:27:46 +02:00
Bastian Schroll 6d688acfac improve documentation 2019-09-19 14:46:18 +02:00