This commit is contained in:
gac-x06da
2025-01-29 13:13:21 +01:00
parent 22c46f8f8e
commit a455a490c6
4 changed files with 32 additions and 47 deletions
+19 -39
View File
@@ -114,28 +114,21 @@ class AerotechAbrMixin(CustomPrepare):
scanname = self.parent.scaninfo.scan_msg.info["scan_name"] scanname = self.parent.scaninfo.scan_msg.info["scan_name"]
if scanname in ("standardscan"): if scanname in ("standardscan"):
scan_start = scanargs["start"]
scan_range = scanargs["range"]
scan_move_time = scanargs["move_time"]
scan_ready_rate = scanargs.get("ready_rate", 500)
d["scan_command"] = AbrCmd.MEASURE_STANDARD d["scan_command"] = AbrCmd.MEASURE_STANDARD
d["var_1"] = scan_start d["var_1"] = scanargs["start"]
d["var_2"] = scan_range d["var_2"] = scanargs["range"]
d["var_3"] = scan_move_time d["var_3"] = scanargs["move_time"]
d["var_4"] = scan_ready_rate d["var_4"] = scanargs.get("ready_rate", 500)
d["var_5"] = 0 d["var_5"] = 0
d["var_6"] = 0 d["var_6"] = 0
d["var_7"] = 0 d["var_7"] = 0
d["var_8"] = 0 d["var_8"] = 0
d["var_9"] = 0 d["var_9"] = 0
if scanname in ("verticallinescan", "vlinescan"): if scanname in ("verticallinescan", "vlinescan"):
scan_exp_time = scanargs["exp_time"]
scan_range_y = scanargs["range"]
scan_steps_y = scanargs["steps"]
d["scan_command"] = AbrCmd.VERTICAL_LINE_SCAN d["scan_command"] = AbrCmd.VERTICAL_LINE_SCAN
d["var_1"] = scan_range_y / scan_steps_y d["var_1"] = scanargs["range"] / scanargs["steps"]
d["var_2"] = scan_steps_y d["var_2"] = scanargs["steps"]
d["var_3"] = scan_exp_time d["var_3"] = scanargs["exp_time"]
d["var_4"] = 0 d["var_4"] = 0
d["var_5"] = 0 d["var_5"] = 0
d["var_6"] = 0 d["var_6"] = 0
@@ -143,37 +136,23 @@ class AerotechAbrMixin(CustomPrepare):
d["var_8"] = 0 d["var_8"] = 0
d["var_9"] = 0 d["var_9"] = 0
if scanname in ("screeningscan"): if scanname in ("screeningscan"):
scan_start = scanargs["start"]
scan_range = scanargs["range"]
scan_stepnum_o = scanargs["steps"]
scan_exp_time = scanargs["exp_time"]
scan_oscrange = scanargs["oscrange"]
scan_delta = scanargs.get("delta", 0.5)
scan_stepsize_o = scan_range / scan_stepnum_o
d["scan_command"] = AbrCmd.SCREENING d["scan_command"] = AbrCmd.SCREENING
d["var_1"] = scan_start d["var_1"] = scanargs["start"]
d["var_2"] = scan_oscrange d["var_2"] = scanargs["oscrange"]
d["var_3"] = scan_exp_time d["var_3"] = scanargs["exp_time"]
d["var_4"] = scan_stepsize_o d["var_4"] = scanargs["range"] / scanargs["steps"]
d["var_5"] = scan_stepnum_o d["var_5"] = scanargs["steps"]
d["var_6"] = scan_delta d["var_6"] = scanargs.get("delta", 0.5)
d["var_7"] = 0 d["var_7"] = 0
d["var_8"] = 0 d["var_8"] = 0
d["var_9"] = 0 d["var_9"] = 0
if scanname in ("rasterscan", "rastersimplescan"): if scanname in ("rasterscan", "rastersimplescan"):
scan_exp_time = scanargs["exp_time"]
scan_range_x = scanargs["range_x"]
scan_range_y = scanargs["range_y"]
scan_stepnum_x = scanargs["steps_x"]
scan_stepnum_y = scanargs["steps_y"]
scan_stepsize_x = scan_range_x / scan_stepnum_x
scan_stepsize_y = scan_range_y / scan_stepnum_y
d["scan_command"] = AbrCmd.RASTER_SCAN_SIMPLE d["scan_command"] = AbrCmd.RASTER_SCAN_SIMPLE
d["var_1"] = scan_exp_time d["var_1"] = scanargs["exp_time"]
d["var_2"] = scan_stepsize_x d["var_2"] = scanargs["range_x"] / scanargs["steps_x"]
d["var_3"] = scan_stepsize_y d["var_3"] = scanargs["range_y"] / scanargs["steps_y"]
d["var_4"] = scan_stepnum_x d["var_4"] = scanargs["steps_x"]
d["var_5"] = scan_stepnum_y d["var_5"] = scanargs["steps_y"]
d["var_6"] = 0 d["var_6"] = 0
d["var_7"] = 0 d["var_7"] = 0
d["var_8"] = 0 d["var_8"] = 0
@@ -412,6 +391,7 @@ class AerotechAbrStage(BECDeviceBase):
@property @property
def axis_mode(self): def axis_mode(self):
"""Read axis mode"""
return self.axisAxesMode.get() return self.axisAxesMode.get()
# @property # @property
+1
View File
@@ -89,6 +89,7 @@ class A3200Axis(PVPositioner):
vmax = Component(Signal, kind=Kind.config) vmax = Component(Signal, kind=Kind.config)
offset = Component(EpicsSignal, "-OFF", put_complete=True, kind=Kind.config) offset = Component(EpicsSignal, "-OFF", put_complete=True, kind=Kind.config)
#pylint: disable=too-many-arguments
def __init__( def __init__(
self, self,
prefix="", prefix="",
+9 -8
View File
@@ -41,6 +41,7 @@ class SmarGonSignal(Signal):
#pylint: disable=protected-access #pylint: disable=protected-access
r = self.parent._go_n_put(f"{self.write_addr}?{self.addr.upper()}={value}") r = self.parent._go_n_put(f"{self.write_addr}?{self.addr.upper()}={value}")
#pylint: disable=attribute-defined-outside-init
old_value = self._readback old_value = self._readback
self._timestamp = timestamp self._timestamp = timestamp
self._readback = r[self.addr.upper()] self._readback = r[self.addr.upper()]
@@ -66,15 +67,14 @@ class SmarGonSignal(Signal):
if value > hil: if value > hil:
raise ValueError(f"Target {value} outside of limits {self.limits}") raise ValueError(f"Target {value} outside of limits {self.limits}")
def get(self, *args, **kwargs): def get(self, **kwargs):
#pylint: disable=protected-access #pylint: disable=protected-access
r = self.parent._go_n_get(self.write_addr) r = self.parent._go_n_get(self.write_addr)
# print(r) # print(r)
if isinstance(r, dict):
self._value = r[self.addr.upper()] #pylint: disable=attribute-defined-outside-init
else: self._value = r[self.addr.upper()] if isinstance(r, dict) else r
self._value = r return super().get(**kwargs)
return super().get(*args, **kwargs)
class SmarGonSignalRO(Signal): class SmarGonSignalRO(Signal):
@@ -93,7 +93,7 @@ class SmarGonSignalRO(Signal):
self._mon = Thread(target=self.poll, daemon=True) self._mon = Thread(target=self.poll, daemon=True)
self._mon.start() self._mon.start()
def get(self, *args, **kwargs): def get(self, **kwargs):
#pylint: disable=protected-access #pylint: disable=protected-access
r = self.parent._go_n_get(self.read_addr) r = self.parent._go_n_get(self.read_addr)
@@ -107,7 +107,7 @@ class SmarGonSignalRO(Signal):
""" Fooo""" """ Fooo"""
time.sleep(2) time.sleep(2)
while True: while True:
time.sleep(0.2) time.sleep(0.25)
try: try:
self.get() self.get()
except requests.ConnectTimeout as ex: except requests.ConnectTimeout as ex:
@@ -135,6 +135,7 @@ class SmarGonAxis(PVPositioner):
moving = 1 moving = 1
_tol = 0.001 _tol = 0.001
#pylint: disable=too-many-arguments
def __init__( def __init__(
self, self,
prefix="SCS", prefix="SCS",
+3
View File
@@ -51,6 +51,7 @@ class StdDaqPreviewMixin(CustomDetectorMixin):
self._mon.join(timeout=1) self._mon.join(timeout=1)
# So also disconnect the socket # So also disconnect the socket
try: try:
#pylint: disable=protected-access
self.parent._socket.disconnect(self.parent.url.get()) self.parent._socket.disconnect(self.parent.url.get())
except zmq.error.ZMQError: except zmq.error.ZMQError:
# Might be already closed # Might be already closed
@@ -72,6 +73,7 @@ class StdDaqPreviewMixin(CustomDetectorMixin):
break break
# pylint: disable=no-member # pylint: disable=no-member
#pylint: disable=protected-access
r = self.parent._socket.recv_multipart(flags=zmq.NOBLOCK) r = self.parent._socket.recv_multipart(flags=zmq.NOBLOCK)
# Length and throtling checks # Length and throtling checks
@@ -103,6 +105,7 @@ class StdDaqPreviewMixin(CustomDetectorMixin):
# self.parent.array_data.put(data, force=True) # self.parent.array_data.put(data, force=True)
self.parent.shaped_image.put(image, force=True) self.parent.shaped_image.put(image, force=True)
#pylint: disable=protected-access
self.parent._last_image = image self.parent._last_image = image
self.parent._run_subs(sub_type=self.parent.SUB_MONITOR, value=image) self.parent._run_subs(sub_type=self.parent.SUB_MONITOR, value=image)
t_last = t_curr t_last = t_curr