Added option to show CW dits and dahs, reorganized settings page.
This commit is contained in:
parent
bedbade3cd
commit
b706563a94
|
|
@ -1,6 +1,9 @@
|
||||||
**1.2.43**
|
**1.2.43**
|
||||||
- Added option to switch between US and EU RDS decoding.
|
- Added option to switch between US and EU RDS decoding.
|
||||||
|
- Added option to show dits and dahs when decoding CW.
|
||||||
- Refactored and improved CW, SITOR-B, and CCIR476 decoders.
|
- Refactored and improved CW, SITOR-B, and CCIR476 decoders.
|
||||||
|
- Reorganized "Demodulation and Decoding Settings" page.
|
||||||
|
- Increased CW decoder bandwidth to 100Hz.
|
||||||
- Fixed info bubble not updating in Google map.
|
- Fixed info bubble not updating in Google map.
|
||||||
- Fixed resizing RDS display on mobile devices.
|
- Fixed resizing RDS display on mobile devices.
|
||||||
- Fixed date/time parsing in RDS display.
|
- Fixed date/time parsing in RDS display.
|
||||||
|
|
|
||||||
|
|
@ -123,9 +123,11 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
|
||||||
|
|
||||||
|
|
||||||
class CwDemodulator(SecondaryDemodulator, SecondarySelectorChain):
|
class CwDemodulator(SecondaryDemodulator, SecondarySelectorChain):
|
||||||
def __init__(self, baudRate: float, showCw: bool = False):
|
def __init__(self, bandWidth: float = 100):
|
||||||
|
pm = Config.get()
|
||||||
self.sampleRate = 12000
|
self.sampleRate = 12000
|
||||||
self.showCw = showCw
|
self.bandWidth = bandWidth
|
||||||
|
self.showCw = pm["cw_showcw"]
|
||||||
workers = [
|
workers = [
|
||||||
Agc(Format.COMPLEX_FLOAT),
|
Agc(Format.COMPLEX_FLOAT),
|
||||||
CwDecoder(self.sampleRate, self.showCw),
|
CwDecoder(self.sampleRate, self.showCw),
|
||||||
|
|
@ -133,7 +135,7 @@ class CwDemodulator(SecondaryDemodulator, SecondarySelectorChain):
|
||||||
super().__init__(workers)
|
super().__init__(workers)
|
||||||
|
|
||||||
def getBandwidth(self):
|
def getBandwidth(self):
|
||||||
return 100
|
return self.bandWidth
|
||||||
|
|
||||||
def setSampleRate(self, sampleRate: int) -> None:
|
def setSampleRate(self, sampleRate: int) -> None:
|
||||||
if sampleRate == self.sampleRate:
|
if sampleRate == self.sampleRate:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
openwebrx (1.2.43) bullseye jammy; urgency=low
|
openwebrx (1.2.43) bullseye jammy; urgency=low
|
||||||
|
|
||||||
* Added option to switch between US and EU RDS decoding.
|
* Added option to switch between US and EU RDS decoding.
|
||||||
|
* Added option to show dits and dahs when decoding CW.
|
||||||
* Refactored and improved CW, SITOR-B, and CCIR476 decoders.
|
* Refactored and improved CW, SITOR-B, and CCIR476 decoders.
|
||||||
|
* Reorganized "Demodulation and Decoding Settings" page.
|
||||||
|
* Increased CW decoder bandwidth to 100Hz.
|
||||||
* Fixed info bubble not updating in Google map.
|
* Fixed info bubble not updating in Google map.
|
||||||
* Fixed resizing RDS display on mobile devices.
|
* Fixed resizing RDS display on mobile devices.
|
||||||
* Fixed date/time parsing in RDS display.
|
* Fixed date/time parsing in RDS display.
|
||||||
|
|
|
||||||
|
|
@ -208,5 +208,6 @@ defaultConfig = PropertyLayer(
|
||||||
fax_postprocess=True,
|
fax_postprocess=True,
|
||||||
fax_color=False,
|
fax_color=False,
|
||||||
fax_am=False,
|
fax_am=False,
|
||||||
rds_usa=False
|
rds_usa=False,
|
||||||
|
cw_showcw=False
|
||||||
).readonly()
|
).readonly()
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,19 @@ class DecodingSettingsController(SettingsFormController):
|
||||||
def getSections(self):
|
def getSections(self):
|
||||||
return [
|
return [
|
||||||
Section(
|
Section(
|
||||||
"Demodulator settings",
|
"Miscellaneous",
|
||||||
NumberInput(
|
NumberInput(
|
||||||
"squelch_auto_margin",
|
"squelch_auto_margin",
|
||||||
"Auto-Squelch threshold",
|
"Auto-Squelch threshold",
|
||||||
infotext="Offset to be added to the current signal level when using the auto-squelch",
|
infotext="Offset to be added to the current signal level when using the auto-squelch",
|
||||||
append="dB",
|
append="dB",
|
||||||
),
|
),
|
||||||
|
NumberInput(
|
||||||
|
"digimodes_fft_size",
|
||||||
|
"Secondary FFT size",
|
||||||
|
infotext="Secondary waterfall resolution in digital modes",
|
||||||
|
append="bins"
|
||||||
|
),
|
||||||
DropdownInput(
|
DropdownInput(
|
||||||
"wfm_deemphasis_tau",
|
"wfm_deemphasis_tau",
|
||||||
"Tau setting for WFM (broadcast FM) deemphasis",
|
"Tau setting for WFM (broadcast FM) deemphasis",
|
||||||
|
|
@ -37,6 +43,14 @@ class DecodingSettingsController(SettingsFormController):
|
||||||
"rds_usa",
|
"rds_usa",
|
||||||
"Decode USA-specific RDS information from WFM broadcasts",
|
"Decode USA-specific RDS information from WFM broadcasts",
|
||||||
),
|
),
|
||||||
|
CheckboxInput(
|
||||||
|
"paging_filter",
|
||||||
|
"Filter out empty, numeric, or unreadable pager messages",
|
||||||
|
),
|
||||||
|
CheckboxInput(
|
||||||
|
"cw_showcw",
|
||||||
|
"Show CW codes (dits / dahs) when decoding CW",
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Section(
|
Section(
|
||||||
"Digital voice",
|
"Digital voice",
|
||||||
|
|
@ -58,17 +72,6 @@ class DecodingSettingsController(SettingsFormController):
|
||||||
+ "radioid</a> database to show callsigns and names",
|
+ "radioid</a> database to show callsigns and names",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Section(
|
|
||||||
"Digimodes",
|
|
||||||
NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"),
|
|
||||||
),
|
|
||||||
Section(
|
|
||||||
"Pager messages",
|
|
||||||
CheckboxInput(
|
|
||||||
"paging_filter",
|
|
||||||
"Filter out empty, numeric, or unreadable pager messages",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Section(
|
Section(
|
||||||
"Aircraft messages",
|
"Aircraft messages",
|
||||||
NumberInput(
|
NumberInput(
|
||||||
|
|
@ -103,7 +106,7 @@ class DecodingSettingsController(SettingsFormController):
|
||||||
CheckboxInput("fax_am", "Use amplitude modulation"),
|
CheckboxInput("fax_am", "Use amplitude modulation"),
|
||||||
),
|
),
|
||||||
Section(
|
Section(
|
||||||
"Decoding settings",
|
"WSJT decoders",
|
||||||
NumberInput("decoding_queue_workers", "Number of decoding workers"),
|
NumberInput("decoding_queue_workers", "Number of decoding workers"),
|
||||||
NumberInput("decoding_queue_length", "Maximum length of decoding job queue"),
|
NumberInput("decoding_queue_length", "Maximum length of decoding job queue"),
|
||||||
NumberInput(
|
NumberInput(
|
||||||
|
|
|
||||||
|
|
@ -675,7 +675,7 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
|
||||||
return DscDemodulator()
|
return DscDemodulator()
|
||||||
elif mod == "cwdecoder":
|
elif mod == "cwdecoder":
|
||||||
from csdr.chain.digimodes import CwDemodulator
|
from csdr.chain.digimodes import CwDemodulator
|
||||||
return CwDemodulator(75.0)
|
return CwDemodulator(100.0)
|
||||||
elif mod == "mfrtty170":
|
elif mod == "mfrtty170":
|
||||||
from csdr.chain.digimodes import MFRttyDemodulator
|
from csdr.chain.digimodes import MFRttyDemodulator
|
||||||
return MFRttyDemodulator(170.0, 45.45, reverse = False)
|
return MFRttyDemodulator(170.0, 45.45, reverse = False)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue