Skip to content

Commit bfb96b3

Browse files
committed
Type checking in Element and add get/readback in tuning_tools.Tune
1 parent 32c56ed commit bfb96b3

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

pyaml/common/element.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1+
from typing import TYPE_CHECKING
2+
13
from pydantic import BaseModel, ConfigDict
24

35
from .exception import PyAMLException
46

7+
if TYPE_CHECKING:
8+
from ..common.element_holder import ElementHolder
9+
510

611
def __pyaml_repr__(obj):
712
"""
@@ -39,7 +44,7 @@ class Element(object):
3944

4045
def __init__(self, name: str):
4146
self.__name: str = name
42-
self._peer = None # Peer: ControlSystem, Simulator
47+
self._peer: "ElementHolder" = None # Peer: ControlSystem, Simulator
4348

4449
def get_name(self):
4550
"""

pyaml/tuning_tools/tune.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def measure(self, callback: Callable | None = None):
5757
"""
5858
quads = self.quads() # Returns attached quad devices
5959
tunemat = np.zeros((len(quads), 2))
60-
initial_tune = self.__parent.get()
60+
initial_tune = self.__parent.readback()
6161
delta = self.__parent._cfg.delta # TODO: handle delta array
6262
aborted = False
6363

@@ -70,7 +70,7 @@ def measure(self, callback: Callable | None = None):
7070
aborted = True
7171
break
7272

73-
tune = self.__parent.get()
73+
tune = self.__parent.readback()
7474
dq = tune - initial_tune
7575
tunemat[idx] = dq / delta
7676

@@ -166,10 +166,17 @@ def __init__(self, cfg: ConfigModel):
166166
self._cfg = cfg
167167
self.__tm = None
168168
self.__tr: TuneResponse = None
169+
self.__setpoint = np.array([np.nan, np.nan])
169170

170171
def get(self):
171172
"""
172-
Return the betatron tune
173+
Return the betatron tune setpoint
174+
"""
175+
return self.__setpoint
176+
177+
def readback(self):
178+
"""
179+
Return the betatron tune measurement
173180
"""
174181
self.check_peer()
175182
if not self.__tm:
@@ -190,8 +197,9 @@ def set(self, tune: np.array, iter: int = 1, wait_time: float = 0.0):
190197
wait_time: float
191198
Time to wait in second between 2 iterations
192199
"""
200+
self.__setpoint = tune
193201
for _ in range(iter):
194-
diff_tune = tune - self.get()
202+
diff_tune = tune - self.readback()
195203
str = self.__tr.quads().strengths.get()
196204
str += self.__tr.correct(diff_tune)
197205
self.__tr.quads().strengths.set(str)

tests/test_tuning_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def test_tuning_tools():
2121
tune_adjust.response.save_json("tunemat.json")
2222
tune_adjust.response.load_json("tunemat.json")
2323
tune_adjust.set([0.17, 0.32], iter=2)
24-
tune = tune_adjust.get()
24+
tune = tune_adjust.readback()
2525
assert np.abs(tune[0] - 0.17) < 1e-5
2626
assert np.abs(tune[1] - 0.32) < 1e-5
2727

0 commit comments

Comments
 (0)