Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[features] # defines the plugin features contained into this plugin
instruments = true # true if plugin contains instrument classes (else false, notice the lowercase for toml files)
extensions = false # true if plugins contains dashboard extensions
extensions = true # true if plugins contains dashboard extensions
models = false # true if plugins contains models of the extensions (PID, optimizers, data mixer, sequencer, ...)
h5exporters = false # true if plugin contains custom h5 file exporters
scanners = false # true if plugin contains custom scan layout (daq_scan extensions)
Expand All @@ -18,6 +18,7 @@ dependencies = [
"pymodaq_data>=5.3.0",
"pymodaq_plugins_daqmx>=1.1,<5",
"pymodaq_plugins_andor",
"pillow",
]

authors = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from pymodaq.control_modules.move_utility_classes import DAQ_Move_base, comon_parameters_fun, main
from pymodaq.utils.daq_utils import ThreadCommand, getLineInfo # object used to send info back to the main thread
from pymodaq_utils.utils import ThreadCommand, getLineInfo # object used to send info back to the main thread
from easydict import EasyDict as edict # type of dict
import numpy as np
from pymodaq_plugins_daqmx.hardware.national_instruments.daqmx import (DAQmx, ClockSettings, AIChannel, AOChannel)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from pymodaq.control_modules.move_utility_classes import DAQ_Move_base, main, comon_parameters_fun # common set of parameters for all actuators
from pymodaq.utils.daq_utils import ThreadCommand, getLineInfo # object used to send info back to the main thread
from pymodaq_utils.utils import ThreadCommand, getLineInfo # object used to send info back to the main thread
from easydict import EasyDict as edict # type of dict
from pymodaq_plugins_moke.hardware.mock import MokeMockController

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from pymodaq.control_modules.move_utility_classes import DAQ_Move_base, comon_parameters_fun, main
from pymodaq.utils.daq_utils import ThreadCommand, getLineInfo # object used to send info back to the main thread
from pymodaq_utils.utils import ThreadCommand, getLineInfo # object used to send info back to the main thread
from easydict import EasyDict as edict # type of dict
import numpy as np
from pymodaq_plugins_daqmx.hardware.national_instruments.daqmx import DAQmx, ClockSettings, ChangeDetectionSettings, \
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import numpy as np
from easydict import EasyDict as edict
from pymodaq.utils.daq_utils import ThreadCommand, getLineInfo
from pymodaq_utils.utils import ThreadCommand, getLineInfo
from pymodaq.utils.data import DataFromPlugins
from pymodaq.utils.logger import set_logger, get_module_name
from pymodaq_utils.logger import set_logger, get_module_name
from pymodaq.control_modules.viewer_utility_classes import DAQ_Viewer_base, comon_parameters, main
from pymodaq_plugins_daqmx.hardware.national_instruments.daqmx import DAQmx, ClockSettings, AIChannel
from pymodaq_plugins_daqmx.hardware.national_instruments.daqmx import DAQmx, ClockSettings, AIChannel, DAQ_NIDAQ_source
from pymodaq_plugins_moke import config

logger = set_logger(get_module_name(__file__))
Expand All @@ -21,7 +21,8 @@ class DAQ_0DViewer_ReadCurrent(DAQ_Viewer_base):
params = comon_parameters+[
{'title': 'Resistance:', 'name': 'resistance', 'type': 'float', 'value': resistor, 'min': 0., 'suffix': 'Ohm'},
{'title': 'AI Channel:', 'name': 'ai_channel', 'type': 'list',
'values': DAQmx.get_NIDAQ_channels(source_type='Analog_Input'), 'value': f'{device_ai}/{channel_ai}'},
'limits': DAQmx.get_NIDAQ_channels(source_type=DAQ_NIDAQ_source.Analog_Input.name),
'value': f'{device_ai}/{channel_ai}'},
]
hardware_averaging = False
live_mode_available = False
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import numpy as np
from easydict import EasyDict as edict
from pymodaq.utils.daq_utils import ThreadCommand, getLineInfo
from pymodaq_utils.utils import ThreadCommand, getLineInfo
from pymodaq.utils.data import DataFromPlugins, Axis
from pymodaq.control_modules.viewer_utility_classes import DAQ_Viewer_base, comon_parameters, main

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from qtpy import QtWidgets, QtCore
from pymodaq.utils.daq_utils import ThreadCommand
from pymodaq_utils.utils import ThreadCommand
from pymodaq.utils.data import DataFromPlugins
from pymodaq.utils.logger import set_logger, get_module_name
from pymodaq_utils.logger import set_logger, get_module_name

from pymodaq_plugins_andor.daq_viewer_plugins.plugins_2D.daq_2Dviewer_AndorSCMOS import DAQ_2DViewer_AndorSCMOS, main
from time import perf_counter
Expand All @@ -20,7 +20,6 @@ class DAQ_2DViewer_MOKEGrabber(DAQ_2DViewer_AndorSCMOS):
params = DAQ_2DViewer_AndorSCMOS.params + \
[{'title': 'Do substraction:', 'name': 'do_sub', 'type': 'bool', 'value': False}]


