Added 24kHz HdAudio DATA mode for the starving masses.

This commit is contained in:
Marat Fayzullin 2024-06-24 23:05:40 -04:00
parent 3d97370488
commit 46808c104f
4 changed files with 16 additions and 2 deletions

View File

@ -142,3 +142,11 @@ class SAm(BaseDemodulatorChain):
]
super().__init__(workers)
class SsbDigital(BaseDemodulatorChain, HdAudio):
def __init__(self):
workers = [
RealPart(),
Agc(Format.FLOAT),
]
super().__init__(workers)

View File

@ -9,6 +9,8 @@ Filter.prototype.getLimits = function() {
max_bw = 12500;
} else if (['dmr', 'dstar', 'nxdn', 'ysf', 'm17'].indexOf(this.demodulator.get_modulation()) >= 0) {
max_bw = 6250;
} else if (['lsbd', 'usbd'].indexOf(this.demodulator.get_modulation()) >= 0) {
max_bw = 24000;
} else if (this.demodulator.get_modulation() === 'wfm') {
max_bw = 100000;
} else if (this.demodulator.get_modulation() === 'drm') {
@ -249,8 +251,8 @@ function Demodulator(offset_frequency, modulation) {
this.state = {};
this.secondary_demod = false;
var mode = Modes.findByModulation(modulation);
this.low_cut = mode && mode.bandpass && mode.bandpass.low_cut || null;
this.high_cut = mode && mode.bandpass && mode.bandpass.high_cut || null;
this.low_cut = mode && mode.bandpass? mode.bandpass.low_cut : null;
this.high_cut = mode && mode.bandpass? mode.bandpass.high_cut : null;
this.ifRate = mode && mode.ifRate;
this.listeners = {
"frequencychange": [],

View File

@ -619,6 +619,9 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
elif demod == "empty":
from csdr.chain.analog import Empty
return Empty()
elif demod in ["usbd", "lsbd"]:
from csdr.chain.analog import SsbDigital
return SsbDigital()
def setDemodulator(self, mod):
# this kills both primary and secondary demodulators

View File

@ -124,6 +124,7 @@ class Modes(object):
AnalogMode("usb", "USB", bandpass=Bandpass(300, 3000)),
AnalogMode("cw", "CW", bandpass=Bandpass(700, 900)),
AnalogMode("sam", "SAM", bandpass=Bandpass(-4000, 4000)),
AnalogMode("usbd", "DATA", bandpass=Bandpass(0, 24000)),
AnalogMode("dmr", "DMR", bandpass=Bandpass(-6250, 6250), requirements=["digital_voice_digiham"], squelch=False),
AnalogMode(
"dstar", "D-Star", bandpass=Bandpass(-3250, 3250), requirements=["digital_voice_digiham"], squelch=False