Fixing minor stuff, VDL2 chain now wants 1050000 IQ stream.

This commit is contained in:
Marat Fayzullin 2023-07-26 18:43:03 -04:00
parent 9c8438aded
commit af750faaa8
3 changed files with 18 additions and 5 deletions

View File

@ -1,4 +1,4 @@
from csdr.chain.demodulator import ServiceDemodulator, DialFrequencyReceiver from csdr.chain.demodulator import ServiceDemodulator, DialFrequencyReceiver, FixedIfSampleRateChain
from csdr.module.toolbox import Rtl433Module, MultimonModule, DumpHfdlModule, DumpVdl2Module from csdr.module.toolbox import Rtl433Module, MultimonModule, DumpHfdlModule, DumpVdl2Module
from pycsdr.modules import FmDemod, AudioResampler, Convert, Agc, Squelch from pycsdr.modules import FmDemod, AudioResampler, Convert, Agc, Squelch
from pycsdr.types import Format from pycsdr.types import Format
@ -121,9 +121,9 @@ class HfdlDemodulator(ServiceDemodulator, DialFrequencyReceiver):
self.parser.setDialFrequency(frequency) self.parser.setDialFrequency(frequency)
class Vdl2Demodulator(ServiceDemodulator, DialFrequencyReceiver): class Vdl2Demodulator(ServiceDemodulator, FixedIfSampleRateChain, DialFrequencyReceiver):
def __init__(self, service: bool = False): def __init__(self, service: bool = False):
self.sampleRate = 210000 self.sampleRate = 1050000
#self.parser = Vdl2Parser(service=service) #self.parser = Vdl2Parser(service=service)
workers = [ workers = [
Agc(Format.COMPLEX_FLOAT), Agc(Format.COMPLEX_FLOAT),
@ -133,9 +133,13 @@ class Vdl2Demodulator(ServiceDemodulator, DialFrequencyReceiver):
# Connect all the workers # Connect all the workers
super().__init__(workers) super().__init__(workers)
def getFixedAudioRate(self) -> int: def getFixedIfSampleRate(self) -> int:
return self.sampleRate return self.sampleRate
def getFixedAudioRate(self) -> int:
# This is not really used
return 8000
def supportsSquelch(self) -> bool: def supportsSquelch(self) -> bool:
return False return False

View File

@ -62,7 +62,7 @@ class DumpHfdlModule(PopenModule):
class DumpVdl2Module(PopenModule): class DumpVdl2Module(PopenModule):
def __init__(self, sampleRate: int = 210000, jsonOutput: bool = False): def __init__(self, sampleRate: int = 1050000, jsonOutput: bool = False):
self.sampleRate = sampleRate self.sampleRate = sampleRate
self.jsonOutput = jsonOutput self.jsonOutput = jsonOutput
super().__init__() super().__init__()

View File

@ -87,6 +87,7 @@ class FeatureDetector(object):
"selcall": ["multimon"], "selcall": ["multimon"],
"ism": ["rtl433"], "ism": ["rtl433"],
"hfdl": ["dumphfdl"], "hfdl": ["dumphfdl"],
"vdl2": ["dumpvdl2"],
"js8call": ["js8", "js8py"], "js8call": ["js8", "js8py"],
"drm": ["dream"], "drm": ["dream"],
"png": ["imagemagick"], "png": ["imagemagick"],
@ -605,3 +606,11 @@ class FeatureDetector(object):
""" """
return self.command_is_runnable("dumphfdl --help") return self.command_is_runnable("dumphfdl --help")
def has_dumpvdl2(self):
"""
OpenWebRX uses the [dumphfdl](https://github.com/szpajder/dumpvdl2) tool to decode VDL2
aircraft communications. Dumpvdl2 is not yet available as a package and thus you will have
to compile it from source.
"""
return self.command_is_runnable("dumpvdl2 --help")