Added debugging code to print chains and their individual objects.
This commit is contained in:
parent
bd4352f6f5
commit
fa73cf11e1
|
|
@ -3,6 +3,10 @@ from pycsdr.modules import Buffer
|
||||||
from pycsdr.types import Format
|
from pycsdr.types import Format
|
||||||
from typing import Union, Callable, Optional
|
from typing import Union, Callable, Optional
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class Chain(Module):
|
class Chain(Module):
|
||||||
def __init__(self, workers):
|
def __init__(self, workers):
|
||||||
|
|
@ -145,3 +149,14 @@ class Chain(Module):
|
||||||
return self.workers[-1].getOutputFormat()
|
return self.workers[-1].getOutputFormat()
|
||||||
else:
|
else:
|
||||||
raise BufferError("getOutputFormat on empty chain")
|
raise BufferError("getOutputFormat on empty chain")
|
||||||
|
|
||||||
|
def printWorkers(self, prefix: str = ""):
|
||||||
|
logger.debug("{0}{1}".format(prefix, self))
|
||||||
|
for w in self.workers:
|
||||||
|
if isinstance(w, Chain):
|
||||||
|
w.printWorkers(prefix + " ")
|
||||||
|
else:
|
||||||
|
logger.debug("{0} {1}".format(prefix, w))
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "{0}({1} workers)".format(type(self).__name__, len(self.workers))
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,14 @@ class Decimator(Chain):
|
||||||
self.inputRate = inputRate
|
self.inputRate = inputRate
|
||||||
self._reconfigure()
|
self._reconfigure()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
decimation, fraction = self._getDecimation(self.outputRate)
|
||||||
|
transition = 0.15 * (self.outputRate / float(self.inputRate))
|
||||||
|
cutoff = 0.5 * decimation / (self.inputRate / self.outputRate)
|
||||||
|
return "{0}(decimation {1} * {2}, transition {3}, cutoff {4})".format(
|
||||||
|
type(self).__name__, decimation, fraction, transition, cutoff
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Selector(Chain):
|
class Selector(Chain):
|
||||||
def __init__(self, inputRate: int, outputRate: int, withSquelch: bool = True):
|
def __init__(self, inputRate: int, outputRate: int, withSquelch: bool = True):
|
||||||
|
|
@ -177,10 +185,21 @@ class Selector(Chain):
|
||||||
self.decimation.setInputRate(inputRate)
|
self.decimation.setInputRate(inputRate)
|
||||||
self._updateShift()
|
self._updateShift()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "{0}({1} => offset {2} => bandpass {3}..{4} => {5})".format(
|
||||||
|
type(self).__name__,
|
||||||
|
self.inputRate,
|
||||||
|
self.frequencyOffset,
|
||||||
|
self.bandpassCutoffs[0],
|
||||||
|
self.bandpassCutoffs[1],
|
||||||
|
self.outputRate
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class SecondarySelector(Chain):
|
class SecondarySelector(Chain):
|
||||||
def __init__(self, sampleRate: int, bandwidth: float):
|
def __init__(self, sampleRate: int, bandwidth: float):
|
||||||
self.sampleRate = sampleRate
|
self.sampleRate = sampleRate
|
||||||
|
self.bandwidth = bandwidth
|
||||||
self.frequencyOffset = 0
|
self.frequencyOffset = 0
|
||||||
self.shift = Shift(0.0)
|
self.shift = Shift(0.0)
|
||||||
cutoffRate = bandwidth / sampleRate
|
cutoffRate = bandwidth / sampleRate
|
||||||
|
|
@ -196,6 +215,16 @@ class SecondarySelector(Chain):
|
||||||
return
|
return
|
||||||
self.shift.setRate(-offset / self.sampleRate)
|
self.shift.setRate(-offset / self.sampleRate)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "{0}({1} => offset {2} => bandpass {3}..{4} => {5})".format(
|
||||||
|
type(self).__name__,
|
||||||
|
self.sampleRate,
|
||||||
|
self.frequencyOffset,
|
||||||
|
-self.bandwidth,
|
||||||
|
self.bandwidth,
|
||||||
|
self.sampleRate
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class SelectorError(Exception):
|
class SelectorError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from distutils.version import LooseVersion
|
from distutils.version import LooseVersion
|
||||||
|
|
||||||
_versionstring = "1.2.57"
|
_versionstring = "1.2.58"
|
||||||
looseversion = LooseVersion(_versionstring)
|
looseversion = LooseVersion(_versionstring)
|
||||||
openwebrx_version = "v{0}".format(looseversion)
|
openwebrx_version = "v{0}".format(looseversion)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue