horus-gui/horusgui/modem.py

71 wiersze
1.8 KiB
Python

# Modem Interfacing
import logging
from horusdemodlib.demod import Mode
# Modem paramers and defaults
HORUS_MODEM_LIST = {
"Horus Binary v1 (Legacy)": {
"id": Mode.BINARY_V1,
"baud_rates": [50, 100, 300],
"default_baud_rate": 100,
"default_tone_spacing": 270,
"use_mask_estimator": False,
},
"RTTY (7N2)": {
"id": Mode.RTTY_7N2,
"baud_rates": [50, 100, 300, 600, 1000],
"default_baud_rate": 100,
"default_tone_spacing": 425,
"use_mask_estimator": False,
},
}
DEFAULT_MODEM = "Horus Binary v1 (Legacy)"
horusModem = None
def init_horus_modem(widgets):
""" Initialise the modem drop-down lists """
# Clear modem list.
widgets["horusModemSelector"].clear()
# Add items from modem list
for _modem in HORUS_MODEM_LIST:
widgets["horusModemSelector"].addItem(_modem)
# Select default modem
widgets["horusModemSelector"].setCurrentText(DEFAULT_MODEM)
populate_modem_settings(widgets)
def populate_modem_settings(widgets):
""" Populate the modem settings for the current selected modem """
_current_modem = widgets["horusModemSelector"].currentText()
# Clear baud rate dropdown.
widgets["horusModemRateSelector"].clear()
# Populate
for _rate in HORUS_MODEM_LIST[_current_modem]["baud_rates"]:
widgets["horusModemRateSelector"].addItem(str(_rate))
# Select default rate.
widgets["horusModemRateSelector"].setCurrentText(
str(HORUS_MODEM_LIST[_current_modem]["default_baud_rate"])
)
# Set Mask Estimator checkbox.
widgets["horusMaskEstimatorSelector"].setChecked(
HORUS_MODEM_LIST[_current_modem]["use_mask_estimator"]
)
# Set Tone Spacing Input Box
widgets["horusMaskSpacingEntry"].setText(
str(HORUS_MODEM_LIST[_current_modem]["default_tone_spacing"])
)