/
zinskiy09
/
Align3.0
Обзор
Документация
Войти
/
zinskiy09
/
Align3.0
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Commands/utils.py
70 строк
3 KB
Sasha
add project files
17 сен 2025, 06:48
17 сен 2025, 06:48
323d13e
Код
Авторство
О чём код?
from tango import DeviceProxy from Configurator import Config config = Config.Configuration() ALIGNS_NAMES = config.get_servers('Alignments') def set_tango_properties(device_name, properties_dict): """ Устанавливает значения свойств Tango-устройства. Args: device_name (str): Имя устройства properties_dict (Dict[str, Any]): Словарь {имя_свойства: значение} Returns: bool: True если успешно, False если ошибка """ try: device_name = ALIGNS_NAMES[device_name][0] # Создаем прокси устройства device = DeviceProxy(device_name) # Устанавливаем ВСЕ свойства из словаря сразу device.put_property(properties_dict) return True except Exception as e: print(f"Ошибка при установке свойств устройства {device_name}: {e}") return False def get_tango_properties(device_name, property_names): """ Получает значения свойств Tango-устройства. Args: device_name (str): Имя устройства (например, 'sys/tg_test/1') property_names (List[str]): Список имен свойств Returns: Dict[str, Any]: Словарь {имя_свойства: значение} """ try: # Создаем прокси устройства device_name = ALIGNS_NAMES[device_name][0] device = DeviceProxy(device_name) # Получаем свойства properties = device.get_property(property_names) # Обрабатываем результаты result = {} for prop_name in property_names: if prop_name in properties: value = properties[prop_name] # Если значение - список из одного элемента, берем этот элемент if isinstance(value, list) and len(value) == 1: result[prop_name] = value[0] else: result[prop_name] = value else: result[prop_name] = None return result except Exception as e: print(f"Ошибка при получении свойств устройства {device_name}: {e}") # Возвращаем словарь с None для всех запрошенных свойств return {prop_name: None for prop_name in property_names}