GUI: update simple panel to correctly send paramerters during automation and to intiailise vA
This commit is contained in:
@@ -4,7 +4,7 @@ from PySide6.QtCore import Slot, Qt, Signal
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QFrame, QPushButton, QSpacerItem, QSizePolicy
|
||||
|
||||
from aaredaqlib.logger_config import setup_logger
|
||||
from aaredaqlib.models import DAQStatusModel, SimpleScanParameters
|
||||
from aaredaqlib.models import DAQStatusModel, SimpleScanParameters, CrystalSize
|
||||
from aaredaqlib.rotation_scan import RotationScanRequest
|
||||
from aaregui.panels.rotation_data_collection import add_data_to_path
|
||||
from aaregui.widgets.number_line_edit import NumberLineEdit
|
||||
@@ -22,6 +22,7 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
|
||||
self.n_images = 1
|
||||
self.xtal_size_dose_rate_MGy_s = None
|
||||
self.xtal_size = CrystalSize(x=0,y=0,z=0)
|
||||
self.xtal_x = None
|
||||
self.xtal_y = None
|
||||
self.xtal_z = None
|
||||
@@ -34,6 +35,7 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
self._temperature = 100
|
||||
self.__omega = 0
|
||||
self._wilson_b = None
|
||||
self.flux_ph_s = None
|
||||
self.parameters = SimpleScanParameters()
|
||||
self._prev_params = SimpleScanParameters()
|
||||
|
||||
@@ -197,17 +199,18 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
self.visible_res_enter.update_value(v)
|
||||
self.set_visible_resolution(v)
|
||||
|
||||
|
||||
self._wilson_b = s.last_best_b_factor
|
||||
|
||||
if self._wilson_b is not None:
|
||||
self.wilson_b_label.setText(f"{self._wilson_b:.2f}")
|
||||
|
||||
xtal_size = s.crystal_size
|
||||
if xtal_size is not None:
|
||||
self.xtal_size = s.crystal_size
|
||||
if self.xtal_size is not None:
|
||||
# clamp to control limits and update field; this will also trigger recalculation
|
||||
self.xtal_x = xtal_size.x
|
||||
self.xtal_y = xtal_size.y
|
||||
self.xtal_z = xtal_size.z
|
||||
self.xtal_x = self.xtal_size.x
|
||||
self.xtal_y = self.xtal_size.y
|
||||
self.xtal_z = self.xtal_size.z
|
||||
self.xtal_x_label.setText(f"{self.xtal_x:.2f}")
|
||||
self.xtal_y_label.setText(f"{self.xtal_y:.2f}")
|
||||
self.xtal_z_label.setText(f"{self.xtal_z:.2f}")
|
||||
@@ -216,12 +219,12 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
self.beam_size_label.setText(
|
||||
f"<b>{s.geom.beam_size_mm.x * 1000.0}</b> x <b>{s.geom.beam_size_mm.y * 1000.0}</b>"
|
||||
)
|
||||
self.flux_ph_s = s.bl.flux_ph_s
|
||||
self.flux_label.setText(f"<b>{(s.bl.flux_ph_s / 1e9):.2f}</b>")
|
||||
if s.diffraction.wavelength_angstrom is None:
|
||||
self.wavelength_label.setText("<b>N/A</b>")
|
||||
else:
|
||||
self.wavelength_label.setText(f"<b>{s.diffraction.wavelength_angstrom:.3f}</b>")
|
||||
|
||||
self.update_calculated_labels()
|
||||
|
||||
@Slot(float)
|
||||
@@ -322,11 +325,24 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
start_omega_deg=self.start_angle_enter.value,
|
||||
incr_omega_deg=image_angle,
|
||||
steps=self.n_images,
|
||||
transmission=self.transmission
|
||||
transmission=self.transmission,
|
||||
last_best_b_factor = self._wilson_b,
|
||||
crystal_size = self.xtal_size,
|
||||
flux_ph_s = self.flux_ph_s,
|
||||
calculated_dose_rate_MGy_s = self.dose_rate_MGy_s,
|
||||
xtal_size_dose_rate_MGy_s = self.xtal_size_dose_rate_MGy_s,
|
||||
target_dose_MGy = self.target_dose_MGy,
|
||||
beam_size_x_um = beam_size_um_x,
|
||||
beam_size_y_um = beam_size_um_y,
|
||||
d_vis = d_vis,
|
||||
d_tar = d_tar
|
||||
)
|
||||
|
||||
#logger.debug("updated labels")
|
||||
self._prev_params = self.parameters
|
||||
if self._prev_params != self.parameters:
|
||||
self.parameters_changed.emit(self.parameters)
|
||||
logger.debug("emitted parameters")
|
||||
|
||||
@Slot()
|
||||
def run_measurement(self):
|
||||
|
||||
Reference in New Issue
Block a user