extract motor positions to yaml file
All checks were successful
CI for pxii_bec / test (push) Successful in 31s

This commit is contained in:
x10sa
2026-01-28 09:50:56 +01:00
parent 7b8f097c77
commit 22ed9b6fad
2 changed files with 47 additions and 8 deletions

View File

@@ -2,6 +2,7 @@
from dataclasses import dataclass
import numpy as np
import yaml
@dataclass(frozen=True)
@@ -240,13 +241,13 @@ class GroupTarget:
@dataclass(frozen=True)
class SE:
"""Define settings for scintillator, collimator, i1"""
scin = Target(38.6, 20.0, 0.1, dev.scin_y, lambda: dev.scin_y.read()['scin_y']['value'])
i1 = Target(44.0, 20.0, 0.2, dev.scin_y, lambda: dev.scin_y.read()['scin_y']['value'])
colly = Target(41.5, 20.0, 0.05, dev.coll_y, lambda: dev.coll_y.read()['coll_y']['value'])
bsy = Target(0.6, -0.4, 0.05, dev.bs_y, lambda: dev.bs_y.read()['bs_y']['value'])
bsx = Target(2.0, 2.0, 0.05, dev.bs_x, lambda: dev.bs_x.read()['bs_x']['value'])
blpos = Target(1, 0, 0, dev.blight_pos, lambda: dev.blight_pos.read()['blight_pos']['value'])
bspos = Target(1, 0, 0, dev.bs_pos, lambda: dev.bs_pos.read()['bs_pos']['value'])
scin = Target(0.0, 0.0, 0.1, dev.scin_y, lambda: dev.scin_y.read()['scin_y']['value'])
i1 = Target(0.0, 0.0, 0.2, dev.scin_y, lambda: dev.scin_y.read()['scin_y']['value'])
colly = Target(0.0, 0.0, 0.05, dev.coll_y, lambda: dev.coll_y.read()['coll_y']['value'])
bsy = Target(0.0, 0, 0.05, dev.bs_y, lambda: dev.bs_y.read()['bs_y']['value'])
bsx = Target(0.0, 0.0, 0.05, dev.bs_x, lambda: dev.bs_x.read()['bs_x']['value'])
blpos = Target(0.0, 0.0, 0.0, dev.blight_pos, lambda: dev.blight_pos.read()['blight_pos']['value'])
bspos = Target(0.0, 0.0, 0.0, dev.bs_pos, lambda: dev.bs_pos.read()['bs_pos']['value'])
# cryopos = Target(1, 0, 0, dev.cryo_pos, lambda: dev.cryo_pos.read()['cryo_pos']['value'])
# xrfpos = Target(1, 0, 0, dev.xrf_pos, lambda: dev.xrf_pos.read()['xrf_pos']['value'])
# coll = GroupTarget(
@@ -257,4 +258,15 @@ class SE:
# x = Target(2.65, 2.65, 0.05, dev.bs_x, lambda: dev.bs_x.read()['bs_x']['value']),
# y = Target(0.1, 0.1, 0.05, dev.bs_y, lambda: dev.bs_y.read()['bs_y']['value'])
# )
@classmethod
def load_positions(cls, filename: str):
with open(filename) as f:
data = yaml.safe_load(f)
for name, pos in data.items():
if not hasattr(cls, name):
raise KeyError(f"Unknown motor '{name}' in {filename}")
target = getattr(cls, name)
target.inpos = pos["in"]
target.outpos = pos["out"]

View File

@@ -0,0 +1,27 @@
scin:
in: 38.62
out: 20.0
i1:
in: 44.0
out: 20.0
colly:
in: 41.5
out: 20.0
bsy:
in: 0.1
out: -0.9
bsx:
in: 2.45
out: 2.45
blpos:
in: 1
out: 0
bspos:
in: 1
out: 0