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