sweep feature added

This commit is contained in:
Ayzen
2026-10-09 19:45:30 +03:00
parent 62e0430668
commit a1386e2588
8 changed files with 241 additions and 6 deletions
+8 -1
View File
@@ -45,7 +45,7 @@ from laser_control.controller import (
ad9102_sram_frequency_limits_hz,
ad9102_sram_sample_count_from_frequency_hz,
)
from laser_control.models import DeviceStatus, Measurements, ProfileSaveRequest
from laser_control.models import DeviceStatus, Measurements, ProfileSaveRequest, SweepSettings
from .dialogs import ProfileSaveDialog
from .sections import (
@@ -68,6 +68,7 @@ class MainWindow(QMainWindow):
request_pulse_ds1809 = pyqtSignal(bool, int, int)
request_set_stm32_dac = pyqtSignal(bool, int)
request_apply_tec_modulation = pyqtSignal(bool, int, int, int)
request_apply_sweep = pyqtSignal(object)
request_upload_wave = pyqtSignal(object, int)
request_cancel_wave = pyqtSignal()
request_save_profile = pyqtSignal(object)
@@ -222,6 +223,7 @@ class MainWindow(QMainWindow):
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_apply_sweep.connect(self._worker.apply_sweep)
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)
@@ -333,6 +335,9 @@ class MainWindow(QMainWindow):
)
)
def _on_apply_sweep(self, settings: SweepSettings) -> None:
self._dispatch_command(lambda: self.request_apply_sweep.emit(settings))
def _on_save_profile(self) -> None:
dialog = ProfileSaveDialog(
custom_waveform_available=self._custom_waveform_is_available(),
@@ -443,6 +448,8 @@ class MainWindow(QMainWindow):
self._apply_ad9833_button.setEnabled(connected)
self._apply_stm32_dac_button.setEnabled(connected)
self._apply_tec_modulation_button.setEnabled(connected)
self._laser2_sweep.apply_button.setEnabled(connected)
self._stm32_dac_sweep.apply_button.setEnabled(connected)
self._pulse_ds1809_button.setEnabled(connected)
self._upload_wave_button.setEnabled(connected)
self._cancel_wave_button.setEnabled(connected)