added tec modulation
This commit is contained in:
@ -51,6 +51,8 @@ from laser_control.constants import (
|
||||
DEFAULT_DS1809_PROFILE_POSITION,
|
||||
DEFAULT_DS1809_PULSE_MS,
|
||||
DEFAULT_STM32_DAC_CODE,
|
||||
DEFAULT_TEC_MODULATION_AMPLITUDE_CODE,
|
||||
DEFAULT_TEC_MODULATION_FREQUENCY_HZ,
|
||||
DEFAULT_TEMP1_C,
|
||||
DEFAULT_TEMP2_C,
|
||||
DS1809_COUNT_MAX,
|
||||
@ -64,6 +66,10 @@ from laser_control.constants import (
|
||||
AD9833_OUTPUT_FREQ_MIN_HZ,
|
||||
STM32_DAC_CODE_MAX,
|
||||
STM32_DAC_CODE_MIN,
|
||||
TEC_MODULATION_AMPLITUDE_CODE_MAX,
|
||||
TEC_MODULATION_AMPLITUDE_CODE_MIN,
|
||||
TEC_MODULATION_FREQUENCY_MAX_HZ,
|
||||
TEC_MODULATION_FREQUENCY_MIN_HZ,
|
||||
TEMP_MAX_C,
|
||||
TEMP_MIN_C,
|
||||
)
|
||||
@ -151,6 +157,7 @@ def build_device_group(owner) -> QGroupBox:
|
||||
tabs.addTab(_build_ad9102_tab(owner), "Генератор AD9102")
|
||||
tabs.addTab(_build_ad9833_tab(owner), "Генератор AD9833")
|
||||
tabs.addTab(_build_aux_tab(owner), "Выходы и DS1809")
|
||||
tabs.addTab(_build_tec_modulation_tab(owner), "TEC модуляция")
|
||||
tabs.addTab(_build_wave_tab(owner), "Своя форма")
|
||||
layout.addWidget(tabs)
|
||||
return group
|
||||
@ -448,6 +455,54 @@ def _build_aux_tab(owner) -> QWidget:
|
||||
return tab
|
||||
|
||||
|
||||
def _build_tec_modulation_tab(owner) -> QWidget:
|
||||
tab = QWidget()
|
||||
layout = QFormLayout(tab)
|
||||
layout.setHorizontalSpacing(12)
|
||||
layout.setVerticalSpacing(8)
|
||||
|
||||
owner._tec_mod_enable = QCheckBox("Включить модуляцию")
|
||||
owner._tec_mod_laser = QComboBox()
|
||||
owner._tec_mod_laser.addItem("Лазер 1", 1)
|
||||
owner._tec_mod_laser.addItem("Лазер 2", 2)
|
||||
owner._tec_mod_frequency_hz = _int_spinbox(
|
||||
TEC_MODULATION_FREQUENCY_MIN_HZ,
|
||||
TEC_MODULATION_FREQUENCY_MAX_HZ,
|
||||
DEFAULT_TEC_MODULATION_FREQUENCY_HZ,
|
||||
suffix=" Гц",
|
||||
)
|
||||
owner._tec_mod_frequency_hz.setSingleStep(50)
|
||||
owner._tec_mod_frequency_hz.setGroupSeparatorShown(True)
|
||||
owner._tec_mod_amplitude_code = _int_spinbox(
|
||||
TEC_MODULATION_AMPLITUDE_CODE_MIN,
|
||||
TEC_MODULATION_AMPLITUDE_CODE_MAX,
|
||||
DEFAULT_TEC_MODULATION_AMPLITUDE_CODE,
|
||||
)
|
||||
owner._tec_mod_amplitude_code.setSingleStep(16)
|
||||
owner._tec_mod_amplitude_code.setGroupSeparatorShown(True)
|
||||
owner._apply_tec_modulation_button = _expanding_button("Применить TEC модуляцию", primary=True)
|
||||
owner._apply_tec_modulation_button.clicked.connect(owner._on_apply_tec_modulation)
|
||||
|
||||
layout.addRow(owner._tec_mod_enable)
|
||||
layout.addRow("Лазер", owner._tec_mod_laser)
|
||||
layout.addRow(
|
||||
f"Частота ({TEC_MODULATION_FREQUENCY_MIN_HZ}..{TEC_MODULATION_FREQUENCY_MAX_HZ} Гц)",
|
||||
owner._tec_mod_frequency_hz,
|
||||
)
|
||||
layout.addRow(
|
||||
f"Амплитуда DAC ({TEC_MODULATION_AMPLITUDE_CODE_MIN}..{TEC_MODULATION_AMPLITUDE_CODE_MAX})",
|
||||
owner._tec_mod_amplitude_code,
|
||||
)
|
||||
layout.addRow(owner._apply_tec_modulation_button)
|
||||
|
||||
owner._tec_mod_frequency_hz.setToolTip("Частота синусоидальной добавки к выходу TEC PID.")
|
||||
owner._tec_mod_amplitude_code.setToolTip(
|
||||
"Пиковая амплитуда добавки в кодах внешнего TEC DAC. "
|
||||
"Прошивка ограничивает её по доступному запасу вокруг текущего PID-кода."
|
||||
)
|
||||
return tab
|
||||
|
||||
|
||||
def _build_wave_tab(owner) -> QWidget:
|
||||
tab = QWidget()
|
||||
layout = QVBoxLayout(tab)
|
||||
|
||||
Reference in New Issue
Block a user