Commit graph

267 commits

Author SHA1 Message Date
KoenigMjr 23d1b1a328 Fix POCSAG decoding crash caused by invalid subric parsing
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 Function, 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.
2025-10-22 09:59:59 +02:00
KoenigMjr f53102d8c8 Behebung der WARNING "field not found" im Log Bedingt durch die modeunabhängige Verarbeitung sämtlicher Wildcards warnt das Programm, dass manche Felder nicht verfügbar sind, die in der derzeitigen Auswertung jedoch gar nicht vorhanden sein können (z.B. FMS Felder in ZVEI-Datensatz etc.)
Änderungen:
- Wildcard-Ersetzung in `replaceWildcards()` nach Paketmodus (fms, pocsag, zvei, msg) aufgeteilt
- Unnötige Wildcards werden nun abhängig vom Modus nicht mehr verarbeitet
- `{MSG}` wird nun explizit für den Modus `msg` unterstützt
- Kopfzeile mit aktuellem Änderungsdatum versehen
2025-08-08 12:01:41 +02:00
Bastian Schroll dc052b94f4
fix IndexError: list index out of range in sdr input routine (pocsagDecoder) #111 2025-06-11 08:33:09 +00:00
Bastian Schroll 251cd73713
Merge branch 'develop' into feature/ISSUE-67 2025-06-11 07:35:25 +02:00
Luflosi d4dcc75711
Avoid "DeprecationWarning: invalid escape sequence"
Without this change, many warnings like this will be generated while running pytest:
```
test/test_template.py:3
  /build/source/test/test_template.py:3: DeprecationWarning: invalid escape sequence '\/'
    """!
```
This can also be seen when manually running python with warnings enabled.

This happens because the comment uses a multiline string and Python interprets the backslash in the logo as an escape character and complains that \/ is not a valid escape sequence. To fix this, prepend the string with the letter r to indicate that the backslash should be treated as a literal character, see https://docs.python.org/3/reference/lexical_analysis.html#index-20.
I also applied this change to all the comment strings since that shouldn't break anything and to establish it as a pattern for the future so this problem hopefully never happens again.

