move the detection of deleted properties to where the events are wired

This commit is contained in:
Jakob Ketterl 2023-08-29 00:02:44 +02:00
parent e109149b92
commit a3407c71aa
2 changed files with 13 additions and 12 deletions

View File

@ -1,7 +1,6 @@
from csdr.chain import Chain from csdr.chain import Chain
from pycsdr.modules import Shift, FirDecimate, Bandpass, Squelch, FractionalDecimator, Writer from pycsdr.modules import Shift, FirDecimate, Bandpass, Squelch, FractionalDecimator, Writer
from pycsdr.types import Format from pycsdr.types import Format
from owrx.property import PropertyDeleted
import math import math
@ -134,15 +133,11 @@ class Selector(Chain):
scaled = [x / self.outputRate for x in self.bandpassCutoffs] scaled = [x / self.outputRate for x in self.bandpassCutoffs]
self.bandpass.setBandpass(*scaled) self.bandpass.setBandpass(*scaled)
def setLowCut(self, lowCut: float) -> None: def setLowCut(self, lowCut: float | None) -> None:
if lowCut is PropertyDeleted:
lowCut = None
self.bandpassCutoffs[0] = lowCut self.bandpassCutoffs[0] = lowCut
self.setBandpass(*self.bandpassCutoffs) self.setBandpass(*self.bandpassCutoffs)
def setHighCut(self, highCut: float) -> None: def setHighCut(self, highCut: float | None) -> None:
if highCut is PropertyDeleted:
highCut = None
self.bandpassCutoffs[1] = highCut self.bandpassCutoffs[1] = highCut
self.setBandpass(*self.bandpassCutoffs) self.setBandpass(*self.bandpassCutoffs)

View File

@ -1,5 +1,5 @@
from owrx.source import SdrSourceEventClient, SdrSourceState, SdrClientClass from owrx.source import SdrSourceEventClient, SdrSourceState, SdrClientClass
from owrx.property import PropertyStack, PropertyLayer, PropertyValidator from owrx.property import PropertyStack, PropertyLayer, PropertyValidator, PropertyDeleted, PropertyDeletion
from owrx.property.validators import OrValidator, RegexValidator, BoolValidator from owrx.property.validators import OrValidator, RegexValidator, BoolValidator
from owrx.modes import Modes, DigitalMode from owrx.modes import Modes, DigitalMode
from csdr.chain import Chain from csdr.chain import Chain
@ -220,10 +220,10 @@ class ClientDemodulatorChain(Chain):
else: else:
self.selector.setSquelchLevel(self.squelchLevel) self.selector.setSquelchLevel(self.squelchLevel)
def setLowCut(self, lowCut): def setLowCut(self, lowCut: float | None):
self.selector.setLowCut(lowCut) self.selector.setLowCut(lowCut)
def setHighCut(self, highCut): def setHighCut(self, highCut: float | None):
self.selector.setHighCut(highCut) self.selector.setHighCut(highCut)
def setBandpass(self, lowCut, highCut): def setBandpass(self, lowCut, highCut):
@ -485,8 +485,8 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
self.props.wireProperty("offset_freq", self.chain.setFrequencyOffset), self.props.wireProperty("offset_freq", self.chain.setFrequencyOffset),
self.props.wireProperty("center_freq", self.chain.setCenterFrequency), self.props.wireProperty("center_freq", self.chain.setCenterFrequency),
self.props.wireProperty("squelch_level", self.chain.setSquelchLevel), self.props.wireProperty("squelch_level", self.chain.setSquelchLevel),
self.props.wireProperty("low_cut", self.chain.setLowCut), self.props.wireProperty("low_cut", self.setLowCut),
self.props.wireProperty("high_cut", self.chain.setHighCut), self.props.wireProperty("high_cut", self.setHighCut),
self.props.wireProperty("mod", self.setDemodulator), self.props.wireProperty("mod", self.setDemodulator),
self.props.wireProperty("dmr_filter", self.chain.setSlotFilter), self.props.wireProperty("dmr_filter", self.chain.setSlotFilter),
self.props.wireProperty("wfm_deemphasis_tau", self.chain.setWfmDeemphasisTau), self.props.wireProperty("wfm_deemphasis_tau", self.chain.setWfmDeemphasisTau),
@ -648,6 +648,12 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
self.chain.setSecondaryFftWriter(buffer) self.chain.setSecondaryFftWriter(buffer)
self.wireOutput("secondary_fft", buffer) self.wireOutput("secondary_fft", buffer)
def setLowCut(self, lowCut: float | PropertyDeletion):
self.chain.setLowCut(None if lowCut is PropertyDeleted else lowCut)
def setHighCut(self, highCut: float | PropertyDeletion):
self.chain.setHighCut(None if highCut is PropertyDeleted else highCut)
def start(self): def start(self):
if self.sdrSource.isAvailable(): if self.sdrSource.isAvailable():
self.chain.setReader(self.sdrSource.getBuffer().getReader()) self.chain.setReader(self.sdrSource.getBuffer().getReader())