From 39406ac0de1d5525da0a3d1b04d0eb92ab7d614b Mon Sep 17 00:00:00 2001 From: Dawid SQ6EMM Date: Fri, 7 Mar 2025 10:24:43 +0100 Subject: [PATCH] Add possibility to set frequency tolerance (q65 only) Signed-off-by: Dawid SQ6EMM --- owrx/config/defaults.py | 1 + owrx/controllers/settings/decoding.py | 5 +++++ owrx/wsjt.py | 9 ++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/owrx/config/defaults.py b/owrx/config/defaults.py index 818d16f6..eb417476 100644 --- a/owrx/config/defaults.py +++ b/owrx/config/defaults.py @@ -157,6 +157,7 @@ defaultConfig = PropertyLayer( fst4w_enabled_intervals=[120, 300], jt4_enabled_submodes=["F", "G"], jt4_frequency_tolerance=20, + q65_frequency_tolerance=20, q65_enabled_combinations=["A30", "E120", "C60"], js8_enabled_profiles=["normal", "slow"], js8_decoding_depth=3, diff --git a/owrx/controllers/settings/decoding.py b/owrx/controllers/settings/decoding.py index 1c3e32a7..bf601bb0 100644 --- a/owrx/controllers/settings/decoding.py +++ b/owrx/controllers/settings/decoding.py @@ -75,6 +75,11 @@ class DecodingSettingsController(SettingsFormController): "Default JT4 frequency tolerance", infotext="A higher frequency tolerance will allow more decodes, but will also consume more cpu", ), + NumberInput( + "q65_frequency_tolerance", + "Default Q65 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 02bc67b7..4f49c185 100644 --- a/owrx/wsjt.py +++ b/owrx/wsjt.py @@ -36,6 +36,13 @@ class WsjtProfile(AudioChopperProfile, metaclass=ABCMeta): # default when no setting is provided return 20 + def q65_frequency_tolerance(self): + pm = Config.get() + if "q65_frequency_tolerance" in pm: + return pm["q65_frequency_tolerance"] + # default when no setting is provided + return 20 + def getTimestampFormat(self): if self.getInterval() < 60: return "%H%M%S" @@ -280,7 +287,7 @@ class Q65Profile(WsjtProfile): return self.interval def decoder_commandline(self, file): - return ["jt9", "--q65", "-p", str(self.interval), "-b", self.mode.name, "-d", str(self.decoding_depth()), file] + return ["jt9", "--q65", "-p", str(self.interval), "-b", self.mode.name, "-d", str(self.decoding_depth()), "-F", str(self.jt4_frequency_tolerance()), file] class Msk144Profile(WsjtProfile):