Skip to content

Commit

Permalink
Consolidate TeraScanType and TeraScanRate into SolstisLaser
Browse files Browse the repository at this point in the history
To keep logic and laser from having copied enums, I put the enum classes as a subclass in solstis laser. We still need to get ried of the redundant ocde in get_scan_type etc., and we also need to get rid of the redundant code where solsits_funcs also has the enum.
  • Loading branch information
lange50 committed Apr 30, 2025
1 parent c2dd374 commit 0098f78
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 89 deletions.
40 changes: 0 additions & 40 deletions src/qudi/gui/terascan/terascan_gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,46 +13,6 @@
from qudi.util.paths import get_artwork_dir
from qudi.util.colordefs import QudiPalettePale as palette

from enum import Enum


# ----------------------------------------------------------------------
# enums (kept local – same numeric values as in the logic)
# ----------------------------------------------------------------------
class TeraScanType(Enum):
SCAN_TYPE_MEDIUM = 1
SCAN_TYPE_FINE = 2
SCAN_TYPE_LINE = 3


class TeraScanRate(Enum):
SCAN_RATE_MEDIUM_100_GHZ = 4
SCAN_RATE_MEDIUM_50_GHZ = 5
SCAN_RATE_MEDIUM_20_GHZ = 6
SCAN_RATE_MEDIUM_15_GHZ = 7
SCAN_RATE_MEDIUM_10_GHZ = 8
SCAN_RATE_MEDIUM_5_GHZ = 9
SCAN_RATE_MEDIUM_2_GHZ = 10
SCAN_RATE_MEDIUM_1_GHZ = 11
SCAN_RATE_FINE_LINE_20_GHZ = 12
SCAN_RATE_FINE_LINE_10_GHZ = 13
SCAN_RATE_FINE_LINE_5_GHZ = 14
SCAN_RATE_FINE_LINE_2_GHZ = 15
SCAN_RATE_FINE_LINE_1_GHZ = 16
SCAN_RATE_FINE_LINE_500_MHZ = 17
SCAN_RATE_FINE_LINE_200_MHZ = 18
SCAN_RATE_FINE_LINE_100_MHZ = 19
SCAN_RATE_FINE_LINE_50_MHZ = 20
SCAN_RATE_FINE_LINE_20_MHZ = 21
SCAN_RATE_FINE_LINE_10_MHZ = 22
SCAN_RATE_FINE_LINE_5_MHZ = 23
SCAN_RATE_FINE_LINE_2_MHZ = 24
SCAN_RATE_FINE_LINE_1_MHZ = 25
SCAN_RATE_LINE_500_KHZ = 26
SCAN_RATE_LINE_200_KHZ = 27
SCAN_RATE_LINE_100_KHZ = 28
SCAN_RATE_LINE_50_KHZ = 29


pg.setConfigOption('useOpenGL', True)

