diff --git a/csdr/chain/toolbox.py b/csdr/chain/toolbox.py index 1a3d19b8..7a95833a 100644 --- a/csdr/chain/toolbox.py +++ b/csdr/chain/toolbox.py @@ -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 diff --git a/htdocs/css/openwebrx.css b/htdocs/css/openwebrx.css index 2a094b25..72a72b67 100644 --- a/htdocs/css/openwebrx.css +++ b/htdocs/css/openwebrx.css @@ -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; } diff --git a/owrx/dsp.py b/owrx/dsp.py index a0aa6faa..07f3b174 100644 --- a/owrx/dsp.py +++ b/owrx/dsp.py @@ -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) diff --git a/owrx/modes.py b/owrx/modes.py index f599ed24..8cf149c7 100644 --- a/owrx/modes.py +++ b/owrx/modes.py @@ -187,6 +187,13 @@ class Modes(object): requirements=["selcall"], squelch=True ), + DigitalMode( + "zvei", + "Zvei", + underlying=["nfm"], + requirements=["selcall"], + squelch=True + ), DigitalMode( "ism", "ISM",