diff --git a/csdr/chain/digimodes.py b/csdr/chain/digimodes.py index 7fed2b68..86682559 100644 --- a/csdr/chain/digimodes.py +++ b/csdr/chain/digimodes.py @@ -8,6 +8,7 @@ from pycsdr.types import Format from owrx.aprs.direwolf import DirewolfModule from owrx.sstv import SstvParser from owrx.fax import FaxParser +from owrx.dsc import DscParser from owrx.config import Config @@ -258,10 +259,11 @@ class SitorBDemodulator(SecondaryDemodulator, SecondarySelectorChain): class DscDemodulator(SecondaryDemodulator, SecondarySelectorChain): - def __init__(self, baudRate=100, bandWidth=170, invert=False): - self.baudRate = baudRate - self.bandWidth = bandWidth - self.invert = invert + def __init__(self, baudRate=100, bandWidth=170, invert=False, service=False): + self.baudRate = baudRate + self.bandWidth = bandWidth + self.invert = invert + self.parser = DscParser(service=service) # this is an assumption, we will adjust in setSampleRate self.sampleRate = 12000 secondary_samples_per_bit = int(round(self.sampleRate / self.baudRate)) @@ -274,6 +276,7 @@ class DscDemodulator(SecondaryDemodulator, SecondarySelectorChain): TimingRecovery(Format.FLOAT, secondary_samples_per_bit, loop_gain, 10), Ccir493Decoder(invert=invert), DscDecoder(), + self.parser ] super().__init__(workers) @@ -289,3 +292,4 @@ class DscDemodulator(SecondaryDemodulator, SecondarySelectorChain): loop_gain = self.sampleRate / self.getBandwidth() / 5 self.replace(2, Lowpass(Format.FLOAT, cutoff)) self.replace(3, TimingRecovery(Format.FLOAT, secondary_samples_per_bit, loop_gain, 10)) + diff --git a/htdocs/css/openwebrx.css b/htdocs/css/openwebrx.css index af00989a..dedcfa63 100644 --- a/htdocs/css/openwebrx.css +++ b/htdocs/css/openwebrx.css @@ -1360,6 +1360,45 @@ img.openwebrx-mirror-img text-align: right; } +#openwebrx-panel-dsc-message { + height: 310px; +} + +#openwebrx-panel-dsc-message a { + color: inherit; +} + +#openwebrx-panel-dsc-message tbody { + height: 280px; +} + +#openwebrx-panel-dsc-message .timestamp { + width: 80px; + text-align: center; +} + +#openwebrx-panel-dsc-message .src { + width: 80px; + text-align: center; +} + +#openwebrx-panel-dsc-message .dst { + width: 80px; + text-align: center; +} + +#openwebrx-panel-dsc-message .data { + width: 326px; + text-align: center; +} + +#openwebrx-panel-dsc-message .message { + width: 566px; + max-width: 566px; + column-span: all; + word-wrap: break-word; +} + #openwebrx-panel-ism-message { height: 310px; } @@ -1533,6 +1572,7 @@ img.openwebrx-mirror-img #openwebrx-panel-digimodes[data-mode="sstv"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="fax"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="ism"] #openwebrx-digimode-content-container, +#openwebrx-panel-digimodes[data-mode="dsc"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="ft8"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="wspr"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="jt65"] #openwebrx-digimode-select-channel, @@ -1580,7 +1620,8 @@ img.openwebrx-mirror-img #openwebrx-panel-digimodes[data-mode="msk144"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="sstv"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="fax"] #openwebrx-digimode-canvas-container, -#openwebrx-panel-digimodes[data-mode="ism"] #openwebrx-digimode-canvas-container +#openwebrx-panel-digimodes[data-mode="ism"] #openwebrx-digimode-canvas-container, +#openwebrx-panel-digimodes[data-mode="dsc"] #openwebrx-digimode-canvas-container { height: 200px; margin: -10px; diff --git a/htdocs/index.html b/htdocs/index.html index 13f205dd..736d282d 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -92,6 +92,7 @@ +