Expand Down
29 changes: 16 additions & 13 deletions src/qudi/hardware/laser/solstis_laser.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
You should have received a copy of the GNU Lesser General Public License along with qudi.
If not, see <https://www.gnu.org/licenses/>.
"""
from __future__ import annotations
from typing import List

from PySide2 import QtCore
import time
from enum import Enum
Expand Down Expand Up @@ -296,9 +296,11 @@ def get_scan_types(self) -> dict:
return {
'Medium': TeraScanType.SCAN_TYPE_MEDIUM,
'Fine': TeraScanType.SCAN_TYPE_FINE,
'Line': TeraScanType.SCAN_TYPE_LINE
# 'Line': TeraScanType.SCAN_TYPE_LINE
}


# TODO: This is not the right way to do this. There is copied code.
@property
def get_scan_rates(self) -> dict:
scan_type = self._scan_type
Expand Down Expand Up @@ -337,16 +339,16 @@ def get_scan_rates(self) -> dict:
'1 MHz': TeraScanRate.SCAN_RATE_FINE_LINE_1_MHZ
}

elif scan_type in [
TeraScanType.SCAN_TYPE_LINE,
TeraScanType.SCAN_TYPE_LINE.value
]:
return {
'500 KHz': TeraScanRate.SCAN_RATE_LINE_500_KHZ,
'200 KHz': TeraScanRate.SCAN_RATE_LINE_200_KHZ,
'100 KHz': TeraScanRate.SCAN_RATE_LINE_100_KHZ,
'50 KHz': TeraScanRate.SCAN_RATE_LINE_50_KHZ
}
# elif scan_type in [
# TeraScanType.SCAN_TYPE_LINE,
# TeraScanType.SCAN_TYPE_LINE.value
# ]:
# return {
# '500 KHz': TeraScanRate.SCAN_RATE_LINE_500_KHZ,
# '200 KHz': TeraScanRate.SCAN_RATE_LINE_200_KHZ,
# '100 KHz': TeraScanRate.SCAN_RATE_LINE_100_KHZ,
# '50 KHz': TeraScanRate.SCAN_RATE_LINE_50_KHZ
# }

self.log.warning('Unknown scan type passed to get_scan_rates')

Expand Down Expand Up @@ -397,7 +399,8 @@ def __status_update(self):
else:
self.statusvar = 0
except solstis.SolstisError as e:
self.log.exception(f'Failure getting status: {e.message}')
# self.log.exception(f'Failure getting status: {e.message}')
self.log.warning(f'Failure getting status: {e.message}')
self.statusvar = -1
timestamp = time.perf_counter()
self.sigNewData.emit(timestamp, self.statusvar)
Expand Down
36 changes: 0 additions & 36 deletions src/qudi/logic/terascan_logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,42 +16,6 @@

from qudi.interface.daq_reader_interface import ReaderVal

from enum import Enum

# TODO: This is a copy of the one in the logic module. We should probably move this to a common place.
class TeraScanType(Enum):
SCAN_TYPE_MEDIUM = 1
SCAN_TYPE_FINE = 2
SCAN_TYPE_LINE = 3

class TeraScanRate(Enum):
SCAN_RATE_MEDIUM_100_GHZ = 4
SCAN_RATE_MEDIUM_50_GHZ = 5
SCAN_RATE_MEDIUM_20_GHZ = 6
SCAN_RATE_MEDIUM_15_GHZ = 7
SCAN_RATE_MEDIUM_10_GHZ = 8
SCAN_RATE_MEDIUM_5_GHZ = 9
SCAN_RATE_MEDIUM_2_GHZ = 10
SCAN_RATE_MEDIUM_1_GHZ = 11
SCAN_RATE_FINE_LINE_20_GHZ = 12
SCAN_RATE_FINE_LINE_10_GHZ = 13
SCAN_RATE_FINE_LINE_5_GHZ = 14
SCAN_RATE_FINE_LINE_2_GHZ = 15
SCAN_RATE_FINE_LINE_1_GHZ = 16
SCAN_RATE_FINE_LINE_500_MHZ = 17
SCAN_RATE_FINE_LINE_200_MHZ = 18
SCAN_RATE_FINE_LINE_100_MHZ = 19
SCAN_RATE_FINE_LINE_50_MHZ = 20
SCAN_RATE_FINE_LINE_20_MHZ = 21
SCAN_RATE_FINE_LINE_10_MHZ = 22
SCAN_RATE_FINE_LINE_5_MHZ = 23
SCAN_RATE_FINE_LINE_2_MHZ = 24
SCAN_RATE_FINE_LINE_1_MHZ = 25
SCAN_RATE_LINE_500_KHZ = 26
SCAN_RATE_LINE_200_KHZ = 27
SCAN_RATE_LINE_100_KHZ = 28
SCAN_RATE_LINE_50_KHZ = 29


# Find a way to append valid data to the lists instead of creating new ones.
class TerascanLogic(LogicBase):
Expand Down

0 comments on commit 0098f78

Please sign in to comment.