lxt Assemblification

This commit is contained in:
2023-09-10 18:18:22 +02:00
parent 4815c71042
commit b619a83dda
3 changed files with 78 additions and 2 deletions
+12 -1
View File
@@ -2252,8 +2252,19 @@ class Laser_Xray_Timing(Assembly):
namespace.append_obj(
Laser_Xray_Timing,
lazy=True,
name="lxt",
name="lxt_01",
)
namespace.append_obj(
"StageLxtDelay",
las.delay_glob,
las.xlt,
lazy=True,
name="lxt",
direction=-1,
module_name="eco.loptics.bernina_laser",
)
##combined delaystage with phase shifter motion##
+65
View File
@@ -158,6 +158,71 @@ class FilterWheelAttenuator(Assembly):
self.wheel_2.home()
class StageLxtDelay(Assembly):
def __init__(self, fine_delay_adj, coarse_delay_adj, direction=1, name=None):
super().__init__(name=name)
self._append(fine_delay_adj, name="_fine_delay_adj", is_setting=True)
self._append(coarse_delay_adj, name="_coarse_delay_adj", is_setting=True)
self._append(AdjustableMemory, direction, name="_direction", is_setting=True)
self._append(
AdjustableFS,
f"/photonics/home/gac-bernina/eco/configuration/{name}_combined_delay_phase_shifter_threshold",
name="switch_threshold",
default_value=50e-12,
is_setting=True,
)
self._append(
AdjustableFS,
f"/photonics/home/gac-bernina/eco/configuration/{name}_conbined_fine_adj_offset",
name="offset_fine_adj",
default_value=0.0,
is_setting=True,
)
self._append(
AdjustableFS,
f"/photonics/home/gac-bernina/eco/configuration/{name}_combined_coarse_adj_offset",
name="offset_coarse_adj",
default_value=0.0,
is_setting=True,
)
self._append(
AdjustableVirtual,
[self._fine_delay_adj, self._coarse_delay_adj],
self._get_comb_delay,
self._set_comb_delay,
name="delay",
unit="s",
)
def _get_comb_delay(self, pd, ps):
ps_rel = ps - self.offset_coarse_adj()
pd_rel = pd - self.offset_fine_adj()
return (ps_rel + pd_rel) * self._direction.get_current_value()
def _set_comb_delay(self, delay):
if delay < abs(self.switch_threshold.get_current_value()):
### check to prevent slow phaseshifter corrections <50fs
if (
np.abs(
self._coarse_delay_adj.get_current_value()
- self.offset_coarse_adj.get_current_value()
)
> 50e-15
):
ps_pos = self.offset_coarse_adj.get_current_value()
else:
ps_pos = None
pd_pos = self.offset_fine_adj.get_current_value() + delay
else:
ps_pos = self.offset_coarse_adj.get_current_value() + delay
pd_pos = self.offset_fine_adj.get_current_value()
return (
self._direction.get_current_value() * pd_pos,
self._direction.get_current_value() * ps_pos,
)
class Stage_LXT_Delay(AdjustableVirtual):
def __init__(self, fine_delay_adj, coarse_delay_adj, direction=1, name=None):
self._fine_delay_adj = fine_delay_adj
+1 -1
View File
@@ -98,7 +98,7 @@ class Elog(Assembly):
for tag in tags:
msg.add_tag(tag)
self._log.send_logbook_message(msg)
return self._log.send_logbook_message(msg)
def screenshot(self, message="", window=False, desktop=False, delay=3, **kwargs):
filepath = self._screenshot.shoot()[0]