fix: user values now should persist between samples, only reset to default on start up. #100
@@ -34,10 +34,12 @@ class RasterDataCollectionPanel(ScanSettingsPanel):
|
||||
self,
|
||||
raster_mgr: RasterGridManager,
|
||||
diffraction: DiffractionGeometry,
|
||||
default_transmission: float = 1.0,
|
||||
parent=None,
|
||||
):
|
||||
super().__init__(diffraction, raster_mgr.active_grid.dtz, default_transmission, parent)
|
||||
super().__init__(diffraction=diffraction,
|
||||
default_dtz=raster_mgr.active_grid.dtz,
|
||||
default_transmission=raster_mgr.active_grid.transmission,
|
||||
parent=parent)
|
||||
|
||||
self._previous_sample_was_none_raster = True
|
||||
|
||||
@@ -152,7 +154,7 @@ class RasterDataCollectionPanel(ScanSettingsPanel):
|
||||
self.auto_button.setStyleSheet("color: rgb(78, 154, 6);")
|
||||
self.auto_button.clicked.connect(self._on_evaluate_auto_clicked)
|
||||
self._layout.addWidget(self.auto_button, 13, 0, 1, 5)
|
||||
|
||||
self._reset_to_defaults()
|
||||
self.update_grid_scan_size()
|
||||
|
||||
@Slot(float)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from pathlib import Path
|
||||
|
||||
from aarecommon.config.beamline import cfg_get
|
||||
from aarecommon.config.logger import setup_logger
|
||||
from aarecommon.math.diffraction_geometry import DiffractionGeometry
|
||||
from aarecommon.models.models import BeamlineStateEnum, DAQStatusModel
|
||||
@@ -38,14 +39,13 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
super().__init__(
|
||||
parent=parent,
|
||||
diffraction=diffraction,
|
||||
default_dtz=default_dtz,
|
||||
default_transmission=default_transmission,
|
||||
default_dtz=cfg_get("daq.data_collection_settings.default_rotation_settings.dtz", default_dtz),
|
||||
default_transmission=cfg_get("daq.data_collection_settings.default_rotation_settings.transmission", default_transmission),
|
||||
)
|
||||
|
||||
self.__beamline_state = None
|
||||
self.__curr_pgroup = "p11206"
|
||||
self._filename = ""
|
||||
self._previous_sample_was_none_rotation = True
|
||||
|
||||
self.__omega = 0
|
||||
self.__dose_mgy = 0
|
||||
@@ -71,7 +71,8 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
self._layout.addWidget(QLabel("°", parent=self), 5, 4)
|
||||
|
||||
self._layout.addWidget(QLabel("Image time", parent=self), 6, 0)
|
||||
self.screening_image_time_enter = NumberLineEdit(0.0005, 10.0, 0.1, decimals=4, parent=self)
|
||||
default_screening_exp_time = cfg_get("daq.data_collection_settings.default_screening_settings.exp_time_s", 0.1)
|
||||
self.screening_image_time_enter = NumberLineEdit(0.0005, 10.0, default_screening_exp_time, decimals=4, parent=self)
|
||||
self._layout.addWidget(self.screening_image_time_enter, 6, 1, 1, 3)
|
||||
self._layout.addWidget(QLabel("s", parent=self), 6, 4)
|
||||
|
||||
@@ -95,20 +96,24 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
)
|
||||
|
||||
self._layout.addWidget(QLabel("Total angle", parent=self), 10, 0)
|
||||
self.total_angle = DbOverrideLineEdit(0, 9999.0, default=360.0, decimals=3, parent=self)
|
||||
default_steps = cfg_get("daq.data_collection_settings.default_rotation_settings.steps", 1800)
|
||||
default_increment_omega = cfg_get("daq.data_collection_settings.default_rotation_settings.increment_omega_deg", 0.2)
|
||||
default_total_angle = default_steps*default_increment_omega
|
||||
self.total_angle = DbOverrideLineEdit(0, 9999.0, default=default_total_angle, decimals=3, parent=self)
|
||||
self._layout.addWidget(self.total_angle, 10, 1, 1, 3)
|
||||
self._layout.addWidget(QLabel("°", parent=self), 10, 4)
|
||||
self._register_override_field(self.total_angle)
|
||||
|
||||
self._layout.addWidget(QLabel("Image angle", parent=self), 11, 0)
|
||||
self.image_angle = DbOverrideLineEdit(0, 10.0, default=0.2, decimals=3, parent=self)
|
||||
self.image_angle = DbOverrideLineEdit(0, 10.0, default=default_increment_omega, decimals=3, parent=self)
|
||||
self._layout.addWidget(self.image_angle, 11, 1, 1, 3)
|
||||
self._layout.addWidget(QLabel("°", parent=self), 11, 4)
|
||||
self._register_override_field(self.image_angle)
|
||||
# TODO add protection on X10SA to prevent too short exposure time/ too high detector rep rate
|
||||
self._layout.addWidget(QLabel("Image time", parent=self), 12, 0)
|
||||
default_image_exp_time = cfg_get("daq.data_collection_settings.default_rotation_settings.exp_time_s", 0.01)
|
||||
self.image_time_enter = DbOverrideLineEdit(
|
||||
0.0005, 10.0, default=0.01, decimals=4, parent=self
|
||||
0.0005, 10.0, default=default_image_exp_time, decimals=4, parent=self
|
||||
)
|
||||
self._layout.addWidget(self.image_time_enter, 12, 1, 1, 3)
|
||||
self._layout.addWidget(QLabel("s", parent=self), 12, 4)
|
||||
@@ -139,7 +144,8 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
self.measurement_button.setStyleSheet("color: rgb(78, 154, 6);")
|
||||
self.measurement_button.clicked.connect(self.run_measurement)
|
||||
self._layout.addWidget(self.measurement_button, 16, 0, 1, 6)
|
||||
|
||||
self._reset_to_defaults()
|
||||
|
||||
@Slot()
|
||||
def run_screening(self):
|
||||
if self.__beamline_state != BeamlineStateEnum.SampleAlignment:
|
||||
@@ -262,20 +268,6 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
else:
|
||||
w.setReadOnly(not can_edit)
|
||||
|
||||
if s.sample is None and not self._previous_sample_was_none_rotation:
|
||||
# The DB-sourced fields (total_angle, image_angle, image_time_enter)
|
||||
# are reset by the base panel (_reset_to_defaults); only reset the
|
||||
# screening/start widgets that are not part of the source toggle.
|
||||
for w in (
|
||||
self.start_angle,
|
||||
self.screening_image_angle,
|
||||
self.screening_image_time_enter,
|
||||
):
|
||||
w.reset_to_default()
|
||||
self._previous_sample_was_none_rotation = True
|
||||
elif s.sample is not None:
|
||||
self._previous_sample_was_none_rotation = False
|
||||
|
||||
self.calculate_measurement_time()
|
||||
if s.session.current_pgroup:
|
||||
self.__curr_pgroup = s.session.current_pgroup
|
||||
|
||||
@@ -108,6 +108,8 @@ class ScanSettingsPanel(QWidget):
|
||||
self.reload_params_button.clicked.connect(self.reload_parameters)
|
||||
self.reload_params_button.setVisible(False) # Child classes should make it visible
|
||||
|
||||
self._reset_to_defaults()
|
||||
|
||||
# -- source toggle -----------------------------------------------------
|
||||
def _build_source_toggle(self) -> QWidget:
|
||||
container = QWidget(self)
|
||||
@@ -194,7 +196,7 @@ class ScanSettingsPanel(QWidget):
|
||||
else:
|
||||
if not self._previous_sample_was_none:
|
||||
logger.info("Sample cleared, resetting parameters to defaults")
|
||||
self._reset_to_defaults()
|
||||
#self._reset_to_defaults()
|
||||
self._previous_sample_was_none = True # Mark that sample is now None
|
||||
|
||||
self._sample = None
|
||||
|
||||
@@ -3,7 +3,7 @@ from enum import Enum
|
||||
from typing import List, Tuple
|
||||
|
||||
import numpy as np
|
||||
from aarecommon.config.beamline import get_jfjoch_url, mx_beamline
|
||||
from aarecommon.config.beamline import get_jfjoch_url, mx_beamline, cfg_get
|
||||
from aarecommon.config.logger import setup_logger
|
||||
from aarecommon.math.coordinate import Coordinate, SmargonCoordinate
|
||||
from aarecommon.math.find_xtal import compute_crystal_score_array
|
||||
@@ -140,9 +140,9 @@ class RasterGridManager(QObject):
|
||||
smargon_top_left=self.__geom.smargon,
|
||||
grid_size_mm=Coordinate(x=0.8 * self.__beam_size_mm.x, y=0.8 * self.__beam_size_mm.y),
|
||||
omega_deg=self.__geom.omega_deg,
|
||||
exp_time_s=0.02,
|
||||
transmission=1.0,
|
||||
dtz=200.0,
|
||||
exp_time_s=cfg_get("daq.data_collection_settings.default_raster_settings.exp_time_s", 0.01),
|
||||
transmission=cfg_get("daq.data_collection_settings.default_raster_settings.transmission", 1.0),
|
||||
dtz=cfg_get("daq.data_collection_settings.default_raster_settings.dtz", 200.0),
|
||||
)
|
||||
self.__completed_grids: List[CompletedRasterGridElem] = []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user