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

@ -101,6 +101,22 @@ class ControllerWorker(QObject):
)
)
@pyqtSlot(bool, int, int, int)
def apply_tec_modulation(
self,
enabled: bool,
laser: int,
frequency_hz: int,
amplitude_code: int,
) -> None:
"""Configure fast TEC drive modulation."""
self._run_command(
lambda: (
self._ensure_connected(),
self._apply_tec_modulation_impl(enabled, laser, frequency_hz, amplitude_code),
)
)
@pyqtSlot(object)
def save_profile(self, request: object) -> None:
"""Save the current GUI configuration to the device SD card."""
@ -256,6 +272,26 @@ class ControllerWorker(QObject):
self.log_message.emit("INFO", f"STM32 DAC set to code {dac_code}")
self._emit_status()
def _apply_tec_modulation_impl(
self,
enabled: bool,
laser: int,
frequency_hz: int,
amplitude_code: int,
) -> None:
self._controller.configure_tec_modulation(
enabled=enabled,
laser=laser,
frequency_hz=frequency_hz,
amplitude_code=amplitude_code,
)
state = "enabled" if enabled else "disabled"
self.log_message.emit(
"INFO",
f"TEC modulation {state}: laser={laser}, frequency={frequency_hz} Hz, amplitude={amplitude_code}",
)
self._emit_status()
def _save_profile_impl(self, request: object) -> None:
self._controller.save_profile_to_sd(request)
profile_name = getattr(request, "profile_name", "<unnamed>")