This is what I did specifically:
- Change the comment at the top of bw_client.py and bw_server.py to start with `"""!` since that seems to be the pattern here
- Search-and-Replace all occurances of `"""!` with `r"""!`
- Manually change the strings in `logoToLog()` in boswatch/utils/header.py
2023-09-19 17:49:09 +02:00
Jan Speller 1d6f29034e
Merge branch 'develop' into feature/ISSUE-67 2023-01-24 13:28:56 +01:00
Jan Speller b43f71874f
Remove Whitespace 2023-01-24 10:22:46 +01:00
Jan Speller dbf552f680 Restart multimon on broken input 2022-10-19 11:40:19 +00:00
Jan Speller efeb271de4 Documentation, fix config flag for logging 2022-05-23 23:20:54 +02:00
Jan Speller 7cca892145
Merge branch 'develop' into feature/ISSUE-67 2022-05-04 23:06:45 +02:00
Jan Speller d0f0792793 Disable most logging by default 2022-05-04 23:01:40 +02:00
Jan Speller fb703fbf96 fix issue if additionalWildcard is not set (eg. descriptor) 2022-05-04 22:45:51 +02:00
Jan Speller 53a862375b add log option for server 2022-05-04 22:45:51 +02:00
Jan Speller 3b4a594110 update mysql plugin: add init_db.sql and create table automatically 2022-05-04 22:45:51 +02:00
Jan Speller 5ac2ad213e implement basic mysql functionality 2022-05-04 22:45:51 +02:00
Bastian Schroll 0363979c6c Update timer.py 2022-05-04 22:45:51 +02:00
Bastian Schroll 890b2630cb Fix timer error 2022-05-04 22:45:51 +02:00
Lars Gremme b12c11d268 Update fir_size value and correct fir_size in docu 2022-02-23 19:15:45 +01:00
Lars Gremme 3b65052a5b Update Changelog and remove double negation 2022-02-18 19:34:00 +01:00
Lars Gremme b5477e137d Update for flake8 2022-02-17 20:57:13 +01:00
Bastian Schroll 6742524363
Merge branch 'develop' into develop 2022-02-17 10:00:51 +01:00
Lars Gremme c6df7a6b7b Add fir_size as optionally value 2022-01-23 11:06:24 +01:00
Jan Speller 8a1bcebbd9 fix issue if additionalWildcard is not set (eg. descriptor) 2021-03-13 17:41:25 +01:00
Jan Speller 90d932d53c update mysql plugin: add init_db.sql and create table automatically 2021-02-28 13:58:29 +01:00
Jan Speller 9d73be593f implement basic mysql functionality 2021-02-16 01:09:04 +01:00
Bastian Schroll 3a627c94a1
Update timer.py 2021-02-03 10:43:12 +01:00
Bastian Schroll 9c2f9c4c18
Fix timer error 2021-02-03 10:40:38 +01:00
Schrolli91 f3f188f93b
move decoding to InputBase.addToQueue() 2021-01-08 21:39:41 +01:00
Jan Speller a7671dc154 add 10s timeout and multimon restart for rtl_fm crash 2021-01-06 22:21:02 +01:00
B-Watch 24899f3d08 changed var-names 2020-07-13 20:02:00 +02:00
B-Watch 96cb967bb7 added default for mm char option 2020-07-09 15:24:04 +02:00
B-Watch 99df0340a6 renamed config vars 2020-07-09 15:20:54 +02:00
B-Watch e1afdcec7d rename startmm to getDecoderInstance 2020-07-08 20:33:58 +02:00
B-Watch ba2fab398e Moved setStdin to BaseClass 2020-07-08 11:55:46 +02:00
B-Watch 35ada90130 Early draft 2020-07-08 08:59:55 +02:00
B-Watch 5457cbfd3e changed log output 2020-07-01 11:45:13 +02:00
B-Watch 7f35d0592e Added PulseAudio as Source 2020-06-29 21:11:07 +02:00
B-Watch e6f588a06c fixed copy an paste error 2020-06-24 21:57:14 +02:00
B-Watch 8fbccd8169 fixed trailing spaces 2020-06-24 21:48:20 +02:00
B-Watch c3ccc11b5d FR #42 - added config for Char-set mm 2020-06-24 21:38:11 +02:00
kirschbaump c2aab648c8
Neue InputSource - LineIn (#38)
* Line-In input Source - code

* bugfix

* Docs

* code cleanup

* cleanup

* code cleanup

* Update docu/docs/config.md

Co-Authored-By: Jan Speller <janspeller1@gmail.com>

* fixes

Co-authored-by: Jan Speller <janspeller1@gmail.com>
2020-04-20 08:18:29 +02:00
Philipp von Kirschbaum 514a142521 fixed zvei bug - issue #23 2020-04-11 15:05:22 +02:00
Jan Speller 4b0614c7da threads and a few fixes to wildcards 2020-02-24 21:51:19 +01:00
Jan Speller cb64045f32 fix wildcard replacement 2020-02-22 23:47:13 +01:00
Bastian Schroll c7d7231959 add ABC 2019-10-30 11:08:26 +01:00
Bastian Schroll bf16a5c82f
adding sdrInput and inputBase classes 2019-10-28 21:24:09 +01:00
Bastian Schroll 2f5184742f
some refactorings 2019-10-28 21:20:05 +01:00
Bastian Schroll 64fc0ec868 fix routerManager 2019-10-28 09:05:14 +01:00
Bastian Schroll d0876ca404
edit descriptor module 2019-10-27 21:58:06 +01:00
Bastian Schroll e7b3a6335b
remove unnecessary property in repTimer 2019-10-27 19:33:00 +01:00