def make_tfs_sim(tfs, prefix="SIM:", name="tfs_sim"):
stage = Stage(name="stage")
stage.set(tfs.translation.position).wait()
stage.high_limit = tfs.translation.high_limit
stage.low_limit = tfs.translation.low_limit
def _translation(self):
return stage
SimTransfocator.translation = property(_translation)
tfs_sim = SimTransfocator(prefix=prefix, name=name)
stage.attach(tfs_sim)
for i in range(2, 10):
real, sim = getattr(tfs, f"tfs_0{i}"), getattr(tfs_sim, f"tfs_0{i}")
sim._sig_z.set(float(real.z)).wait()
sim._sig_radius.set(float(real.radius)).wait()
real, sim = getattr(tfs, "tfs_10"), getattr(tfs_sim, "tfs_10")
sim._sig_z.set(float(real.z)).wait()
sim._sig_radius.set(float(real.radius)).wait()
for nm in ("prefocus_bot", "prefocus_mid", "prefocus_top"):
real, sim = getattr(tfs, nm), getattr(tfs_sim, nm)
sim._sig_z.set(float(real.z)).wait()
sim._sig_radius.set(float(real.radius)).wait()
return tfs_sim