fixed stacklevel of warnings; added retry for reference undulator
This commit is contained in:
@ -37,13 +37,13 @@ class Undulators(Adjustable):
|
|||||||
n_und_ref = machine_n_und_ref
|
n_und_ref = machine_n_und_ref
|
||||||
|
|
||||||
if n_und_ref != machine_n_und_ref:
|
if n_und_ref != machine_n_und_ref:
|
||||||
log.warning(f"the chosen reference undulator ({n_und_ref}) is not the reference undulator currently used by the machine ({machine_n_und_ref})")
|
log.warning(f"the chosen reference undulator ({n_und_ref}) is not the reference undulator currently used by the machine ({machine_n_und_ref})", stacklevel=3)
|
||||||
|
|
||||||
|
|
||||||
n_unds = list(n_unds)
|
n_unds = list(n_unds)
|
||||||
|
|
||||||
if N_UND_CHIC in n_unds:
|
if N_UND_CHIC in n_unds:
|
||||||
log.warning(f"the CHIC ({N_UND_CHIC}) is in the list of active undulators: {n_unds}, and will be ignored/removed")
|
log.warning(f"the CHIC ({N_UND_CHIC}) is in the list of active undulators: {n_unds}, and will be ignored/removed", stacklevel=3)
|
||||||
n_unds.remove(N_UND_CHIC)
|
n_unds.remove(N_UND_CHIC)
|
||||||
|
|
||||||
if n_und_ref not in n_unds:
|
if n_und_ref not in n_unds:
|
||||||
@ -480,7 +480,15 @@ class Phases:
|
|||||||
|
|
||||||
|
|
||||||
def get_machine_n_und_ref():
|
def get_machine_n_und_ref():
|
||||||
res = PVEnumAdjustable("SATUN:REF-UND").get()
|
n_tries = 3
|
||||||
|
for i in range(n_tries):
|
||||||
|
res = PVEnumAdjustable("SATUN:REF-UND", internal=True).get()
|
||||||
|
if res is not None:
|
||||||
|
break
|
||||||
|
print(f"try {i+1}/{n_tries}: got None instead of reference undulator number")
|
||||||
|
sleep(0.1)
|
||||||
|
if res is None:
|
||||||
|
raise ValueError(f"got None instead of reference undulator number {n_tries} times")
|
||||||
if not res.startswith("SATUN"):
|
if not res.startswith("SATUN"):
|
||||||
return None
|
return None
|
||||||
n = len("SATUN")
|
n = len("SATUN")
|
||||||
|
Reference in New Issue
Block a user