parser typing
This commit is contained in:
parent
757ec01ea4
commit
25e2a8013e
@ -1,5 +1,5 @@
|
||||
from csdr.chain.demodulator import ServiceDemodulator, SecondaryDemodulator, DialFrequencyReceiver, SecondarySelectorChain
|
||||
from owrx.audio.chopper import AudioChopper
|
||||
from owrx.audio.chopper import AudioChopper, AudioChopperParser
|
||||
from owrx.aprs.kiss import KissDeframer
|
||||
from owrx.aprs import Ax25Parser, AprsParser
|
||||
from pycsdr.modules import Convert, FmDemod, Agc, TimingRecovery, DBPskDecoder, VaricodeDecoder
|
||||
@ -10,8 +10,7 @@ from owrx.pocsag import PocsagParser
|
||||
|
||||
|
||||
class AudioChopperDemodulator(ServiceDemodulator, DialFrequencyReceiver):
|
||||
# TODO parser typing
|
||||
def __init__(self, mode: str, parser):
|
||||
def __init__(self, mode: str, parser: AudioChopperParser):
|
||||
self.chopper = AudioChopper(mode, parser)
|
||||
workers = [Convert(Format.FLOAT, Format.SHORT), self.chopper]
|
||||
super().__init__(workers)
|
||||
|
@ -1,10 +1,12 @@
|
||||
from owrx.modes import Modes, AudioChopperMode
|
||||
from owrx.audio import AudioChopperProfile
|
||||
from itertools import groupby
|
||||
from owrx.audio import ProfileSourceSubscriber
|
||||
from owrx.audio.wav import AudioWriter
|
||||
from owrx.audio.queue import QueueJob
|
||||
from csdr.module import ThreadModule
|
||||
from pycsdr.types import Format
|
||||
from abc import ABC, abstractmethod
|
||||
import pickle
|
||||
|
||||
import logging
|
||||
@ -13,9 +15,14 @@ logger = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
class AudioChopperParser(ABC):
|
||||
@abstractmethod
|
||||
def parse(self, profile: AudioChopperProfile, frequency: int, line: bytes):
|
||||
pass
|
||||
|
||||
|
||||
class AudioChopper(ThreadModule, ProfileSourceSubscriber):
|
||||
# TODO parser typing
|
||||
def __init__(self, mode_str: str, parser):
|
||||
def __init__(self, mode_str: str, parser: AudioChopperParser):
|
||||
self.parser = parser
|
||||
self.dialFrequency = None
|
||||
self.doRun = True
|
||||
|
@ -1,4 +1,5 @@
|
||||
from owrx.audio import AudioChopperProfile, ConfigWiredProfileSource
|
||||
from owrx.audio.chopper import AudioChopperParser
|
||||
import re
|
||||
from js8py import Js8
|
||||
from js8py.frames import Js8FrameHeartbeat, Js8FrameCompound
|
||||
@ -81,10 +82,10 @@ class Js8TurboProfile(Js8Profile):
|
||||
return "C"
|
||||
|
||||
|
||||
class Js8Parser:
|
||||
class Js8Parser(AudioChopperParser):
|
||||
decoderRegex = re.compile(" ?<Decode(Started|Debug|Finished)>")
|
||||
|
||||
def parse(self, profile, freq, raw_msg):
|
||||
def parse(self, profile: AudioChopperProfile, freq: int, raw_msg: bytes):
|
||||
try:
|
||||
band = None
|
||||
if freq is not None:
|
||||
|
@ -4,6 +4,7 @@ from owrx.map import Map, LocatorLocation
|
||||
from owrx.metrics import Metrics, CounterMetric
|
||||
from owrx.reporting import ReportingEngine
|
||||
from owrx.audio import AudioChopperProfile, StaticProfileSource, ConfigWiredProfileSource
|
||||
from owrx.audio.chopper import AudioChopperParser
|
||||
from abc import ABC, ABCMeta, abstractmethod
|
||||
from owrx.config import Config
|
||||
from enum import Enum
|
||||
@ -244,8 +245,8 @@ class Q65Profile(WsjtProfile):
|
||||
return ["jt9", "--q65", "-p", str(self.interval), "-b", self.mode.name, "-d", str(self.decoding_depth()), file]
|
||||
|
||||
|
||||
class WsjtParser:
|
||||
def parse(self, profile, freq, raw_msg):
|
||||
class WsjtParser(AudioChopperParser):
|
||||
def parse(self, profile: WsjtProfile, freq: int, raw_msg: bytes):
|
||||
try:
|
||||
band = None
|
||||
if freq is not None:
|
||||
|
Loading…
Reference in New Issue
Block a user