From f8fb1788ee06c21b799aa33caf75a854b8ec45b8 Mon Sep 17 00:00:00 2001 From: Dawid SQ6EMM Date: Mon, 24 Feb 2025 16:52:47 +0100 Subject: [PATCH] Add possibility to set frequency tolerance (initial for jt4 only) Signed-off-by: Dawid SQ6EMM --- owrx/config/defaults.py | 1 + owrx/controllers/settings/decoding.py | 5 +++++ owrx/wsjt.py | 10 +++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/owrx/config/defaults.py b/owrx/config/defaults.py index 0f97a199..30e3da5d 100644 --- a/owrx/config/defaults.py +++ b/owrx/config/defaults.py @@ -152,6 +152,7 @@ defaultConfig = PropertyLayer( decoding_queue_workers=2, decoding_queue_length=10, wsjt_decoding_depth=3, + wsjt_frequency_tolerance=20, wsjt_decoding_depths=PropertyLayer(jt65=1), fst4_enabled_intervals=[15, 30], fst4w_enabled_intervals=[120, 300], diff --git a/owrx/controllers/settings/decoding.py b/owrx/controllers/settings/decoding.py index 24f32ae8..ced6fa07 100644 --- a/owrx/controllers/settings/decoding.py +++ b/owrx/controllers/settings/decoding.py @@ -70,6 +70,11 @@ class DecodingSettingsController(SettingsFormController): "Default WSJT decoding depth", infotext="A higher decoding depth will allow more results, but will also consume more cpu", ), + NumberInput( + "wsjt_frequency_tolerance", + "Default WSJT frequency tolerance", + infotext="A higher frequency tolerance will allow more decodes, but will also consume more cpu", + ), WsjtDecodingDepthsInput( "wsjt_decoding_depths", "Individual decoding depths", diff --git a/owrx/wsjt.py b/owrx/wsjt.py index 38ce7c8f..78ced60a 100644 --- a/owrx/wsjt.py +++ b/owrx/wsjt.py @@ -29,6 +29,14 @@ class WsjtProfile(AudioChopperProfile, metaclass=ABCMeta): # default when no setting is provided return 3 + def frequency_tolerance(self): + pm = Config.get() + if "wsjt_frequency_tolerance" in pm: + return pm["wsjt_frequency_tolerance"] + # default when no setting is provided + return 20 + + def getTimestampFormat(self): if self.getInterval() < 60: return "%H%M%S" @@ -222,7 +230,7 @@ class JT4Profile(WsjtProfile): return self.submode def decoder_commandline(self, file): - return ["jt9", "-4", "-b", str(self.submode), "-d", str(self.decoding_depth()), file] + return ["jt9", "-4", "-b", str(self.submode), "-d", str(self.decoding_depth()), "-F", str(self.frequency_tolerance()), file] def getMode(self): return "JT4"