Repository navigation
Conversation
commit 8b220c1 Author: KoenigMjr <135820716+KoenigMjr@users.noreply.github.com> Date: Wed Jul 30 13:00:51 2025 +0200 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
commit 523329a Author: KoenigMjr <135820716+KoenigMjr@users.noreply.github.com> Date: Tue Jun 10 14:08:31 2025 +0200 Doku-Ergänzung update zur neuen Telegram Version *in Konfiguration hinzugefügt:* Startup_message max_retries initial_delay max_delay *gelöscht:* queue *im Beispiel:* Startup_message hinzugefügt commit 6a0a59c Author: KoenigMjr <135820716+KoenigMjr@users.noreply.github.com> Date: Fri Jul 11 22:24:39 2025 +0200 Telegram mit Warteschlange Durch Einbau einer Warteschlange kein Datenverlust bei belegter API (Sendelimit ca. 30 Nachrichten/min, gibt aber Soft-Limit) Exponentielles Backoff mit Maximalgrenze Retry-Zähler mit Abbruch bei zu vielen Fehlversuchen Kein Wiederholen bei permanenten Fehlern (400/401) dynamische Zeitanpassung bei 429 Fehlern Fehlerrobustheit verbessert hinsichtlich Connection Error neues Plugin ohne telegram-bot * Timeout (timeout=10), * HTTP-Fehlerprüfung (raise_for_status()), * Retry-Logik (3 Versuche mit wachsender Wartezeit), * Sauberem Logging mit logger statt print). send_location aus altem Skript übernommen und angepasst
commit cd21f07 Author: KoenigMjr <135820716+KoenigMjr@users.noreply.github.com> Date: Wed Jun 11 10:56:41 2025 +0200 feat: Interaktives Installationsskript mit Mehrsprachigkeit, argparse und Logging - Neues CLI-Interface via argparse für flexible Steuerung - Unterstützt Dry-Run-Modus zur sicheren Vorschau - Sprachumschaltung via --lang (de/en) - Internationalisierung aller Ausgaben via `t()` und `TEXT`-Dict (Deutsch/Englisch) - Logging mit farbiger Terminalausgabe und Logdatei (log/install/) - YAML-Validierung und Service-Typ-Erkennung (client/server) - Interaktive Benutzerführung für (De)Installation von Services - Verbesserte Fehlerbehandlung und Nutzerabfragen mit Fallback - DOKU: - Install.md (Installation von BW3) ergänzt - Service.md (für Install as a Service-Skript) zweisprachig (Deutsch/Englisch) ergänzt - mkdocs um Seiten Install/Service/Usage.md ergänzt
KoenigMjr
force-pushed
the
bugfix/pocsagDecoder
branch
4 times, most recently
from
October 21, 2025 11:04
1dbfa2c to
eedb56d
Compare
KoenigMjr
marked this pull request as draft
October 21, 2025 11:17
Contributor
Author
|
Nach Flake-Prüfung hab ich nochmals den Code geändert, scheint jetzt fehlerfrei durch die Prüfung zu kommen, allerdings muss ich nochmal vollumfänglich mit "freiem" Kopf den Code selbst reviewen. Ihr dürft aber in der Zwischenzeit dennoch gerne auch drüber schauen, ob euch Unfug auffällt. |
KoenigMjr
force-pushed
the
bugfix/pocsagDecoder
branch
from
October 21, 2025 13:28
eedb56d to
2e7390d
Compare
Errorcode führte zu Programmexit:
12.10.2025 02:20:39,918 - inputThread sdrInput _runThread [ERROR] error in sdr input routine
Traceback (most recent call last):
File "/opt/boswatch3/boswatch/inputSource/sdrInput.py", line 65, in _runThread
self.addToQueue(line)
...
ValueError: invalid literal for int() with base 10: ' '
Ursache:
Die Funktion _getBitrateRicSubric() in pocsagDecoder.py griff fest auf data[40] zu, um den SubRIC-Wert zu ermitteln. Bei Fehlerhaften Datensätzen von multimon-ng kann sich die Position jedoch verschieben, wodurch an dieser Stelle ein Leerzeichen (' ') statt einer Ziffer stand. Dies führte zu einem ValueError und damit zum Abbruch des gesamten SDR-Threads.
Änderung:
Die Funktion wurde auf robuste Regex-Analyse umgestellt (analog fmsDecoder.py und pocsagDecoder.py):
Bitrate, Address (RIC) und Function (SubRIC) werden nun mit regulären Ausdrücken extrahiert.
Die ursprüngliche Logik (subric = int(Function) + 1) bleibt vollständig erhalten.
Enthält die Zeile keine gültige Funktion, wird eine Warnung geloggt ("Invalid POCSAG function (not 0–3)")
Zusätzliche Fehlerabsicherung durch try/except.
Ergebnis:
Der Decoder ist nun tolerant gegenüber Formatabweichungen und verhindert Abstürze bei fehlerhaften oder unvollständigen multimon-ng-Zeilen.
KoenigMjr
force-pushed
the
bugfix/pocsagDecoder
branch
from
October 21, 2025 13:33
2e7390d to
a3338ea
Compare
Errorcode führte zu Programmexit:
12.10.2025 02:20:39,918 - inputThread sdrInput _runThread [ERROR] error in sdr input routine
Traceback (most recent call last):
File "/opt/boswatch3/boswatch/inputSource/sdrInput.py", line 65, in _runThread
self.addToQueue(line)
...
ValueError: invalid literal for int() with base 10: ' '
Ursache:
Die Funktion _getBitrateRicSubric() in pocsagDecoder.py griff fest auf data[40] zu, um den SubRIC-Wert zu ermitteln. Bei Fehlerhaften Datensätzen von multimon-ng kann sich die Position jedoch verschieben, wodurch an dieser Stelle ein Leerzeichen (' ') statt einer Ziffer stand. Dies führte zu einem ValueError und damit zum Abbruch des gesamten SDR-Threads.
Änderung:
Die Funktion wurde auf robuste Regex-Analyse umgestellt (analog fmsDecoder.py und pocsagDecoder.py):
Bitrate, Address (RIC) und Function (SubRIC) werden nun mit regulären Ausdrücken extrahiert.
Die ursprüngliche Logik (subric = int(Function) + 1) bleibt vollständig erhalten.
Enthält die Zeile keine gültige Funktion, wird eine Warnung geloggt ("Invalid POCSAG function (not 0–3)")
Zusätzliche Fehlerabsicherung durch try/except.
Ergebnis:
Der Decoder ist nun tolerant gegenüber Formatabweichungen und verhindert Abstürze bei fehlerhaften oder unvollständigen multimon-ng-Zeilen.
…W3-Core into bugfix/pocsagDecoder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Errorcode führte zu Programmexit:
Ursache:
Die Funktion
_getBitrateRicSubric()inpocsagDecoder.pygriff fest aufdata[40]zu, um den SubRIC-Wert zu ermitteln. Bei Fehlerhaften Datensätzen von multimon-ng kann sich die Position jedoch verschieben, wodurch an dieser Stelle ein Leerzeichen (' ') statt einer Ziffer stand. Dies führte zu einem ValueError und damit zum Abbruch des gesamten SDR-Threads.Änderung:
Die Funktion wurde auf robuste Regex-Analyse umgestellt (analog fmsDecoder.py und pocsagDecoder.py):
subric = int(Function) + 1) bleibt vollständig erhalten.Ergebnis:
Der Decoder ist nun tolerant gegenüber Formatabweichungen und verhindert Abstürze bei fehlerhaften oder unvollständigen multimon-ng-Zeilen.