break out demodulation and decoding settings
This commit is contained in:
parent
e61dde7d0e
commit
7f9c0539bb
@ -24,6 +24,9 @@ ${header}
|
|||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<a class="btn btn-secondary" href="settings/bookmarks">Bookmark editor</a>
|
<a class="btn btn-secondary" href="settings/bookmarks">Bookmark editor</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-4">
|
||||||
|
<a class="btn btn-secondary" href="settings/decoding">Demodulation and decoding</a>
|
||||||
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<a class="btn btn-secondary" href="settings/backgrounddecoding">Background decoding</a>
|
<a class="btn btn-secondary" href="settings/backgrounddecoding">Background decoding</a>
|
||||||
</div>
|
</div>
|
||||||
|
76
owrx/controllers/settings/decoding.py
Normal file
76
owrx/controllers/settings/decoding.py
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
from owrx.controllers.settings import SettingsFormController, Section
|
||||||
|
from owrx.form import CheckboxInput, NumberInput, DropdownInput, Js8ProfileCheckboxInput, MultiCheckboxInput, Option
|
||||||
|
from owrx.form.wfm import WfmTauValues
|
||||||
|
from owrx.form.wsjt import Q65ModeMatrix
|
||||||
|
from owrx.wsjt import Fst4Profile, Fst4wProfile
|
||||||
|
|
||||||
|
|
||||||
|
class DecodingSettingsController(SettingsFormController):
|
||||||
|
def getTitle(self):
|
||||||
|
return "Demodulation and decoding"
|
||||||
|
|
||||||
|
def getSections(self):
|
||||||
|
return [
|
||||||
|
Section(
|
||||||
|
"Demodulator settings",
|
||||||
|
NumberInput(
|
||||||
|
"squelch_auto_margin",
|
||||||
|
"Auto-Squelch threshold",
|
||||||
|
infotext="Offset to be added to the current signal level when using the auto-squelch",
|
||||||
|
append="dB",
|
||||||
|
),
|
||||||
|
DropdownInput(
|
||||||
|
"wfm_deemphasis_tau",
|
||||||
|
"Tau setting for WFM (broadcast FM) deemphasis",
|
||||||
|
WfmTauValues,
|
||||||
|
infotext='See <a href="https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis">'
|
||||||
|
+ "this Wikipedia article</a> for more information",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Section(
|
||||||
|
"Digital voice",
|
||||||
|
NumberInput(
|
||||||
|
"digital_voice_unvoiced_quality",
|
||||||
|
"Quality of unvoiced sounds in synthesized voice",
|
||||||
|
infotext="Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice"
|
||||||
|
+ "modes.<br />If you're running on a Raspi (up to 3B+) you should leave this set at 1",
|
||||||
|
),
|
||||||
|
CheckboxInput(
|
||||||
|
"digital_voice_dmr_id_lookup",
|
||||||
|
"DMR id lookup",
|
||||||
|
checkboxText="Enable lookup of DMR ids in the radioid database to show callsigns and names",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Section(
|
||||||
|
"Digimodes",
|
||||||
|
CheckboxInput("digimodes_enable", "", checkboxText="Enable Digimodes"),
|
||||||
|
NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"),
|
||||||
|
),
|
||||||
|
Section(
|
||||||
|
"Decoding settings",
|
||||||
|
NumberInput("decoding_queue_workers", "Number of decoding workers"),
|
||||||
|
NumberInput("decoding_queue_length", "Maximum length of decoding job queue"),
|
||||||
|
NumberInput(
|
||||||
|
"wsjt_decoding_depth",
|
||||||
|
"Default WSJT decoding depth",
|
||||||
|
infotext="A higher decoding depth will allow more results, but will also consume more cpu",
|
||||||
|
),
|
||||||
|
NumberInput(
|
||||||
|
"js8_decoding_depth",
|
||||||
|
"Js8Call decoding depth",
|
||||||
|
infotext="A higher decoding depth will allow more results, but will also consume more cpu",
|
||||||
|
),
|
||||||
|
Js8ProfileCheckboxInput("js8_enabled_profiles", "Js8Call enabled modes"),
|
||||||
|
MultiCheckboxInput(
|
||||||
|
"fst4_enabled_intervals",
|
||||||
|
"Enabled FST4 intervals",
|
||||||
|
[Option(v, "{}s".format(v)) for v in Fst4Profile.availableIntervals],
|
||||||
|
),
|
||||||
|
MultiCheckboxInput(
|
||||||
|
"fst4w_enabled_intervals",
|
||||||
|
"Enabled FST4W intervals",
|
||||||
|
[Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals],
|
||||||
|
),
|
||||||
|
Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"),
|
||||||
|
),
|
||||||
|
]
|
@ -6,18 +6,11 @@ from owrx.form import (
|
|||||||
FloatInput,
|
FloatInput,
|
||||||
LocationInput,
|
LocationInput,
|
||||||
TextAreaInput,
|
TextAreaInput,
|
||||||
CheckboxInput,
|
|
||||||
DropdownInput,
|
DropdownInput,
|
||||||
Option,
|
Option,
|
||||||
ServicesCheckboxInput,
|
|
||||||
Js8ProfileCheckboxInput,
|
|
||||||
MultiCheckboxInput,
|
|
||||||
)
|
)
|
||||||
from owrx.form.receiverid import ReceiverKeysConverter
|
from owrx.form.receiverid import ReceiverKeysConverter
|
||||||
from owrx.form.wfm import WfmTauValues
|
|
||||||
from owrx.form.wsjt import Q65ModeMatrix
|
|
||||||
from owrx.form.gfx import AvatarInput, TopPhotoInput
|
from owrx.form.gfx import AvatarInput, TopPhotoInput
|
||||||
from owrx.wsjt import Fst4Profile, Fst4wProfile
|
|
||||||
import shutil
|
import shutil
|
||||||
import os
|
import os
|
||||||
from glob import glob
|
from glob import glob
|
||||||
@ -117,27 +110,6 @@ class GeneralSettingsController(SettingsFormController):
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Section(
|
|
||||||
"Digimodes",
|
|
||||||
CheckboxInput("digimodes_enable", "", checkboxText="Enable Digimodes"),
|
|
||||||
NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"),
|
|
||||||
),
|
|
||||||
Section(
|
|
||||||
"Demodulator settings",
|
|
||||||
NumberInput(
|
|
||||||
"squelch_auto_margin",
|
|
||||||
"Auto-Squelch threshold",
|
|
||||||
infotext="Offset to be added to the current signal level when using the auto-squelch",
|
|
||||||
append="dB",
|
|
||||||
),
|
|
||||||
DropdownInput(
|
|
||||||
"wfm_deemphasis_tau",
|
|
||||||
"Tau setting for WFM (broadcast FM) deemphasis",
|
|
||||||
WfmTauValues,
|
|
||||||
infotext='See <a href="https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis">'
|
|
||||||
+ "this Wikipedia article</a> for more information",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Section(
|
Section(
|
||||||
"Display settings",
|
"Display settings",
|
||||||
NumberInput(
|
NumberInput(
|
||||||
@ -146,20 +118,6 @@ class GeneralSettingsController(SettingsFormController):
|
|||||||
infotext="Number of decimal digits to show on the frequency display",
|
infotext="Number of decimal digits to show on the frequency display",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Section(
|
|
||||||
"Digital voice",
|
|
||||||
NumberInput(
|
|
||||||
"digital_voice_unvoiced_quality",
|
|
||||||
"Quality of unvoiced sounds in synthesized voice",
|
|
||||||
infotext="Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice"
|
|
||||||
+ "modes.<br />If you're running on a Raspi (up to 3B+) you should leave this set at 1",
|
|
||||||
),
|
|
||||||
CheckboxInput(
|
|
||||||
"digital_voice_dmr_id_lookup",
|
|
||||||
"DMR id lookup",
|
|
||||||
checkboxText="Enable lookup of DMR ids in the radioid database to show callsigns and names",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Section(
|
Section(
|
||||||
"Map settings",
|
"Map settings",
|
||||||
TextInput(
|
TextInput(
|
||||||
@ -176,33 +134,6 @@ class GeneralSettingsController(SettingsFormController):
|
|||||||
append="s",
|
append="s",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Section(
|
|
||||||
"Decoding settings",
|
|
||||||
NumberInput("decoding_queue_workers", "Number of decoding workers"),
|
|
||||||
NumberInput("decoding_queue_length", "Maximum length of decoding job queue"),
|
|
||||||
NumberInput(
|
|
||||||
"wsjt_decoding_depth",
|
|
||||||
"Default WSJT decoding depth",
|
|
||||||
infotext="A higher decoding depth will allow more results, but will also consume more cpu",
|
|
||||||
),
|
|
||||||
NumberInput(
|
|
||||||
"js8_decoding_depth",
|
|
||||||
"Js8Call decoding depth",
|
|
||||||
infotext="A higher decoding depth will allow more results, but will also consume more cpu",
|
|
||||||
),
|
|
||||||
Js8ProfileCheckboxInput("js8_enabled_profiles", "Js8Call enabled modes"),
|
|
||||||
MultiCheckboxInput(
|
|
||||||
"fst4_enabled_intervals",
|
|
||||||
"Enabled FST4 intervals",
|
|
||||||
[Option(v, "{}s".format(v)) for v in Fst4Profile.availableIntervals],
|
|
||||||
),
|
|
||||||
MultiCheckboxInput(
|
|
||||||
"fst4w_enabled_intervals",
|
|
||||||
"Enabled FST4W intervals",
|
|
||||||
[Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals],
|
|
||||||
),
|
|
||||||
Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"),
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def handle_image(self, data, image_id):
|
def handle_image(self, data, image_id):
|
||||||
|
@ -9,6 +9,7 @@ from owrx.controllers.settings.general import GeneralSettingsController
|
|||||||
from owrx.controllers.settings.sdr import SdrSettingsController
|
from owrx.controllers.settings.sdr import SdrSettingsController
|
||||||
from owrx.controllers.settings.reporting import ReportingController
|
from owrx.controllers.settings.reporting import ReportingController
|
||||||
from owrx.controllers.settings.backgrounddecoding import BackgroundDecodingController
|
from owrx.controllers.settings.backgrounddecoding import BackgroundDecodingController
|
||||||
|
from owrx.controllers.settings.decoding import DecodingSettingsController
|
||||||
from owrx.controllers.bookmarks import BookmarksController
|
from owrx.controllers.bookmarks import BookmarksController
|
||||||
from owrx.controllers.session import SessionController
|
from owrx.controllers.session import SessionController
|
||||||
from owrx.controllers.profile import ProfileController
|
from owrx.controllers.profile import ProfileController
|
||||||
@ -131,6 +132,10 @@ class Router(object):
|
|||||||
method="POST",
|
method="POST",
|
||||||
options={"action": "processFormData"},
|
options={"action": "processFormData"},
|
||||||
),
|
),
|
||||||
|
StaticRoute("/settings/decoding", DecodingSettingsController),
|
||||||
|
StaticRoute(
|
||||||
|
"/settings/decoding", DecodingSettingsController, method="POST", options={"action": "processFormData"}
|
||||||
|
),
|
||||||
StaticRoute("/login", SessionController, options={"action": "loginAction"}),
|
StaticRoute("/login", SessionController, options={"action": "loginAction"}),
|
||||||
StaticRoute("/login", SessionController, method="POST", options={"action": "processLoginAction"}),
|
StaticRoute("/login", SessionController, method="POST", options={"action": "processLoginAction"}),
|
||||||
StaticRoute("/logout", SessionController, options={"action": "logoutAction"}),
|
StaticRoute("/logout", SessionController, options={"action": "logoutAction"}),
|
||||||
|
Loading…
Reference in New Issue
Block a user