GUI: Fluorescence improvements
This commit is contained in:
@@ -430,6 +430,7 @@ class BeamMarkCoeffModel(BaseModel):
|
||||
)
|
||||
|
||||
class FluorescenceSpectrumParameterModel(BaseModel):
|
||||
erase: bool = True
|
||||
acq_time_s: float
|
||||
transmission: Annotated[float, Field(ge=0,le=1)] | None = None
|
||||
|
||||
|
||||
+9
-14
@@ -1,21 +1,16 @@
|
||||
import copy
|
||||
import json
|
||||
import math
|
||||
import statistics
|
||||
import secrets
|
||||
import time
|
||||
from asyncio import sleep
|
||||
from datetime import datetime
|
||||
from math import ceil
|
||||
from typing import List, Tuple, Optional, Callable, Dict
|
||||
import secrets
|
||||
import os
|
||||
from typing import List, Tuple, Optional
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
import redis
|
||||
from scipy import ndimage
|
||||
from scipy.optimize import curve_fit
|
||||
|
||||
import aaredaqlib.face_detection as fd
|
||||
from aaredaq import workflows
|
||||
from aaredaq.aaredb import AareWrapper
|
||||
from aaredaq.autofocus import calculate_focus_measure
|
||||
@@ -26,16 +21,15 @@ from aaredaq.mlbox import MlBox
|
||||
from aaredaqlib.beamline import MXBeamline
|
||||
from aaredaqlib.coordinate import Coordinate, SmargonCoordinate
|
||||
from aaredaqlib.diffraction_geometry import DiffractionGeometry
|
||||
import aaredaqlib.face_detection as fd
|
||||
from aaredaqlib.logger_config import setup_logger
|
||||
from aaredaqlib.find_xtal import raster_centre_of_mass, create_quality_filtered_array, identify_crystal_raster, \
|
||||
get_result_list_from_com, get_best_b_factor, get_best_res, get_xtal_size
|
||||
from aaredaqlib.logger_config import setup_logger
|
||||
from aaredaqlib.models import (
|
||||
SampleShortInfo,
|
||||
PuckLoadedInfo,
|
||||
SampleShortInfoList,
|
||||
DAQStatusModel, BeamlineStatus, SessionStatus, SampleCameraSettings, AutofocusSettings, BoundingBoxModel,
|
||||
ZoomModeEnum, CrystalSize, SimpleScanParameters, MLBoxModel, FluorescenceSpectrumParameterModel,
|
||||
DAQStatusModel, BeamlineStatus, SessionStatus, SampleCameraSettings, AutofocusSettings, ZoomModeEnum, CrystalSize,
|
||||
SimpleScanParameters, MLBoxModel, FluorescenceSpectrumParameterModel,
|
||||
FluorescenceSpectrumOutputModel)
|
||||
from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid, CompletedRasterGridElem
|
||||
from aaredaqlib.rotation_scan import RotationScanRequest, CompletedRotationScan
|
||||
@@ -1533,11 +1527,12 @@ class AareDAQ:
|
||||
if fm.transmission is not None:
|
||||
self.__devs.transmission.set(fm.transmission, wait=True)
|
||||
|
||||
self.__devs.fluorimeter.start_acquisition(erase=True)
|
||||
self.__devs.fluorimeter.start_acquisition(erase=fm.erase)
|
||||
self.__devs.aerotech.set_shutter(1)
|
||||
sleep(fm.acq_time_s)
|
||||
time.sleep(fm.acq_time_s)
|
||||
self.__devs.aerotech.set_shutter(0)
|
||||
self.__devs.fluorimeter.stop_acquisition()
|
||||
time.sleep(0.2)
|
||||
spectrum = self.__devs.fluorimeter.get_current_data()
|
||||
|
||||
offset = self.__devs.fluorimeter.offset
|
||||
|
||||
@@ -36,7 +36,7 @@ from aaregui.widgets.camera_image import SampleCameraImageLabel
|
||||
from aaregui.widgets.no_wheel_scroll_area import NoWheelScrollArea
|
||||
from aaregui.widgets.status_bar import StatusBar
|
||||
from aaregui.widgets.video_image import VideoGraphicsView
|
||||
from aaregui.panels.fluoresence_panel import FluorescencePanel
|
||||
from aaregui.panels.fluorescence_panel import FluorescencePanel
|
||||
|
||||
logger = setup_logger("aareGUI")
|
||||
|
||||
@@ -358,6 +358,7 @@ class MainWindow(QMainWindow):
|
||||
|
||||
self.data_collection.fluo.fluo_scan.connect(self.daq.fluorimeter_spectrum)
|
||||
self.daq.fluorimeter_spectrum_update.connect(self.fluor_panel.update_plot)
|
||||
self.daq.fluorimeter_spectrum_update.connect(lambda: self.fluor_panel_dock.setVisible(True))
|
||||
|
||||
def create_menu_bar(self):
|
||||
"""Create a menu bar with File->Quit and Help->About."""
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from PySide6.QtCore import Signal, Slot
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QPushButton
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QPushButton, QCheckBox
|
||||
|
||||
from aaredaqlib.models import FluorescenceSpectrumParameterModel
|
||||
from aaregui.widgets.number_line_edit import NumberLineEdit
|
||||
@@ -24,13 +24,18 @@ class FluorescenceDataCollectionPanel(QWidget):
|
||||
lay.addWidget(self.exposure, 1, 1)
|
||||
lay.addWidget(QLabel("s", self), 1, 2)
|
||||
|
||||
# Accumulate checkbox (reverse of erase)
|
||||
self.accumulate_cb = QCheckBox("Accumulate", self) # accumulate=True => erase=False
|
||||
self.accumulate_cb.setChecked(False)
|
||||
lay.addWidget(self.accumulate_cb, 2, 0, 1, 3)
|
||||
|
||||
# Add vertical stretch
|
||||
lay.setRowStretch(2, 1)
|
||||
lay.setRowStretch(3, 1)
|
||||
|
||||
# Run button
|
||||
self.run_btn = QPushButton("Run fluorescence", self)
|
||||
self.run_btn.setStyleSheet("color: rgb(78, 154, 6);")
|
||||
lay.addWidget(self.run_btn, 3, 0, 1, 3)
|
||||
lay.addWidget(self.run_btn, 4, 0, 1, 3)
|
||||
|
||||
self.run_btn.clicked.connect(self._emit_params)
|
||||
|
||||
@@ -38,4 +43,5 @@ class FluorescenceDataCollectionPanel(QWidget):
|
||||
def _emit_params(self):
|
||||
t = float(self.transmission.value)
|
||||
exp = float(self.exposure.value)
|
||||
self.fluo_scan.emit(FluorescenceSpectrumParameterModel(acq_time_s=exp, transmission=t))
|
||||
erase = not self.accumulate_cb.isChecked()
|
||||
self.fluo_scan.emit(FluorescenceSpectrumParameterModel(acq_time_s=exp, transmission=t, erase=erase))
|
||||
|
||||
+1
@@ -13,6 +13,7 @@ class FluorescencePanel(QWidget):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
self.setMinimumWidth(300)
|
||||
grid = QGridLayout(self)
|
||||
|
||||
# Replace Matplotlib with Qt Charts
|
||||
Reference in New Issue
Block a user