diff --git a/src/qudi/hardware/wavemeter/high_finesse_wavemeter.py b/src/qudi/hardware/wavemeter/high_finesse_wavemeter.py index 87267f9..a063eff 100644 --- a/src/qudi/hardware/wavemeter/high_finesse_wavemeter.py +++ b/src/qudi/hardware/wavemeter/high_finesse_wavemeter.py @@ -54,6 +54,11 @@ def on_activate(self): self._data = np.zeros((4, 1)) + self.__timer = QtCore.QTimer() + self.__timer.setSingleShot(False) + self.__timer.timeout.connect(self.__timer_callback) + self.__timer.start(1) # 100 ms timer + @wlmData.CALLBACK_TYPE def cb(mode, _intval, dblval): self._update(mode, _intval, dblval) @@ -74,6 +79,9 @@ def on_deactivate(self): """ Deactivate module. """ self._dll.Instantiate(wlmConst.cInstNotification, wlmConst.cNotifyRemoveCallback, None, 0) + self.__timer.stop() + self.__timer.timeout.disconnect() + self.__timer = None def get_wavelengths(self) -> np.ndarray: @@ -105,5 +113,11 @@ def _update(self, mode, _intval, dblval): if self.module_state() == 'locked': self._data[i] = dblval + + + + def __timer_callback(self): + """ Callback function for the timer. """ + if self.module_state() == 'locked': self.sigWavelengthUpdated.emit(self._data)