js8 service
This commit is contained in:
		@@ -5,10 +5,12 @@ from owrx.bands import Bandplan
 | 
			
		||||
from csdr.csdr import dsp, output
 | 
			
		||||
from owrx.wsjt import WsjtParser
 | 
			
		||||
from owrx.aprs import AprsParser
 | 
			
		||||
from owrx.js8 import Js8Parser
 | 
			
		||||
from owrx.config import Config
 | 
			
		||||
from owrx.source.resampler import Resampler
 | 
			
		||||
from owrx.feature import FeatureDetector
 | 
			
		||||
from owrx.property import PropertyLayer
 | 
			
		||||
from js8py import Js8Frame
 | 
			
		||||
from abc import ABCMeta, abstractmethod
 | 
			
		||||
from .schedule import ServiceScheduler
 | 
			
		||||
from functools import reduce
 | 
			
		||||
@@ -50,6 +52,14 @@ class AprsServiceOutput(ServiceOutput):
 | 
			
		||||
        return t == "packet_demod"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Js8ServiceOutput(ServiceOutput):
 | 
			
		||||
    def getParser(self):
 | 
			
		||||
        return Js8Parser(Js8Handler())
 | 
			
		||||
 | 
			
		||||
    def supports_type(self, t):
 | 
			
		||||
        return t == "js8_demod"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ServiceDetector(object):
 | 
			
		||||
    requirements = {
 | 
			
		||||
        "ft8": ["wsjt-x"],
 | 
			
		||||
@@ -58,6 +68,7 @@ class ServiceDetector(object):
 | 
			
		||||
        "jt9": ["wsjt-x"],
 | 
			
		||||
        "wspr": ["wsjt-x"],
 | 
			
		||||
        "packet": ["packet"],
 | 
			
		||||
        "js8": ["js8call"],
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
@@ -258,6 +269,8 @@ class ServiceHandler(object):
 | 
			
		||||
        # TODO selecting outputs will need some more intelligence here
 | 
			
		||||
        if mode == "packet":
 | 
			
		||||
            output = AprsServiceOutput(frequency)
 | 
			
		||||
        elif mode == "js8":
 | 
			
		||||
            output = Js8ServiceOutput(frequency)
 | 
			
		||||
        else:
 | 
			
		||||
            output = WsjtServiceOutput(frequency)
 | 
			
		||||
        d = dsp(output)
 | 
			
		||||
@@ -293,6 +306,11 @@ class AprsHandler(object):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Js8Handler(object):
 | 
			
		||||
    def write_js8_message(self, frame: Js8Frame, freq: int):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Services(object):
 | 
			
		||||
    handlers = []
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user