added tec modulation

This commit is contained in:
Ayzen
2026-04-27 17:49:52 +03:00
parent 6b6689fa5f
commit 31fd8ab111
7 changed files with 185 additions and 0 deletions

View File

@ -66,6 +66,7 @@ class MainWindow(QMainWindow):
request_apply_ad9833 = pyqtSignal(bool, bool, int)
request_pulse_ds1809 = pyqtSignal(bool, int, int)
request_set_stm32_dac = pyqtSignal(bool, int)
request_apply_tec_modulation = pyqtSignal(bool, int, int, int)
request_upload_wave = pyqtSignal(object)
request_cancel_wave = pyqtSignal()
request_save_profile = pyqtSignal(object)
@ -219,6 +220,7 @@ class MainWindow(QMainWindow):
self.request_apply_ad9833.connect(self._worker.apply_ad9833)
self.request_pulse_ds1809.connect(self._worker.pulse_ds1809)
self.request_set_stm32_dac.connect(self._worker.set_stm32_dac)
self.request_apply_tec_modulation.connect(self._worker.apply_tec_modulation)
self.request_upload_wave.connect(self._worker.upload_ad9102_waveform)
self.request_cancel_wave.connect(self._worker.cancel_ad9102_waveform_upload)
self.request_save_profile.connect(self._worker.save_profile)
@ -320,6 +322,16 @@ class MainWindow(QMainWindow):
)
)
def _on_apply_tec_modulation(self) -> None:
self._dispatch_command(
lambda: self.request_apply_tec_modulation.emit(
self._tec_mod_enable.isChecked(),
int(self._tec_mod_laser.currentData()),
self._tec_mod_frequency_hz.value(),
self._tec_mod_amplitude_code.value(),
)
)
def _on_save_profile(self) -> None:
dialog = ProfileSaveDialog(
custom_waveform_available=self._custom_waveform_is_available(),
@ -408,6 +420,7 @@ class MainWindow(QMainWindow):
self._apply_ad9102_button.setEnabled(connected)
self._apply_ad9833_button.setEnabled(connected)
self._apply_stm32_dac_button.setEnabled(connected)
self._apply_tec_modulation_button.setEnabled(connected)
self._pulse_ds1809_button.setEnabled(connected)
self._upload_wave_button.setEnabled(connected)
self._cancel_wave_button.setEnabled(connected)
@ -724,6 +737,11 @@ class MainWindow(QMainWindow):
f"stm32_dac_enable={1 if self._stm32_dac_enable.isChecked() else 0}",
f"stm32_dac_code={self._stm32_dac_code.value()}",
"",
f"tec_modulation_enable={1 if self._tec_mod_enable.isChecked() else 0}",
f"tec_modulation_laser={int(self._tec_mod_laser.currentData())}",
f"tec_modulation_frequency_hz={self._tec_mod_frequency_hz.value()}",
f"tec_modulation_amplitude_code={self._tec_mod_amplitude_code.value()}",
"",
f"ds1809_apply={'true' if self._ds1809_profile_apply.isChecked() else 'false'}",
f"ds1809_position_from_min={self._ds1809_profile_position.value()}",
]