fully-automatic mode panel generation

This commit is contained in:
Jakob Ketterl
2020-04-26 16:58:31 +02:00
parent 907787cfdc
commit bb1b561c47
5 changed files with 68 additions and 51 deletions

View File

@ -353,6 +353,7 @@ class OpenWebRxReceiverClient(Client):
self.send({"type": "modes", "value": [{
"modulation": m.modulation,
"name": m.name,
"digimode": m.digimode,
"requirements": m.requirements
} for m in modes]})

View File

@ -3,9 +3,10 @@ from functools import reduce
class Mode(object):
def __init__(self, modulation, name, requirements=None, service=False):
def __init__(self, modulation, name, requirements=None, service=False, digimode=False):
self.modulation = modulation
self.name = name
self.digimode = digimode
self.requirements = requirements if requirements is not None else []
self.service = service
@ -21,13 +22,24 @@ class Mode(object):
class Modes(object):
mappings = [
Mode("ft8", "FT8", ["wsjt-x"], True),
Mode("ft4", "FT4", ["wsjt-x"], True),
Mode("jt65", "JT65", ["wsjt-x"], True),
Mode("jt9", "JT9", ["wsjt-x"], True),
Mode("wspr", "WSPR", ["wsjt-x"], True),
Mode("packet", "Packet", ["packet"], True),
Mode("js8", "JS8Call", ["js8call"], True),
Mode("nfm", "FM"),
Mode("am", "AM"),
Mode("lsb", "LSB"),
Mode("usb", "USB"),
Mode("cw", "CW"),
Mode("dmr", "DMR", requirements=["digital_voice_digiham"]),
Mode("dstar", "DStar", requirements=["digital_voice_dsd"]),
Mode("nxdn", "NXDN", requirements=["digital_voice_dsd"]),
Mode("ysf", "YSF", requirements=["digital_voice_digiham"]),
Mode("bpsk31", "BPSK31", digimode=True),
Mode("bpsk63", "BPSK63", digimode=True),
Mode("ft8", "FT8", requirements=["wsjt-x"], service=True, digimode=True),
Mode("ft4", "FT4", requirements=["wsjt-x"], service=True, digimode=True),
Mode("jt65", "JT65", requirements=["wsjt-x"], service=True, digimode=True),
Mode("jt9", "JT9", requirements=["wsjt-x"], service=True, digimode=True),
Mode("wspr", "WSPR", requirements=["wsjt-x"], service=True, digimode=True),
Mode("packet", "Packet", ["packet"], service=True, digimode=True),
Mode("js8", "JS8Call", requirements=["js8call"], service=True, digimode=True),
]
@staticmethod