DAQ/GUI: Add relative omega movement - to be tested
This commit is contained in:
+11
-3
@@ -198,9 +198,7 @@ class AareDAQ:
|
||||
def omega(self) -> float:
|
||||
return self.__devs.aerotech.omega
|
||||
|
||||
@omega.setter
|
||||
def omega(self, val: float):
|
||||
self.__cfg.set_busy(BeamlineStateEnum.SampleAlignment)
|
||||
def __omega(self, val: float):
|
||||
self.__saved_box = None
|
||||
if -2000 < val < 2000:
|
||||
try:
|
||||
@@ -215,6 +213,16 @@ class AareDAQ:
|
||||
logger.error("Omega has to be between -2000 and 2000 degrees")
|
||||
raise ValueError("Omega has to be between -2000 and 2000 degrees (for now)")
|
||||
|
||||
@omega.setter
|
||||
def omega(self, val: float):
|
||||
self.__cfg.set_busy(BeamlineStateEnum.SampleAlignment)
|
||||
self.__omega(val)
|
||||
|
||||
def omega_rel(self, val: float):
|
||||
self.__cfg.set_busy(BeamlineStateEnum.SampleAlignment)
|
||||
curr_omega = self.__devs.aerotech.omega
|
||||
self.__omega(curr_omega + val)
|
||||
|
||||
@property
|
||||
def zoom(self) -> float:
|
||||
return self.__devs.zoom
|
||||
|
||||
@@ -96,6 +96,12 @@ async def omega(val: float, token: str = Depends(oauth2_scheme)):
|
||||
daq.omega = val
|
||||
return "OK"
|
||||
|
||||
@app.put("/beamline/omega_rel")
|
||||
async def omega(val: float, token: str = Depends(oauth2_scheme)):
|
||||
logger.debug(f"Moving omega by {val}")
|
||||
auth.check_jwt_rw(cfg, auth.parse_token(token))
|
||||
daq.omega_rel(val)
|
||||
return "OK"
|
||||
|
||||
@app.put("/beamline/light")
|
||||
async def light(val: float, token: str = Depends(oauth2_scheme)):
|
||||
|
||||
@@ -229,6 +229,7 @@ class MainWindow(QMainWindow):
|
||||
self.raster.omega.connect(self.daq.set_omega)
|
||||
self.raster.smargon.connect(self.daq.move_smargon)
|
||||
|
||||
self.beamline.omega_panel.set_omega_rel.connect(self.daq.set_omega_rel)
|
||||
self.beamline.omega_panel.set_omega.connect(self.daq.set_omega)
|
||||
self.sample_camera.set_omega.connect(self.daq.set_omega)
|
||||
self.beamline.zoom_panel.zoom.connect(self.daq.zoom)
|
||||
|
||||
@@ -21,6 +21,7 @@ class OmegaEntryWidget(QWidget):
|
||||
|
||||
class OmegaPanel(QWidget):
|
||||
set_omega = Signal(float)
|
||||
set_omega_rel = Signal(float)
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
@@ -57,7 +58,7 @@ class OmegaPanel(QWidget):
|
||||
@Slot(dict)
|
||||
def omega_button_pressed(self, payload: dict):
|
||||
if "rel" in payload:
|
||||
self.set_omega.emit(self.__omega + payload["rel"])
|
||||
self.set_omega_rel.emit(payload["rel"])
|
||||
elif "abs" in payload:
|
||||
self.set_omega.emit(payload["abs"])
|
||||
|
||||
|
||||
@@ -186,6 +186,10 @@ class DAQWorker(QObject):
|
||||
def set_omega(self, f: float):
|
||||
self.generic_put(f"beamline/omega?val={f:.3f}")
|
||||
|
||||
@Slot(float)
|
||||
def set_omega_rel(self, f: float):
|
||||
self.generic_put(f"beamline/omega_rel?val={f:.3f}")
|
||||
|
||||
@Slot(float)
|
||||
def zoom(self, f: float):
|
||||
self.generic_put(f"beamline/zoom?val={f:.3f}")
|
||||
|
||||
Reference in New Issue
Block a user