openwebrx/csdr/module/msk144.py

34 lines
913 B
Python

from pycsdr.types import Format
from pycsdr.modules import ExecModule
from csdr.module import LineBasedModule
from owrx.wsjt import WsjtParser, Msk144Profile
import pickle
import logging
logger = logging.getLogger(__name__)
class Msk144Module(ExecModule):
def __init__(self):
super().__init__(
Format.SHORT,
Format.CHAR,
["msk144decoder"]
)
class ParserAdapter(LineBasedModule):
def __init__(self):
self.parser = WsjtParser()
self.dialFrequency = 0
self.profile = Msk144Profile()
super().__init__()
def process(self, line: bytes):
# actual messages from msk144decoder should start with "*** "
if line[0:4] == b"*** ":
return self.parser.parse(self.profile, self.dialFrequency, line[4:])
def setDialFrequency(self, frequency: int) -> None:
self.dialFrequency = frequency