def __init__(self, stage_name, position, title='actuator'): super().__init__() self.logger = utils.set_logger(f'{logger.name}.{title}.actuator') self.hardware = None self.stage_name = stage_name self.current_position = position self.target_position = 0 self.hardware_adress = None self.axis_address = None self.motion_stoped = False
import os, fnmatch import importlib from pymodaq.daq_utils import daq_utils as utils logger = utils.set_logger('viewerND_plugins', add_to_console=True) path = os.path.abspath(__file__) (path, tail) = os.path.split(path) files = list() for file in os.listdir(path): if fnmatch.fnmatch(file, "*.py"): files.append(file) if '__init__.py' in files: files.remove('__init__.py') __all__ = [file[:-3] for file in files] for mod in __all__: try: importlib.import_module('.' + mod, 'pymodaq_plugins.daq_viewer_plugins.plugins_ND') except Exception as e: logger.warning("{:} plugin couldn't be loaded due to some missing packages or errors: {:}".format(mod, str(e))) pass
from collections import OrderedDict from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QEvent, QBuffer, QIODevice, QLocale, Qt, QVariant, QModelIndex from PyQt5 import QtGui, QtWidgets, QtCore import numpy as np from pathlib import Path from pyqtgraph.dockarea.DockArea import DockArea, TempAreaWindow from pymodaq.daq_utils import daq_utils as utils from pyqtgraph.parametertree import Parameter logger = utils.set_logger(utils.get_module_name(__file__)) dashboard_submodules_params = [ { 'title': 'Save 2D datas and above:', 'name': 'save_2D', 'type': 'bool', 'value': True }, { 'title': 'Save raw datas only:', 'name': 'save_raw_only', 'type': 'bool', 'value': True, 'tooltip': 'if True, will not save extracted ROIs used to do live plotting, only raw datas will be saved'
import importlib from pathlib import Path from pymodaq.daq_utils import daq_utils as utils logger = utils.set_logger('move_plugins', add_to_console=False) for path in Path(__file__).parent.iterdir(): try: if '__init__' not in str(path): importlib.import_module('.' + path.stem, __package__) except Exception as e: logger.warning( "{:} plugin couldn't be loaded due to some missing packages or errors: {:}" .format(path.stem, str(e))) pass
import importlib from pathlib import Path from pymodaq.daq_utils import daq_utils as utils logger = utils.set_logger('viewer1D_plugins', add_to_console=False) for path in Path(__file__).parent.iterdir(): try: if '__init__' not in str(path): importlib.import_module('.' + path.stem, __package__) except Exception as e: logger.warning( "{:} plugin couldn't be loaded due to some missing packages or errors: {:}" .format(path.stem, str(e))) pass
import numpy import numpy as np from PyQt5 import QtWidgets, QtGui from PyQt5.QtCore import QObject, pyqtSignal from pyqtgraph import LinearRegionItem from pymodaq.daq_utils.daq_utils import ftAxis_time, ft, find_index, gauss1D, ift, set_logger, get_module_name from pymodaq.daq_utils.plotting.viewer1D.viewer1Dbasic import Viewer1DBasic logger = set_logger(get_module_name(__file__)) class FourierFilterer(QObject): filter_changed = pyqtSignal(dict) def __init__(self, parent=None): super(FourierFilterer, self).__init__() if parent is None: parent = QtWidgets.QWidget() self.parent = parent self.raw_data = None self.data = None self.data_fft = None self.filter = None self.xaxis = None self.yaxis = None self.xaxisft = None self.yaxisft = None
def __init__(self, parent, title="pymodaq Move", preset=None, init=False, controller_ID=-1): """DAQ_Move object is a module used to control one motor from a specified list. managers is an optional list of dicts used to managers programatically settings such as the name of the controller from the list of possible controllers, COM address... init is a boolean to tell the programm to initialize the controller at the start of the programm given the managers options controller_ID is a unique random integer generated by the parent caller. To differenciate various instance of this class """ self.logger = utils.set_logger(f'{logger.name}.{title}') self.logger.info(f'Initializing DAQ_Move: {title}') QLocale.setDefault(QLocale(QLocale.English, QLocale.UnitedStates)) super().__init__() here = Path(__file__).parent splash = QtGui.QPixmap(str(here.parent.joinpath('splash.png'))) self.splash_sc = QtWidgets.QSplashScreen(splash, Qt.WindowStaysOnTopHint) self.ui = Ui_Form() self.ui.setupUi(parent) self.ui.Moveto_pb_bis_2.setVisible(False) self.parent = parent self.ui.title_label.setText(title) self.title = title self.ui.statusbar = QtWidgets.QStatusBar(parent) self.ui.StatusBarLayout.addWidget(self.ui.statusbar) self.ui.statusbar.setMaximumHeight(20) self.send_to_tcpip = False self.tcpclient_thread = None self.wait_time = 1000 self.ui.Ini_state_LED self.ui.Ini_state_LED.clickable = False self.ui.Ini_state_LED.set_as_false() self.ui.Move_Done_LED.clickable = False self.ui.Move_Done_LED.set_as_false() self.initialized_state = False self.ui.Current_position_sb.setReadOnly(False) self.move_done_bool = True # ###########IMPORTANT############################ self.controller = None # the hardware controller/set after initialization and to be used by other modules # ################################################ self.current_position = 0 self.target_position = 0 self.wait_position_flag = True self.ui.Current_position_sb.setValue(self.current_position) self.set_enabled_move_buttons(enable=False) self.ui.groupBox.hide() self.parent.resize(150, 200) # #Setting stages types self.stage_types = [mov['name'] for mov in DAQ_Move_Stage_type] self.ui.Stage_type_combo.clear() self.ui.Stage_type_combo.addItems(self.stage_types) # create main parameter tree self.ui.settings_tree = ParameterTree() self.ui.verticalLayout_2.addWidget(self.ui.settings_tree) self.ui.settings_tree.setMinimumWidth(300) self.settings = Parameter.create(name='Settings', type='group', children=self.params) self.ui.settings_tree.setParameters(self.settings, showTop=False) # connecting from tree self.settings.sigTreeStateChanged.connect( self.parameter_tree_changed ) # any changes on the settings will update accordingly the detector self.ui.settings_tree.setVisible(False) self.set_setting_tree() self.settings.child('main_settings', 'controller_ID').setValue(controller_ID) QtWidgets.QApplication.processEvents() # #Connecting buttons: self.ui.Stage_type_combo.currentIndexChanged.connect( self.set_setting_tree) self.ui.Stage_type_combo.currentIndexChanged.connect( self.stage_changed) self.ui.Quit_pb.clicked.connect(self.quit_fun) self.ui.IniStage_pb.clicked.connect(self.ini_stage_fun) self.update_status("Ready", wait_time=self.wait_time) self.ui.Move_Abs_pb.clicked.connect( lambda: self.move_Abs(self.ui.Abs_position_sb.value())) self.ui.Move_Rel_plus_pb.clicked.connect( lambda: self.move_Rel(self.ui.Rel_position_sb.value())) self.ui.Move_Rel_minus_pb.clicked.connect( lambda: self.move_Rel(-self.ui.Rel_position_sb.value())) self.ui.Find_Home_pb.clicked.connect(self.move_Home) self.ui.Get_position_pb.clicked.connect(self.get_position) self.ui.Stop_pb.clicked.connect(self.stop_Motion) self.ui.parameters_pb.clicked.connect(self.show_settings) self.ui.fine_tuning_pb.clicked.connect(self.show_fine_tuning) self.ui.Abs_position_sb.valueChanged.connect( self.ui.Abs_position_sb_bis.setValue) self.ui.Abs_position_sb_bis.valueChanged.connect( self.ui.Abs_position_sb.setValue) self.ui.Moveto_pb_bis.clicked.connect( lambda: self.move_Abs(self.ui.Abs_position_sb_bis.value())) # set managers options if preset is not None: for preset_dict in preset: # fo instance preset_dict=dict(object='Stage_type_combo',method='setCurrentIndex',value=1) if hasattr(self.ui, preset_dict['object']): obj = getattr(self.ui, preset_dict['object']) if hasattr(obj, preset_dict['method']): setattr(obj, preset_dict['method'], preset_dict['value']) QtWidgets.QApplication.processEvents() # initialize the controller if init=True if init: self.ui.IniStage_pb.click()
from pymodaq.daq_utils.plotting.qled import QLED from pymodaq.daq_utils.managers.preset_manager import PresetManager from pyqtgraph.dockarea import Dock from pymodaq.daq_utils.daq_utils import ThreadCommand, set_param_from_param, getLineInfo, set_logger, get_module_name, get_set_pid_path import importlib from simple_pid import PID import time import datetime from pymodaq.daq_viewer.daq_viewer_main import DAQ_Viewer from pymodaq.daq_move.daq_move_main import DAQ_Move import numpy as np from collections import OrderedDict from pymodaq.daq_utils.pid.pid_params import params logger = set_logger(get_module_name(__file__), __name__ == '__main__') class DAQ_PID(QObject): """ """ log_signal = pyqtSignal(str) #look for eventual model files command_pid = pyqtSignal(ThreadCommand) command_stage = pyqtSignal(ThreadCommand) move_done_signal = pyqtSignal(str, float) models = [] try: model_mod = importlib.import_module('pymodaq_pid_models') for ind_file, entry in enumerate(os.scandir(os.path.join(model_mod.__path__[0], 'models'))): if not entry.is_dir() and entry.name != '__init__.py':
try: #in a try statement for compilation on readthedocs server but if this fail, you cannot use the code from pymodaq.daq_utils import daq_utils as utils logger = utils.set_logger('pymodaq', True, True) except: print("Couldn't create the local folder to store logs , presets...")