def __init__(self, parent=None, params_state=None):

super().__init__(parent, params_state) # initialize base class with commom attributes and methods
Expand Down Expand Up @@ -179,4 +178,4 @@ def stop(self):


if __name__ == '__main__':
main(init=False)
main(__file__, init=False)
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from pymodaq.control_modules.viewer_utility_classes import DAQ_Viewer_base, main
from easydict import EasyDict as edict
from pymodaq.utils.daq_utils import ThreadCommand, getLineInfo
from pymodaq_utils.utils import ThreadCommand, getLineInfo
from pymodaq.utils.data import DataFromPlugins, Axis
from pymodaq.utils.math_utils import my_moment

from pymodaq.control_modules.viewer_utility_classes import comon_parameters
from pymodaq_plugins_moke.hardware.mock import MokeMockController

Expand Down
13 changes: 0 additions & 13 deletions src/pymodaq_plugins_moke/daq_viewer_plugins/plugins_ND/__init__.py

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,38 +1,54 @@
import sys
from pymodaq.utils.gui_utils import DockArea
from pymodaq.dashboard import DashBoard


from qtpy import QtWidgets, QtCore
from pathlib import Path
from pymodaq.utils.parameter import Parameter
from pymodaq.utils.gui_utils.custom_app import CustomApp
from pymodaq.utils.gui_utils.dock import Dock
from pymodaq.utils.gui_utils import layout
from pymodaq.utils import config as config_mod
from pymodaq.utils.daq_utils import ThreadCommand
from pymodaq.utils.logger import set_logger, get_module_name

from pymodaq_utils.utils import ThreadCommand
from pymodaq_utils.logger import set_logger, get_module_name
from pymodaq_utils.config import Config, ConfigError


from pymodaq_gui.parameter import Parameter
from pymodaq_gui.utils.dock import DockArea, Dock
from pymodaq_gui.utils import layout

from pymodaq.extensions.utils import CustomExt

from pymodaq_plugins_moke.hardware import LedControl, ManualActuation, StepsSequencer

from pymodaq.utils.messenger import messagebox
from pymodaq.utils.plotting.data_viewers.viewer1D import Viewer1D
from pymodaq_gui.plotting.data_viewers.viewer1D import Viewer1D

from pymodaq_plugins_moke import config

from pymodaq_plugins_moke.utils import Config as PluginConfig

logger = set_logger(get_module_name(__file__))

main_config = Config()
plugin_config = PluginConfig()


EXTENSION_NAME = 'MicroMOKE' # the name that will be displayed in the extension list in the
# dashboard
CLASS_NAME = 'MicroMOKE' # this should be the name of your class defined below


class MicroMOKE(CustomApp):
def __init__(self, dockarea: DockArea, dashboard: DashBoard):
super().__init__(dockarea, dashboard)
self.led_control = LedControl(dockarea)
class MicroMOKE(CustomExt):

params = []

def __init__(self, parent: DockArea, dashboard):
super().__init__(parent, dashboard)

self.led_control = LedControl(parent)

self.manual_actuation = ManualActuation(parent,
absolute_values=plugin_config('micro', 'actuation', 'absolute_current_values'),
relative_value=plugin_config('micro', 'actuation', 'relative_value'))

self.manual_actuation = ManualActuation(dockarea,
absolute_values=config('micro', 'actuation', 'absolute_current_values'),
relative_value=config('micro', 'actuation', 'relative_value'))
self.detector = self.modules_manager.get_mod_from_name('Camera', mod='det')
self.current_actuator = self.modules_manager.get_mod_from_name('Current', mod='act')
self.steps_sequencer = StepsSequencer(dockarea, self.current_actuator)
self.steps_sequencer = StepsSequencer(parent, self.current_actuator)
self.led_actuator = self.modules_manager.get_mod_from_name('LedDriver', mod='act')

self.scan_window = None
Expand Down Expand Up @@ -126,7 +142,8 @@ def setup_actions(self):
self.get_action('do_scan').setEnabled(False)

def show_config(self):
config_tree = config_mod.TreeFromToml(config=config)
from pymodaq_gui.utils.widgets.tree_toml import TreeFromToml
config_tree = TreeFromToml(plugin_config)
config_tree.show_dialog()

def connect_things(self):
Expand Down Expand Up @@ -232,40 +249,13 @@ def set_led_type(self, led_type=None):


def main():
from pymodaq.utils.daq_utils import get_set_preset_path
from pymodaq.utils.gui_utils import DockArea
from pathlib import Path
from pymodaq.dashboard import DashBoard

