Added separate ZVEI decoder for German SELCALL modes.

This commit is contained in:
Marat Fayzullin 2023-06-06 22:53:59 -04:00
parent 56af0a6afd
commit 767952bbfd
4 changed files with 21 additions and 3 deletions

View File

@ -84,14 +84,21 @@ class EasDemodulator(MultimonDemodulator):
class SelCallDemodulator(MultimonDemodulator):
def __init__(self, service: bool = False):
super().__init__(
# These aappear to be rarely used and very similar, so they trigger at once
# "ZVEI1", "ZVEI2", "ZVEI3", "DZVEI", "PZVEI",
["DTMF", "EEA", "EIA", "CCIR"],
SelCallParser(service=service),
withSquelch = True
)
class ZveiDemodulator(MultimonDemodulator):
def __init__(self, service: bool = False):
super().__init__(
["ZVEI1", "ZVEI2", "ZVEI3", "DZVEI", "PZVEI"],
SelCallParser(service=service),
withSquelch = True
)
class HfdlDemodulator(ServiceDemodulator, DialFrequencyReceiver):
def __init__(self, service: bool = False):
self.sampleRate = 12000

View File

@ -1457,7 +1457,8 @@ img.openwebrx-mirror-img
#openwebrx-panel-digimodes[data-mode="sstv"] #openwebrx-digimode-select-channel,
#openwebrx-panel-digimodes[data-mode="fax"] #openwebrx-digimode-select-channel,
#openwebrx-panel-digimodes[data-mode="ism"] #openwebrx-digimode-select-channel,
#openwebrx-panel-digimodes[data-mode="selcall"] #openwebrx-digimode-select-channel
#openwebrx-panel-digimodes[data-mode="selcall"] #openwebrx-digimode-select-channel,
#openwebrx-panel-digimodes[data-mode="zvei"] #openwebrx-digimode-select-channel
{
display: none;
}

View File

@ -622,6 +622,9 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
elif mod == "selcall":
from csdr.chain.toolbox import SelCallDemodulator
return SelCallDemodulator()
elif mod == "zvei":
from csdr.chain.toolbox import ZveiDemodulator
return ZveiDemodulator()
elif mod == "bpsk31":
from csdr.chain.digimodes import PskDemodulator
return PskDemodulator(31.25)

View File

@ -187,6 +187,13 @@ class Modes(object):
requirements=["selcall"],
squelch=True
),
DigitalMode(
"zvei",
"Zvei",
underlying=["nfm"],
requirements=["selcall"],
squelch=True
),
DigitalMode(
"ism",
"ISM",