fix issue with alias_config removed at MLZ

rotation_z will be automatically assigned to one of a list
of aliases ('unique' entry in frappy_config) but will complain
when this is not unique.
This commit is contained in:
2023-05-19 16:34:58 +02:00
parent bc8ce5a56e
commit 1930c24b71
2 changed files with 12 additions and 2 deletions

View File

@ -31,7 +31,7 @@ import os
from os.path import expanduser
from nicos import config, session
from nicos.core import Override, Param, Moveable, status, POLLER, SIMULATION
from nicos.core import Override, Param, Moveable, status, POLLER, SIMULATION, DeviceAlias
from nicos.devices.secop.devices import SecNodeDevice
from nicos.core import Device, anytype, listof
from nicos.utils.comparestrings import compare
@ -108,7 +108,7 @@ class FrappyConfig(Device):
aliasnames = [aliasnames]
for aliasname in aliasnames:
aliasdev = session.devices.get(aliasname)
if aliasdev:
if isinstance(aliasdev, DeviceAlias):
result[aliasname] = aliasdev
return result
@ -143,6 +143,15 @@ class FrappyConfig(Device):
if isinstance(aliasnames, str):
aliasnames = [aliasnames]
aliascfg = info.get('targets', {})
unique = info.get('unique')
if unique:
aliases = [a for a in unique
if isinstance(session.devices.get(a), DeviceAlias)]
if aliases:
if len(aliases) > 1:
raise TypeError(f'do know to which of {aliases} {meaning} to assign to')
alias_config = session.alias_config.setdefault(aliases[0], [])
alias_config.extend(list(aliascfg.items()))
importance_list = sample_devices.get(meaning, [])
importance_list.extend([(nr, nam) for nam, nr in aliascfg.items() if nam in session.devices])
importance_list = sorted(importance_list, reverse=True)

View File

@ -34,6 +34,7 @@ devices = dict(
'targets': {'se_mf': 20},
},
rotation_z = {
'unique': ['a3', 'om'],
'alias': 'dom',
'targets': {'se_om': 20, 'se_stickrot': 19},
'envlist': False,