app = QtWidgets.QApplication(sys.argv)
win = QtWidgets.QMainWindow()
area = DockArea()
win.setCentralWidget(area)
win.resize(1000, 500)
win.setWindowTitle('PyMoDAQ Dashboard')

dashboard = DashBoard(area)
file = Path(get_set_preset_path()).joinpath("microMOKE.xml")
if not file.exists():
file = Path(get_set_preset_path()).joinpath("MokeMicro_Mock.xml")
if file.exists():
dashboard.set_preset_mode(file)
mm_area = DockArea()
mm_window = QtWidgets.QMainWindow()
mm_window.setCentralWidget(mm_area)
micromoke = MicroMOKE(mm_area, dashboard)
mm_window.show()
mm_window.setWindowTitle('MicroMOKE')
QtWidgets.QApplication.processEvents()



else:
messagebox(severity='warning', title=f"Impossible to load the DAQ_Scan Module",
text=f"The default file specified in the configuration file does not exists!\n"
f"{file}\n")
from pymodaq_gui.utils.utils import mkQApp
from pymodaq.utils.gui_utils.loader_utils import load_dashboard_with_preset

sys.exit(app.exec_())
app = mkQApp(EXTENSION_NAME)
preset_file_name = plugin_config('micro', f'preset_for_{CLASS_NAME.lower()}')
dashboard, extension, win = load_dashboard_with_preset(preset_file_name, EXTENSION_NAME)
app.exec()


if __name__ == '__main__':
Expand Down
7 changes: 3 additions & 4 deletions src/pymodaq_plugins_moke/hardware/led_control.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import sys

from pymodaq.utils.gui_utils.dock import Dock, DockArea
from qtpy import QtWidgets, QtCore, QtGui

from pymodaq.utils.parameter.pymodaq_ptypes import SliderSpinBox
from pymodaq.utils.gui_utils.widgets import QLED
from pymodaq_gui.utils.dock import Dock, DockArea
from pymodaq_gui.parameter.pymodaq_ptypes import SliderSpinBox
from pymodaq_gui.utils.widgets import QLED

from collections import OrderedDict
from pathlib import Path
Expand Down
9 changes: 6 additions & 3 deletions src/pymodaq_plugins_moke/hardware/manual_actuation.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
from pymodaq.utils.gui_utils.custom_app import CustomApp
from pymodaq.utils.gui_utils.dock import Dock, DockArea
from qtpy import QtWidgets, QtCore
from pymodaq.utils import gui_utils as gutils

from pymodaq_gui.utils.custom_app import CustomApp
from pymodaq_gui.utils.dock import Dock, DockArea


from pymodaq_gui import utils as gutils
from pymodaq.control_modules.move_utility_classes import MoveCommand
from pymodaq_plugins_moke import config

Expand Down
2 changes: 1 addition & 1 deletion src/pymodaq_plugins_moke/hardware/mock.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import numpy as np
from pymodaq.daq_utils.daq_utils import gauss2D
from pymodaq_utils.math_utils import gauss2D
from .koch import image_from_koch


Expand Down
14 changes: 6 additions & 8 deletions src/pymodaq_plugins_moke/hardware/steps_sequence.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
from typing import List, TYPE_CHECKING

import numpy as np
from pymodaq.utils.gui_utils.custom_app import CustomApp
from pymodaq.utils.gui_utils.dock import Dock, DockArea
from pymodaq.utils.managers.parameter_manager import ParameterManager, Parameter

from pymodaq_gui.utils.dock import Dock, DockArea
from pymodaq_gui.managers.parameter_manager import ParameterManager, Parameter

from qtpy import QtWidgets, QtCore, QtGui
from qtpy.QtWidgets import QWidget
from pymodaq.utils import daq_utils as utils
from pymodaq_utils import utils as utils

from pymodaq.utils.scanner.scanners._1d_scanners import Scan1DSparse
from pymodaq.utils.parameter import pymodaq_ptypes as ptypes
from pymodaq.utils.parameter import utils as putils
from pymodaq.utils.plotting.data_viewers.viewer1D import Viewer1D
from pymodaq_gui.plotting.data_viewers.viewer1D import Viewer1D
from pymodaq.utils.data import DataActuator
from pymodaq.control_modules.daq_move import DAQ_Move
from pymodaq.utils.messenger import dialog
from pymodaq_gui.messenger import dialog


class StepsSequencer(ParameterManager, QtCore.QObject):
Expand Down
1 change: 1 addition & 0 deletions src/pymodaq_plugins_moke/resources/config_template.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@


[micro]
preset_for_micromoke = "microMOKE"

[micro.current]
device_ao = 'cDAQ1Mod4'
Expand Down
2 changes: 1 addition & 1 deletion src/pymodaq_plugins_moke/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"""
from pathlib import Path

from pymodaq.utils.config import BaseConfig, USER
from pymodaq_utils.config import BaseConfig, USER


class Config(BaseConfig):
Expand Down
Loading