diff --git a/htdocs/index.html b/htdocs/index.html index 7659734e..83f689a7 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -45,10 +45,10 @@
-
+
-
+
diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index 7c2133b4..0d3ef411 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -151,6 +151,17 @@ function tuneBySteps(steps) { } } +function jumpBySteps(steps) { + steps = Math.round(steps); + if (steps != 0) { + var f = center_freq + steps * bandwidth / 4; + ws.send(JSON.stringify({ + "type": "setfrequency", + "params": { "frequency": f } + })); + } +} + var waterfall_min_level; var waterfall_max_level; var waterfall_min_level_default; diff --git a/owrx/connection.py b/owrx/connection.py index 13e66696..19aac2e4 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -295,6 +295,10 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient): profile = message["params"]["profile"].split("|") self.setSdr(profile[0]) self.sdr.activateProfile(profile[1]) + elif message["type"] == "setfrequency": + if "params" in message and "frequency" in message["params"]: + frequency = message["params"]["frequency"] + self.sdr.setCenterFreq(frequency) elif message["type"] == "connectionproperties": if "params" in message: self.connectionProperties = message["params"] diff --git a/owrx/source/__init__.py b/owrx/source/__init__.py index e3e79d9a..0239c7b9 100644 --- a/owrx/source/__init__.py +++ b/owrx/source/__init__.py @@ -231,6 +231,11 @@ class SdrSource(ABC): except KeyError: logger.warning("invalid profile %s for sdr %s. ignoring", profile_id, self.getId()) + def setCenterFreq(self, frequency): + if "center_freq" in self.sdrProps: + self.sdrProps["center_freq"] = frequency + self.wireEvents() + def getId(self): return self.id