From 239d661539de1579bde8985aef645a255c0ddc31 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Fri, 16 Feb 2024 23:45:51 +0100 Subject: [PATCH] activate sstv for background decoding --- csdr/chain/sstv.py | 4 ++-- owrx/modes.py | 9 ++++++++- owrx/service/__init__.py | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/csdr/chain/sstv.py b/csdr/chain/sstv.py index 2f62dd1c..66964610 100644 --- a/csdr/chain/sstv.py +++ b/csdr/chain/sstv.py @@ -1,5 +1,5 @@ from owrx.sstv import SstvParser -from csdr.chain.demodulator import SecondaryDemodulator, FixedAudioRateChain +from csdr.chain.demodulator import ServiceDemodulator from pycsdr.modules import FmDemod, Buffer from pycsdr.types import Format from csdrsstv.modules import SstvDecoder @@ -7,7 +7,7 @@ from owrx.feature import FeatureDetector from typing import Optional -class Sstv(SecondaryDemodulator, FixedAudioRateChain): +class Sstv(ServiceDemodulator): def __init__(self): self.imageBuffer = Buffer(Format.CHAR) super().__init__([ diff --git a/owrx/modes.py b/owrx/modes.py index 30af0511..b9aaab9c 100644 --- a/owrx/modes.py +++ b/owrx/modes.py @@ -140,7 +140,14 @@ class Modes(object): DigitalMode("rtty170", "RTTY 45/170", underlying=["usb", "lsb"]), DigitalMode("rtty450", "RTTY 50N/450", underlying=["lsb", "usb"]), DigitalMode("rtty85", "RTTY 50N/85", underlying=["lsb", "usb"]), - DigitalMode("sstv", "SSTV", underlying=["usb", "lsb"], bandpass=Bandpass(1100, 2400)), + DigitalMode( + "sstv", + "SSTV", + underlying=["usb", "lsb"], + bandpass=Bandpass(1100, 2400), + requirements=["sstv"], + service=True + ), WsjtMode("ft8", "FT8"), WsjtMode("ft4", "FT4"), WsjtMode("jt65", "JT65"), diff --git a/owrx/service/__init__.py b/owrx/service/__init__.py index d78b03e3..460f937b 100644 --- a/owrx/service/__init__.py +++ b/owrx/service/__init__.py @@ -327,6 +327,9 @@ class ServiceHandler(SdrSourceEventClient): elif mod == "ism": from csdr.chain.rtl433 import Rtl433 return Rtl433() + elif mod == "sstv": + from csdr.chain.sstv import Sstv + return Sstv() raise ValueError("unsupported service modulation: {}".format(mod))