save some cpu cycles by only running necessary stuff for services

This commit is contained in:
Jakob Ketterl
2019-08-04 14:55:56 +02:00
parent 441738e569
commit 42aae4c03a
3 changed files with 62 additions and 41 deletions

View File

@ -14,17 +14,15 @@ class ServiceOutput(output):
def __init__(self, frequency):
self.frequency = frequency
def add_output(self, t, read_fn):
if t == "wsjt_demod":
parser = WsjtParser(WsjtHandler())
parser.setDialFrequency(self.frequency)
target = self.pump(read_fn, parser.parse)
else:
# dump everything else
# TODO rewrite the output mechanism in a way that avoids producing unnecessary data
target = self.pump(read_fn, lambda x: None)
def receive_output(self, t, read_fn):
parser = WsjtParser(WsjtHandler())
parser.setDialFrequency(self.frequency)
target = self.pump(read_fn, parser.parse)
threading.Thread(target=target).start()
def supports_type(self, t):
return t == 'wsjt_demod'
class ServiceHandler(object):
def __init__(self, source):