horus-gui/src/horusgui/modem.py

70 wiersze
1.8 KiB
Python
Czysty Zwykły widok Historia

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