diff --git a/pyproject.toml b/pyproject.toml index f1bcf3f30582ee78539c9c3286a8e830b7682f17..1b941f9ea10f6dceee93aa7d049284b891bdc703 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lasercontrol" -version = "0.1.3" +version = "1.0.0" authors = [ { name="Christoph Schmidt", email="cschmidt.fs@gmail.com" }, ] diff --git a/requirements.txt b/requirements.txt index 26f4276f942a6616c00d51a581e6aea827b1c6dd..afebb0b95d269587aea7bac9760be69b8958af1d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,12 +7,12 @@ rich pyyaml # add the git repo -#git+https://gitlab.tugraz.at/flexsensor-public/captdevicecontrol.git@develop +git+https://gitlab.tugraz.at/flexsensor-public/captdevicecontrol.git@develop git+https://gitlab.tugraz.at/flexsensor-public/modules/fswidgets.git@develop git+https://gitlab.tugraz.at/flexsensor-public/modules/confighandler.git@develop git+https://gitlab.tugraz.at/flexsensor-public/modules/cmp.git@develop # Local installs #../confighandler -../captdevicecontrol +#../captdevicecontrol #../modules/cmp diff --git a/src/LaserControl/__init__.py b/src/LaserControl/__init__.py index 0b350c9c4fef32817d101c7ecff34188db259313..7acaf6ab228ebfac9d6a2fb7db7ca8a4b0b16eb0 100644 --- a/src/LaserControl/__init__.py +++ b/src/LaserControl/__init__.py @@ -1,23 +1,10 @@ -import logging import os import sys -from rich.logging import RichHandler - - -# check if a handler is already set -#if not logging.root.handlers: -# FORMAT = "%(name)s %(message)s" -# logging.basicConfig( -# level="DEBUG", format=FORMAT, datefmt="[%X]", handlers=[ -# RichHandler(rich_tracebacks=True) -# ] -# ) - sys.path.append(os.path.join(os.path.dirname(__file__), '../')) -from .controller.LaserControlController import LaserControlController as Controller +from .controller.LaserDeviceControl import MPLaserDeviceControl as Controller from .model.LaserControlModel import LaserControlModel as Model from .view.LaserControlView import LaserControlView as View from .LaserConfig import LaserConfig as Config \ No newline at end of file diff --git a/src/LaserControl/controller/LaserCon.py b/src/LaserControl/controller/LaserCon.py index 15e240651e9ff3266590cd76d6bce32d09dbcc72..33606064a594b2e6bbaf94e93c99d02ce49d65ed 100644 --- a/src/LaserControl/controller/LaserCon.py +++ b/src/LaserControl/controller/LaserCon.py @@ -5,14 +5,10 @@ import sys import tempfile from contextlib import contextmanager -from PySide6.QtWidgets import QFileDialog, QApplication from rich.logging import RichHandler from LaserControl.controller.ErrorConverter import ErrorConverter - - - if os.getenv("LASER_SIM") == "TRUE": from LaserControl.libs.LaserLibSimulator import LaserLibSimulator as LaserLib else: diff --git a/src/LaserControl/controller/LaserControlController.py b/src/LaserControl/controller/LaserControlController.py deleted file mode 100644 index 452db943263ada9042ce46be35cd6e8e2ba7d2bb..0000000000000000000000000000000000000000 --- a/src/LaserControl/controller/LaserControlController.py +++ /dev/null @@ -1,177 +0,0 @@ -import logging -import time -from multiprocessing import Value, Lock, Process - -from PySide6.QtCore import QThreadPool - -from LaserControl.controller.multiprocess.MPLaserDeviceControl import MPLaserDeviceControl -from LaserControl.model.LaserControlModel import LaserControlModel - -import CaptDeviceControl as captdev - - -class LaserControlController: - - def __init__(self, model: LaserControlModel, start_capture_flag: Value = None): - - self.logger = logging.Logger("Laser Driver (Generic)") - - self.model = model - - # Multiprocess variables - # self.proc: Process = None - self.lock = Lock() - # self._laser_port = Value('i', 0, lock=self.lock) - # self._laser_connected_flag = Value('i', False, lock=self.lock) - - self._laser_moving_flag = Value('i', False, lock=self.lock) - self._laser_finished_flag = Value('i', False, lock=self.lock) - - # if self.model.capturing_device is None or not self.model.capturing_device_connected: - if start_capture_flag is not None: - self._start_capture_flag = start_capture_flag - else: - self._start_capture_flag = Value('i', False, lock=self.lock) - - # self._current_wavelength = Value('f', 0.0, lock=self.lock) - - # self._laser_state = Value(LaserStateArray, (False, False, False, 0, 0, 0), lock=self.lock) - - # For the sweep - # self.laser_at_start_position_flag = Value('i', False, lock=self.lock) - # self.laser_at_end_position_flag = Value('i', False, lock=self.lock) - - # Threads for acquiring data from the process - # self.thread_manager = QThreadPool() - self.mp_laser_controller = MPLaserDeviceControl(None, - self._laser_moving_flag, - self._laser_finished_flag, - self._start_capture_flag, - enable_logging=False) - - self.mp_laser_controller.get_connected_finished.connect( - lambda x: type(self.model).connected.fset(self.model, bool(x))) - - self.mp_laser_controller.get_current_wavelength_finished.connect( - lambda x: type(self.model).current_wavelength.fset(self.model, x)) - - self.mp_laser_controller.get_min_wavelength_finished.connect( - lambda x: type(self.model).min_laser_wavelength.fset(self.model, x)) - - self.mp_laser_controller.get_max_wavelength_finished.connect( - lambda x: type(self.model).max_laser_wavelength.fset(self.model, x)) - - self.mp_laser_controller.get_velocity_finished.connect( - lambda x: type(self.model).velocity.fset(self.model, x)) - - self.mp_laser_controller.get_acceleration_finished.connect( - lambda x: type(self.model).acceleration.fset(self.model, x)) - - self.mp_laser_controller.get_deceleration_finished.connect( - lambda x: type(self.model).deceleration.fset(self.model, x)) - - self.mp_laser_controller.move_to_wavelength_finished.connect(self._move_to_wavelength_finished) - - self.mp_laser_controller.laser_is_moving_changed.connect(self._laser_is_moving_changed) - self.mp_laser_controller.movement_finished_changed.connect(self._laser_movement_finished) - - self.kill_thread = False - - def connect_capture_device(self, device: captdev.Controller): - self.logger.info( - "***********************************************Connecting to capture device..***********************************") - self.mp_laser_controller.mp_read_laser_settings(self.model.port) - if isinstance(device, captdev.Controller): - self.model.capturing_device = device - self.model.capturing_device.model.device_information.signals.device_connected_changed.connect( - lambda x: type(self.model).capturing_device_connected.fset(self.model, x) - ) - - def connect_device(self): - self.logger.info("Connecting to laser...") - self.mp_laser_controller.mp_read_laser_settings(self.model.port) - - def _move_to_wavelength_finished(self, wavelength: float): - self.logger.info(f"Move to wavelength finished. Current wavelength: {wavelength}") - - def _laser_is_moving_changed(self, is_moving: bool, to_wavelength: float): - self.logger.info(f"************** Laser is moving: {is_moving}." - f"Moving to {self.model.laser_moving_to_wavelength} nm") - self.model.laser_is_moving = (is_moving, to_wavelength) - self.logger.info(f"************** Laser is moving: {is_moving}." - f"Moving to {self.model.laser_moving_to_wavelength} nm") - - def _laser_movement_finished(self, is_finished: bool): - pass - - # def _monitor_laser_state(self): - # while not self.kill_thread: - # self.model.connected = bool(self._laser_connected_flag.value) - # self.model.laser_is_moving = bool(self._laser_moving_flag.value) - # self.model.laser_at_position = bool(self._laser_finished_flag.value) - # self.model.current_wavelength = float(self._current_wavelength.value) - # #print(self._laser_state.connected) - # #print("Monitor") - # time.sleep(0.1) - # self.logger.info("Monitor Laser State Thread Ended") - # # Reset the flag - # self._laser_finished_flag.value = False - - # def read_laser_settings(self): - # self.logger.info("Reading laser settings...") - # with LaserCon() as con: - # self.model.connected = con.connected - # self.model.min_laser_wavelength = con.min_wavelength - # self.model.max_laser_wavelength = con.max_wavelength - # self.model.current_wavelength = con.current_wavelength - # self.model.velocity = con.velocity - # self.model.acceleration = con.acceleration - # - # - # self.model.connected = False - - def start_wavelength_sweep(self, start_wavelength: float = None, stop_wavelength: float = None) -> None: - # self.capt_device.clear_data() - # Reset the flag - # self.capt_device.model.capturing_finished = False - self.logger.info(f"Starting wavelength sweep from {start_wavelength} to {stop_wavelength}") - if self.model.capturing_device is not None: - self.model.capturing_device.reset_capture() - if not self.model.capturing_device.model.device_information.device_connected: - self.model.capturing_device.open_device() - self.model.capturing_device.ready_for_recording_changed.connect( - lambda ready: self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength, ready=ready) - ) - self.logger.info("Capturing device is connected.") - - if self.model.capturing_device.model.capturing_information.ready_for_recording: - self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength) - - - else: - self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength) - - def start_wavelength_sweep_emitted(self, start_wavelength: float = None, stop_wavelength: float = None, ready=True): - if ready: - if start_wavelength is None: - start_wavelength = self.model.sweep_start_wavelength - if stop_wavelength is None: - stop_wavelength = self.model.sweep_stop_wavelength - self.mp_laser_controller.wavelength_sweep(self.model.port, start_wavelength, stop_wavelength) - - def move_to_wavelength(self, wavelength: float) -> None: - self.logger.info(f"Move to wavelength {wavelength}") - self.mp_laser_controller.move_to_wavelength(self.model.port, wavelength) - - def stop_process(self): - time_start = time.time() - # if self.proc is not None: - # while self.proc.is_alive(): - # time.sleep(0.1) - # self.logger.warning(f"Laser process exited after {time.time() - time_start}s") - self.kill_thread = True - - def __del__(self): - self.logger.info("Exiting Laser controller") - self.stop_process() - self.logger.warning("Laser controller exited") diff --git a/src/LaserControl/controller/LaserDeviceControl.py b/src/LaserControl/controller/LaserDeviceControl.py new file mode 100644 index 0000000000000000000000000000000000000000..ea5e49a3cb79b5ad8e3b074cc90897e5046a0d71 --- /dev/null +++ b/src/LaserControl/controller/LaserDeviceControl.py @@ -0,0 +1,171 @@ +import logging +from multiprocessing import Value, Lock + +import CaptDeviceControl as captdev +import cmp +from PySide6.QtCore import Signal +from cmp.CProcessControl import CProcessControl + +from LaserControl.controller.multiprocess.MPLaserDevice import MPLaserDevice +from LaserControl.model.LaserControlModel import LaserControlModel + + +class MPLaserDeviceControl(CProcessControl): + get_connected_finished = Signal(bool, name='get_connected_finished') + get_current_wavelength_finished = Signal(float, name='get_current_wavelength_finished') + get_min_wavelength_finished = Signal(float, name='get_min_wavelength_finished') + get_max_wavelength_finished = Signal(float, name='get_max_wavelength_finished') + get_velocity_finished = Signal(float, name='get_velocity_finished') + get_acceleration_finished = Signal(float, name='get_acceleration_finished') + get_deceleration_finished = Signal(float, name='get_deceleration_finished') + mp_read_laser_settings_finished = Signal(name='mp_read_laser_settings_finished') + + move_to_wavelength_finished = Signal(float, name='move_to_wavelength_finished') + wavelength_sweep_finished = Signal(float, float, name='wavelength_sweep_finished') + + laser_is_moving_changed = Signal(bool, float, name='laser_is_moving_changed') + movement_finished_changed = Signal(bool, name='movement_finished_changed') + + def __init__(self, model: LaserControlModel, + start_capture_flag: Value, + internal_log_level=logging.WARNING, + internal_log=True, + log_file=None): + super().__init__(internal_log_level=internal_log_level, internal_log=internal_log, log_file=log_file) + + self.model = model + + self.lock = Lock() + self._laser_moving_flag = Value('i', False, lock=self.lock) + self._laser_finished_flag = Value('i', False, lock=self.lock) + + self.register_child_process(MPLaserDevice, + self._laser_moving_flag, + self._laser_finished_flag, + start_capture_flag) + + + self.get_connected_finished.connect( + lambda x: type(self.model).connected.fset(self.model, bool(x))) + + self.get_current_wavelength_finished.connect( + lambda x: type(self.model).current_wavelength.fset(self.model, x)) + + self.get_min_wavelength_finished.connect( + lambda x: type(self.model).min_laser_wavelength.fset(self.model, x)) + + self.get_max_wavelength_finished.connect( + lambda x: type(self.model).max_laser_wavelength.fset(self.model, x)) + + self.get_velocity_finished.connect( + lambda x: type(self.model).velocity.fset(self.model, x)) + + self.get_acceleration_finished.connect( + lambda x: type(self.model).acceleration.fset(self.model, x)) + + self.get_deceleration_finished.connect( + lambda x: type(self.model).deceleration.fset(self.model, x)) + + self.move_to_wavelength_finished.connect(self._move_to_wavelength_finished) + + self.laser_is_moving_changed.connect(self._laser_is_moving_changed) + self.movement_finished_changed.connect(self._laser_movement_finished) + + self.kill_thread = False + + def set_start_capture_flag(self, start_capture_flag: Value): + self._start_capture_flag = start_capture_flag + + @cmp.CProcessControl.register_function(get_connected_finished) + def get_connected(self): + self._internal_logger.info("Reading current connection state from process.") + + @cmp.CProcessControl.register_function(get_current_wavelength_finished) + def get_current_wavelength(self): + self._internal_logger.info("Reading current wavelength from process.") + + @cmp.CProcessControl.register_function(get_min_wavelength_finished) + def get_min_wavelength(self): + self._internal_logger.info("Reading minimum wavelength from process.") + + @cmp.CProcessControl.register_function(get_max_wavelength_finished) + def get_max_wavelength(self): + self._internal_logger.info("Reading maximum wavelength from process.") + + @CProcessControl.register_function(get_velocity_finished) + def get_velocity(self): + self._internal_logger.info("Reading velocity from process.") + + @cmp.CProcessControl.register_function(get_acceleration_finished) + def get_acceleration(self): + self._internal_logger.info("Reading acceleration from process.") + + @cmp.CProcessControl.register_function(get_deceleration_finished) + def get_deceleration(self): + self._internal_logger.info("Reading deceleration from process.") + + @cmp.CProcessControl.register_function(mp_read_laser_settings_finished) + def mp_read_laser_settings(self, usb_port: str): + self._internal_logger.info(f"Reading laser settings from process using {usb_port}") + + @cmp.CProcessControl.register_function(move_to_wavelength_finished) + def move_to_wavelength(self, usb_port: str, wavelength: float): + print(f"Moving laser ({usb_port}) to wavelength {wavelength} from process") + + @cmp.CProcessControl.register_function(wavelength_sweep_finished) + def wavelength_sweep(self, usb_port: str, wavelength_start: float, wavelength_end: float): + print(f"Sweeping laser ({usb_port}): Wavelength {wavelength_start} - {wavelength_end} from process") + + # ================================================================================================================== + # + # ================================================================================================================== + def connect_capture_device(self, device: captdev.Controller): + self.logger.info( + "***********************************************Connecting to capture device..***********************************") + self.mp_read_laser_settings(self.model.port) + if isinstance(device, captdev.Controller): + self.model.capturing_device = device + self.model.capturing_device.model.device_information.signals.device_connected_changed.connect( + lambda x: type(self.model).capturing_device_connected.fset(self.model, x) + ) + + def _move_to_wavelength_finished(self, wavelength: float): + self.logger.info(f"Move to wavelength finished. Current wavelength: {wavelength}") + + def _laser_is_moving_changed(self, is_moving: bool, to_wavelength: float): + self.logger.info(f"************** Laser is moving: {is_moving}." + f"Moving to {self.model.laser_moving_to_wavelength} nm") + self.model.laser_is_moving = (is_moving, to_wavelength) + self.logger.info(f"************** Laser is moving: {is_moving}." + f"Moving to {self.model.laser_moving_to_wavelength} nm") + + def _laser_movement_finished(self, is_finished: bool): + pass + + def start_wavelength_sweep(self, start_wavelength: float = None, stop_wavelength: float = None) -> None: + # self.capt_device.clear_data() + # Reset the flag + # self.capt_device.model.capturing_finished = False + self.logger.info(f"Starting wavelength sweep from {start_wavelength} to {stop_wavelength}") + if self.model.capturing_device is not None: + self.model.capturing_device.reset_capture() + if not self.model.capturing_device.model.device_information.device_connected: + #self.model. + self.model.capturing_device.open_device() + self.model.capturing_device.ready_for_recording_changed.connect( + lambda ready: self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength, ready=ready) + ) + self.logger.info("Capturing device is connected.") + + if self.model.capturing_device.model.capturing_information.ready_for_recording: + self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength) + else: + self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength) + + def start_wavelength_sweep_emitted(self, start_wavelength: float = None, stop_wavelength: float = None, ready=True): + if ready: + if start_wavelength is None: + start_wavelength = self.model.sweep_start_wavelength + if stop_wavelength is None: + stop_wavelength = self.model.sweep_stop_wavelength + self.wavelength_sweep(self.model.port, start_wavelength, stop_wavelength) \ No newline at end of file diff --git a/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py b/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py index bb6490be1243794941829c6b31852bdc855ef037..e8ac59986f51bf5f2867c6204811f1ee1cf6fb55 100644 --- a/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py +++ b/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py @@ -1,6 +1,3 @@ -from ctypes import c_int, c_byte - - class LaserState: def __init__(self): # Multiprocessing Information diff --git a/src/LaserControl/controller/multiprocess/MPLaserDevice.py b/src/LaserControl/controller/multiprocess/MPLaserDevice.py index 1f1e9e37c019ded968b3f8e9d56ab2a515b7f1e4..ed62274071e6159b2331d588f2cc2517e92e3ed8 100644 --- a/src/LaserControl/controller/multiprocess/MPLaserDevice.py +++ b/src/LaserControl/controller/multiprocess/MPLaserDevice.py @@ -1,7 +1,6 @@ -import logging -import os import time from multiprocessing import Value + import cmp from LaserControl.controller.LaserCon import LaserCon @@ -10,18 +9,15 @@ from LaserControl.controller.LaserCon import LaserCon class MPLaserDevice(cmp.CProcess): def __init__(self, state_queue, cmd_queue, - laser_moving_flag: Value, laser_finished_flag: Value, start_capture_flag: Value, kill_flag: Value, - internal_log, internal_log_level): + internal_log, internal_log_level, log_file): super().__init__(state_queue, cmd_queue, kill_flag=kill_flag, - internal_log=internal_log, - internal_log_level=internal_log_level,) + internal_log=internal_log, internal_log_level=internal_log_level, log_file=log_file) - self.logger, self.ha = None, None # if not self.logger.handlers: # self.logger.setLevel(level=logging.DEBUG) # self.logger.disabled = False @@ -32,8 +28,6 @@ class MPLaserDevice(cmp.CProcess): self.laser_finished_flag = laser_finished_flag self.start_capture_flag = start_capture_flag - def init_loggers(self): - self.logger, self.ha = self.create_new_logger(f"{self.__class__.__name__}/({os.getpid()})") def wrap_func(self, func, con: LaserCon = None, usb_port: str = None): res = None diff --git a/src/LaserControl/controller/multiprocess/MPLaserDeviceControl.py b/src/LaserControl/controller/multiprocess/MPLaserDeviceControl.py deleted file mode 100644 index bc373a7f283a74722ced4ab0aaaca40615a8e74c..0000000000000000000000000000000000000000 --- a/src/LaserControl/controller/multiprocess/MPLaserDeviceControl.py +++ /dev/null @@ -1,80 +0,0 @@ -import logging -from multiprocessing import Value - -import cmp -from PySide6.QtCore import Signal -from cmp.CProcessControl import CProcessControl - -from LaserControl.controller.multiprocess.MPLaserDevice import MPLaserDevice - - -class MPLaserDeviceControl(CProcessControl): - get_connected_finished = Signal(bool, name='get_connected_finished') - get_current_wavelength_finished = Signal(float, name='get_current_wavelength_finished') - get_min_wavelength_finished = Signal(float, name='get_min_wavelength_finished') - get_max_wavelength_finished = Signal(float, name='get_max_wavelength_finished') - get_velocity_finished = Signal(float, name='get_velocity_finished') - get_acceleration_finished = Signal(float, name='get_acceleration_finished') - get_deceleration_finished = Signal(float, name='get_deceleration_finished') - mp_read_laser_settings_finished = Signal(name='mp_read_laser_settings_finished') - - move_to_wavelength_finished = Signal(float, name='move_to_wavelength_finished') - wavelength_sweep_finished = Signal(float, float, name='wavelength_sweep_finished') - - laser_is_moving_changed = Signal(bool, float, name='laser_is_moving_changed') - movement_finished_changed = Signal(bool, name='movement_finished_changed') - - def __init__(self, parent, - laser_moving_flag: Value, - laser_finished_flag: Value, - start_capture_flag: Value, - enable_logging=False): - super().__init__(parent, internal_log_level=logging.DEBUG, internal_log=True) - - self.register_child_process(MPLaserDevice, - laser_moving_flag, - laser_finished_flag, - start_capture_flag) - - def set_start_capture_flag(self, start_capture_flag: Value): - self._start_capture_flag = start_capture_flag - - @cmp.CProcessControl.register_function(get_connected_finished) - def get_connected(self): - self._internal_logger.info("Reading current connection state from process.") - - @cmp.CProcessControl.register_function(get_current_wavelength_finished) - def get_current_wavelength(self): - self._internal_logger.info("Reading current wavelength from process.") - - @cmp.CProcessControl.register_function(get_min_wavelength_finished) - def get_min_wavelength(self): - self._internal_logger.info("Reading minimum wavelength from process.") - - @cmp.CProcessControl.register_function(get_max_wavelength_finished) - def get_max_wavelength(self): - self._internal_logger.info("Reading maximum wavelength from process.") - - @CProcessControl.register_function(get_velocity_finished) - def get_velocity(self): - self._internal_logger.info("Reading velocity from process.") - - @cmp.CProcessControl.register_function(get_acceleration_finished) - def get_acceleration(self): - self._internal_logger.info("Reading acceleration from process.") - - @cmp.CProcessControl.register_function(get_deceleration_finished) - def get_deceleration(self): - self._internal_logger.info("Reading deceleration from process.") - - @cmp.CProcessControl.register_function(mp_read_laser_settings_finished) - def mp_read_laser_settings(self, usb_port: str): - self._internal_logger.info(f"Reading laser settings from process using {usb_port}") - - @cmp.CProcessControl.register_function(move_to_wavelength_finished) - def move_to_wavelength(self, usb_port: str, wavelength: float): - print(f"Moving laser ({usb_port}) to wavelength {wavelength} from process") - - @cmp.CProcessControl.register_function(wavelength_sweep_finished) - def wavelength_sweep(self, usb_port: str, wavelength_start: float, wavelength_end: float): - print(f"Sweeping laser ({usb_port}): Wavelength {wavelength_start} - {wavelength_end} from process") diff --git a/src/LaserControl/controller/multiprocess/move_to_wavelength.py b/src/LaserControl/controller/multiprocess/move_to_wavelength.py index 9f1c1898f298a817217a65c410fc8cd6d9867d5b..f1a108f1abc3a8b3d4df37e43a1e6e278ee19f19 100644 --- a/src/LaserControl/controller/multiprocess/move_to_wavelength.py +++ b/src/LaserControl/controller/multiprocess/move_to_wavelength.py @@ -3,6 +3,8 @@ import time from multiprocessing import Value from LaserControl.controller.LaserCon import LaserCon + + #from LaserControl.controller.multiprocess.logging import log_debug, log_info diff --git a/src/LaserControl/libs/LaserLibSimulator.py b/src/LaserControl/libs/LaserLibSimulator.py index 42c7ae810f25ffd6866a51f549e68cfd0618d00b..9d8d76bf926e608dcc1065ab77f7e5ef510c64e3 100644 --- a/src/LaserControl/libs/LaserLibSimulator.py +++ b/src/LaserControl/libs/LaserLibSimulator.py @@ -1,6 +1,5 @@ import logging import time - from random import randint from LaserControl.libs.LaserSceleton import LaserScelton diff --git a/src/LaserControl/libs/LaserSceleton.py b/src/LaserControl/libs/LaserSceleton.py index 02be2d061a40ee4d5067cf02ff84a0614a6b9237..06b7909c130b3566aec74bdfe32090ce4b29f0cf 100644 --- a/src/LaserControl/libs/LaserSceleton.py +++ b/src/LaserControl/libs/LaserSceleton.py @@ -1,9 +1,3 @@ -import logging -import time - -from random import randint - - class LaserScelton(): # ================================================================================================================== diff --git a/src/LaserControl/model/LaserControlModel.py b/src/LaserControl/model/LaserControlModel.py index 06e7927a1a6e4a50a16084cca12a2b40f7b094cb..4fd960ddb57e45755b988770ccbb65829319ce5e 100644 --- a/src/LaserControl/model/LaserControlModel.py +++ b/src/LaserControl/model/LaserControlModel.py @@ -1,8 +1,9 @@ # import mcpy +import CaptDeviceControl as captdev + from LaserControl.LaserConfig import LaserConfig from LaserControl.model.LaserControlSignals import LaserControlSignals -import CaptDeviceControl as captdev # from LaserControl.model.LaserControlSignals import LaserControllerSignals # from LaserControlOld.LaserConfig import LaserConfig diff --git a/src/LaserControl/resources/icons/icon_adc.svg b/src/LaserControl/resources/icons/icon_adc.svg index c4a79cb2ad1b6d37d8130df86cb2386e328b6a7b..be80435149761e1123ed1ba5402834e426920ea7 100644 --- a/src/LaserControl/resources/icons/icon_adc.svg +++ b/src/LaserControl/resources/icons/icon_adc.svg @@ -2,20 +2,20 @@ <!-- Generiert durch Microsoft Visio, SVG Export icon_adc.svg Page-4 --> <svg - width="1.49467in" - height="1.50392in" - viewBox="0 0 107.616 108.282" - xml:space="preserve" - color-interpolation-filters="sRGB" - class="st4" - version="1.1" - id="svg264" - sodipodi:docname="icon_adc.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"><defs + width="1.49467in" + height="1.50392in" + viewBox="0 0 107.616 108.282" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st4" + version="1.1" + id="svg264" + sodipodi:docname="icon_adc.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" +><defs id="defs268" /><sodipodi:namedview id="namedview266" pagecolor="#ffffff" diff --git a/src/LaserControl/view/LaserControlView.py b/src/LaserControl/view/LaserControlView.py index 31a2f9ef67d7532c0021b6d233d4785c505b4596..65f162748f1343ebd43c31dce92a690766d76b55 100644 --- a/src/LaserControl/view/LaserControlView.py +++ b/src/LaserControl/view/LaserControlView.py @@ -1,20 +1,19 @@ import logging import os -import time -from PySide6.QtCore import QThread, QTimer +from PySide6.QtCore import QTimer from PySide6.QtWidgets import QMainWindow, QProgressDialog from rich.logging import RichHandler -from LaserControl.controller.LaserControlController import LaserControlController -from LaserControl.view.Ui_LaserControlWindow import Ui_LaserControlWindow +from LaserControl.controller.LaserDeviceControl import MPLaserDeviceControl from LaserControl.model.LaserControlModel import LaserControlModel +from LaserControl.view.Ui_LaserControlWindow import Ui_LaserControlWindow from LaserControl.view.WidgetLaserInformation import WidgetLaserInformation class LaserControlView(QMainWindow): - def __init__(self, model: LaserControlModel, controller: LaserControlController): + def __init__(self, model: LaserControlModel, controller: MPLaserDeviceControl): super().__init__() self.handler = RichHandler(rich_tracebacks=True) self.logger = logging.getLogger(f"{self.__class__.__name__}({os.getpid()})") diff --git a/src/LaserControl/view/Ui_LaserControlWindow.py b/src/LaserControl/view/Ui_LaserControlWindow.py index e13b9218778f02e17dad4b5d182fa24c17281282..dd60d8d2750151f188cd0acc5ed5926e1a3b2086 100644 --- a/src/LaserControl/view/Ui_LaserControlWindow.py +++ b/src/LaserControl/view/Ui_LaserControlWindow.py @@ -8,18 +8,12 @@ ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ -from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, - QMetaObject, QObject, QPoint, QRect, - QSize, QTime, QUrl, Qt) -from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, - QFont, QFontDatabase, QGradient, QIcon, - QImage, QKeySequence, QLinearGradient, QPainter, - QPalette, QPixmap, QRadialGradient, QTransform) -from PySide6.QtWidgets import (QApplication, QComboBox, QDoubleSpinBox, QFrame, - QGridLayout, QGroupBox, QLCDNumber, QLabel, - QMainWindow, QPushButton, QSizePolicy, QSlider, - QTabWidget, QVBoxLayout, QWidget) -import resources_rc +from PySide6.QtCore import (QCoreApplication, QMetaObject, QSize, Qt) +from PySide6.QtWidgets import (QComboBox, QDoubleSpinBox, QFrame, + QGridLayout, QGroupBox, QLCDNumber, QLabel, + QPushButton, QSlider, + QTabWidget, QVBoxLayout, QWidget) + class Ui_LaserControlWindow(object): def setupUi(self, LaserControlWindow):