diff --git a/config_webrx.py b/config_webrx.py index 1ce7c06..6262210 100644 --- a/config_webrx.py +++ b/config_webrx.py @@ -33,7 +33,7 @@ config_webrx: configuration options for OpenWebRX """ # configuration version. please only modify if you're able to perform the associated migration steps. -version = 6 +version = 7 # NOTE: you can find additional information about configuring OpenWebRX in the Wiki: # https://github.com/jketterl/openwebrx/wiki/Configuration-guide @@ -258,16 +258,18 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: #waterfall_colors = [0x0000FF, 0x00FF00, 0xFF0000] ### Waterfall calibration -#waterfall_levels = {"min": -88, "max": -20} # in dB -waterfall_auto_level_margin = {"min": 3, "max": 10, "min_range": 50} +#waterfall_auto_levels = {"min": -88, "max": -20} # in dB + +waterfall_auto_levels = {"min": 3, "max": 10} +waterfall_auto_min_range = 50 # Note: When the auto waterfall level button is clicked, the following happens: -# [waterfall_levels.min] = [current_min_power_level] - [waterfall_auto_level_margin["min"]] -# [waterfall_levels.max] = [current_max_power_level] + [waterfall_auto_level_margin["max"]] +# [waterfall_levels.min] = [current_min_power_level] - [waterfall_auto_levels["min"]] +# [waterfall_levels.max] = [current_max_power_level] + [waterfall_auto_levels["max"]] # -# ___|________________________________________|____________________________________|________________________________________|___> signal power -# \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/ -# current_max_power_level __| +# ___|__________________________________|____________________________________|__________________________________|___> signal power +# \_waterfall_auto_levels["min"]_/ |__ current_min_power_level | \_waterfall_auto_levels["max"]_/ +# current_max_power_level __| # This setting allows you to modify the precision of the frequency displays in OpenWebRX. # Set this to exponent of 10 to select the most precise digit in Hz you'd like to see diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index 83616a6..07bcf25 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -72,7 +72,8 @@ var waterfall_max_level; var waterfall_min_level_default; var waterfall_max_level_default; var waterfall_colors = buildWaterfallColors(['#000', '#FFF']); -var waterfall_auto_level_margin; +var waterfall_auto_levels; +var waterfall_auto_min_range; function buildWaterfallColors(input) { return chroma.scale(input).colors(256, 'rgb') @@ -110,9 +111,9 @@ function waterfallColorsDefault() { } function waterfallColorsAuto(levels) { - var min_level = levels.min - waterfall_auto_level_margin.min; - var max_level = levels.max + waterfall_auto_level_margin.max; - max_level = Math.max(min_level + (waterfall_auto_level_margin.min_range || 0), max_level); + var min_level = levels.min - waterfall_auto_levels.min; + var max_level = levels.max + waterfall_auto_levels.max; + max_level = Math.max(min_level + (waterfall_auto_min_range || 0), max_level); waterfall_min_level = min_level; waterfall_max_level = max_level; updateWaterfallSliders(); @@ -721,8 +722,10 @@ function on_ws_recv(evt) { waterfall_min_level_default = config['waterfall_levels']['min']; waterfall_max_level_default = config['waterfall_levels']['max']; } - if ('waterfall_auto_level_margin' in config) - waterfall_auto_level_margin = config['waterfall_auto_level_margin']; + if ('waterfall_auto_levels' in config) + waterfall_auto_levels = config['waterfall_auto_levels']; + if ('waterfall_auto_min_range' in config) + waterfall_auto_min_range = config['waterfall_auto_min_range']; waterfallColorsDefault(); var initial_demodulator_params = {}; diff --git a/owrx/config/defaults.py b/owrx/config/defaults.py index 2ea3286..ef03de0 100644 --- a/owrx/config/defaults.py +++ b/owrx/config/defaults.py @@ -2,7 +2,7 @@ from owrx.property import PropertyLayer defaultConfig = PropertyLayer( - version=6, + version=7, max_clients=20, receiver_name="[Callsign]", receiver_location="Budapest, Hungary", @@ -142,7 +142,8 @@ defaultConfig = PropertyLayer( ), waterfall_scheme="GoogleTurboWaterfall", waterfall_levels=PropertyLayer(min=-88, max=-20), - waterfall_auto_level_margin=PropertyLayer(min=3, max=10, min_range=50), + waterfall_auto_levels=PropertyLayer(min=3, max=10), + waterfall_auto_min_range=50, tuning_precision=2, squelch_auto_margin=10, nmux_memory=50, diff --git a/owrx/config/migration.py b/owrx/config/migration.py index 3ddccbd..ec0068b 100644 --- a/owrx/config/migration.py +++ b/owrx/config/migration.py @@ -1,4 +1,5 @@ from abc import ABC, abstractmethod +from owrx.property import PropertyLayer import logging @@ -98,14 +99,27 @@ class ConfigMigratorVersion5(ConfigMigrator): config["version"] = 6 +class ConfigMigratorVersion6(ConfigMigrator): + def migrate(self, config): + if "waterfall_auto_level_margin" in config: + walm_config = config["waterfall_auto_level_margin"] + if "min_range" in walm_config: + config["waterfall_auto_min_range"] = walm_config["min_range"] + wal = {k: v for k, v in walm_config.items() if k in ["min", "max"]} + config["waterfall_auto_levels"] = PropertyLayer(**wal) + del config["waterfall_auto_level_margin"] + config["version"] = 7 + + class Migrator(object): - currentVersion = 6 + currentVersion = 7 migrators = { 1: ConfigMigratorVersion1(), 2: ConfigMigratorVersion2(), 3: ConfigMigratorVersion3(), 4: ConfigMigratorVersion4(), 5: ConfigMigratorVersion5(), + 6: ConfigMigratorVersion6(), } @staticmethod diff --git a/owrx/connection.py b/owrx/connection.py index a3c542f..07cfcda 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -127,7 +127,8 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient): global_config_keys = [ "waterfall_scheme", "waterfall_colors", - "waterfall_auto_level_margin", + "waterfall_auto_levels", + "waterfall_auto_min_range", "fft_size", "audio_compression", "fft_compression",