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
4 changes: 2 additions & 2 deletions .github/workflows/Test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ jobs:
call_workflow:
uses: ./.github/workflows/Testbase.yml
with:
python: '3.11'
qt5: 'pyqt6'
python: '3.12'
qt5: 'pyqt6'
2 changes: 1 addition & 1 deletion json-examples/instrument.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ def _stop_move(self):

# === transition actions ===
def _on_signin(self, trame : LECOTrame):
self._communicator.set_fullname(f'{trame.sender.split('.')[0]}.{self._name}')
self._communicator.set_fullname(f"{trame.sender.split('.')[0]}.{self._name}")

def _on_signout(self, trame : LECOTrame):
pass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@
from qtpy import QtWidgets
import numpy as np
from pymodaq.control_modules.viewer_utility_classes import main
from pymodaq_utils.logger import set_logger, get_module_name

from pymodaq_gui.plotting.items.roi import RoiInfo
from pymodaq_data.data import DataToExport, DataWithAxes, Axis
from pymodaq_plugins_mockexamples.daq_viewer_plugins.plugins_2D.daq_2Dviewer_MockCamera import DAQ_2DViewer_MockCamera

logger = set_logger(get_module_name(__file__))


class DAQ_2DViewer_RoiStuff(DAQ_2DViewer_MockCamera):

Expand Down Expand Up @@ -41,7 +44,22 @@ def roi_select(self, roi_info: RoiInfo, ind_viewer: int = 0):
self.roi_select_viewer_index = ind_viewer

def crosshair(self, crosshair_info: Iterable[float], ind_viewer: int = 0):
print(crosshair_info)
logger.info(f'Crosshair position in viewer {ind_viewer}: {crosshair_info}')

def crop(self, data: DataToExport) -> DataToExport:
"""Crop all the data to the ROI select, if 'Use Roi' is checked and a selection has been made

The RoiInfo is given in the units of the viewer axes (here scaled), so the value-based slicer vsig is used
"""
if not self.settings['use_roi'] or self.roi_select_info is None:
return data
slices = self.roi_select_info.to_slices(False)
dte = DataToExport('cropped')
for dwa in data:
dwa_sliced = dwa.vsig[slices]
dwa_sliced.add_extra_attribute(sliced=True)
dte.append(dwa_sliced)
return dte

def grab_data(self, Naverage=1, **kwargs):
"""Start a grab from the detector
Expand All @@ -54,42 +72,18 @@ def grab_data(self, Naverage=1, **kwargs):
kwargs: dict
others optionals arguments
"""

if 'live' in kwargs:
if kwargs['live']:
self.live = True
# self.live = False # don't want to use that for the moment
if kwargs.get('live', False):
self.live = True

if self.live:
while self.live:
data: DataToExport = self.average_data(Naverage) # hardware averaging
data = self.average_data(Naverage) # hardware averaging
QThread.msleep(kwargs.get('wait_time', 100))
if self.settings['use_roi']:
dte = DataToExport('cropped')
for dwa in data.data:
dwa_sliced = dwa.vsig[self.roi_select_info.to_slices(False)]
dwa.add_extra_attribute(sliced=True)
dte.data.append(dwa_sliced)
self.dte_signal.emit(data)
self.dte_signal.emit(self.crop(data))
QtWidgets.QApplication.processEvents()
else:
data = self.average_data(Naverage) # hardware averaging
QThread.msleep(000)

self.live = False # don't want to use that for the moment

data: DataToExport = self.average_data(Naverage) # hardware averaging
QThread.msleep(kwargs.get('wait_time', 100))
if self.settings['use_roi']:
self.roi_select_info.center_origin()
dte = DataToExport('cropped')
for dwa in data.data:
dwa_sliced = dwa.vsig[self.roi_select_info.to_slices(False)]
dwa.add_extra_attribute(sliced=True)
dte.data.append(dwa_sliced)
else:
dte = data
self.dte_signal.emit(dte)
self.dte_signal.emit(self.crop(data))


if __name__ == '__main__':
Expand Down
Loading