rewrite property engine

Property class is gone; logic is now done with Layers, Stack and Filter
This commit is contained in:
Jakob Ketterl
2020-03-23 23:56:05 +01:00
parent 7562dc8ecb
commit c83d8580ba
12 changed files with 298 additions and 176 deletions

View File

@ -2,6 +2,7 @@ from owrx.config import Config
from csdr import csdr
import threading
from owrx.source import SdrSource
from owrx.property import PropertyStack
import logging
@ -13,7 +14,10 @@ class SpectrumThread(csdr.output):
self.sdrSource = sdrSource
super().__init__()
self.props = props = self.sdrSource.props.collect(
stack = PropertyStack()
stack.addLayer(0, self.sdrSource.props)
stack.addLayer(1, Config.get())
self.props = props = stack.collect(
"samp_rate",
"fft_size",
"fft_fps",
@ -23,7 +27,7 @@ class SpectrumThread(csdr.output):
"csdr_print_bufsizes",
"csdr_through",
"temporary_directory",
).defaults(Config.get())
)
self.dsp = dsp = csdr.dsp(self)
dsp.nc_port = self.sdrSource.getPort()
@ -42,11 +46,11 @@ class SpectrumThread(csdr.output):
)
self.subscriptions = [
props.getProperty("samp_rate").wire(dsp.set_samp_rate),
props.getProperty("fft_size").wire(dsp.set_fft_size),
props.getProperty("fft_fps").wire(dsp.set_fft_fps),
props.getProperty("fft_compression").wire(dsp.set_fft_compression),
props.getProperty("temporary_directory").wire(dsp.set_temporary_directory),
props.wireProperty("samp_rate", dsp.set_samp_rate),
props.wireProperty("fft_size", dsp.set_fft_size),
props.wireProperty("fft_fps", dsp.set_fft_fps),
props.wireProperty("fft_compression", dsp.set_fft_compression),
props.wireProperty("temporary_directory", dsp.set_temporary_directory),
props.collect("samp_rate", "fft_size", "fft_fps", "fft_voverlap_factor").wire(set_fft_averages),
]