Отчет научного сотрудника лаборатории информатики
Шергина В.С. за 2024г.
10 декабря 2024 г.
Управляющая машина Цейсс-1000 ztcs была уже очень старая. С момента включения и установки одной из начальных версий ОС Fedora (32-х разрядной) в 2008-м году прошло 16 лет. А с начала штатной эксплуатации системы управления Цейсс-1000 — более 10 лет. Старая ОС уже очень давно не позволяла обновлять приложения, что, например, отражалось на возможностях Web-интерферфейсов управления. Было принято решение о замене машины с установкой новой 64-х разрядной ОС и адаптацией всего наработанного за эти годы ПО под эту новую платформу.
Аппаратной основой систем управления как Цейсса так и БТА является CAN-шина. Для работы с ней использовалась старая PCI-ная карта с уникальным, но давно уже не поддерживаемым CAN-драйвером. Сейчас в современных компьютерах уже нет PCI-шины (только PCI Express), а в современных ядрах Linux появилась штатная сетевая система CAN-socket с драйверами под большой спектр CAN-интерфейсов. Соответственно главной проблемой было придумать и реализовать новый аппаратно-программный вариант управления по CAN-шине.
Сейчас купить современные CAN-интерфейсы очень трудно и дорого. Мной был предложен дешёвый вариант: попробовать использовать старую Adlink PCI-7841 через переходник PCI Express ↔ PCI. А в ядре ОС догенерить разработанный в ИЯФ СО РАН драйвер plx_pci для нескольких CAN-карт (на основе чипа SJA1000) включая и эту.
Группа Комарова реализовала предложенный аппаратный вариант. Дальнейшая работа выполнялась мной в лабораторных условиях.
Установлена ОС AlmaLinux9. Найден и добавлен в development ядра раздел текстов драйверов карт с SJA1000, сгенерирован и добавлен в ядро модуль plx_pci. Установлен пакет тестирования can-utils для системы CAN-socket. Передача/прием пакетов проверена через замыкатель между двумя CAN-разъёмами карты.
Разработана новая библиотека can_io в точности повторяющая все вызовы функций и структуры данных такой же библиотеки в системах управления Цейсса и БТА, но работающая уже через сетевые вызовы CAN-socket. Всё стало даже значительно проще. Уже не нужен специальный CAN-сервер. Множественный доступ разных программ к CAN-шине теперь обеспечивают сетевые уровни в ядре. Достигнутый результат позволяет в дальнейшем заняться заменой управляющих компьютеров БТА, также находящихся в эксплуатации более 10 лет.
После решения главной проблемы стало ясно, что можно переносить и адаптировать всё наработанное на предыдущей системе ПО.
Установлена новая версия IDE Eclipse для разработки на Java и совместимая с ней версия OpenJDK. Выполнен перенос Java-классов системы управления Цейсса под Eclipse и OpenJDK. Переделаны (как 64-битные) JNI-библиотеки для подключения CAN, SlaLib и метео с БТА. Перенесены и адаптированы Web-интерфейсы управления. Проверена работа системы управления в режиме моделирования. Полную проверку в лаборатории сделать было конечно нельзя, только увидеть появление на CAN-шине фреймов обращения к двигателям и датчикам.
ПО управления фокусировкой разработанное Э.Емельяновым перекомпилировано и собрано на основе новой can_io. Вмешательства автора не потребовалось.
Программа для наблюдений по спискам объектов zeiss_list была разработана на С++ на основе библиотек Qt3 и xmlrpc. Устаревшей Qt3 в новых ОС нет. Совместимая с AlmaLinux9 Qt3 найдена в репозитории ОС Fedora36. Программа собралась но не заработала. Оказалось что из библиотек xmlrpc исключили авторизацию в URL. Пришлось найти C++ тексты соответствующей версии библиотеки xmlrpc и добавить в класс простого клиента авторизацию через URL. Программа zeiss_list собралась и заработала.
На основе этой изменённой xmlrpc для C++ собран сервер связи астрономического пакета Stellarium с системой управления: zeiss1000stellarium. Установлена новая версия Stellarium и опробована его связь с системой управления через сервер.
Собран сервер связи астрономического пакета XEphem с системой управления: zeiss1000xed. Установлена новая версия XEphem и опробована его связь с системой управления через сервер.
Дополнительно, поскольку дискового пространства стало больше, установлен весь набор астрономических каталогов (HST GSC, USNO-A2, USNO-B1, 2MASS, GSC-2.3) и изображений (DSS1) вместе с ПО доступа к ним (см. тестовый пример: http://ztcs.sao.ru/catalog/getobj.html ). Теперь ztcs можно использовать как сервер каталогов вместо tb или base1, например в программах отождествления. В дальнейшем можно перенести Web-интерфейс с привязкой снимков камеры гида Цейсс-1000 с сервера tb на ztcs.
На этом работа в лаборатории была закончена. Летом новый компьютер был перевезён в аппаратную Цейсс-1000 и начались пробные подключения его к реальной аппаратуре системы управления. Почти всё основное сразу заработало. Можно было пробовать наблюдать. Дальнейшие доделки выполнялись удалённо по ходу пробных наблюдений.
Для наблюдений со старой ПЗС-матрицей и компьютером zobs необходима монтировка справочника с текущими данными управления в старой Windows2000. Новая версия Samba этого уже не позволяла. Изучение документации показало что используются только новые (безопасные) версии протоколов. Произведена настройка конфигурации Samba для подключения старых версий протоколов Windows-сети. Монтировка заработала.
При удалённых наблюдениях на ННП, наблюдатели получали звук от микрофона под куполом Цейсс-1000 на колонки компьютера zrobs. Была сделана попытка запустить то же самое 32-х разрядное приложение IP-телефона. Запустить удалось, но звук оказался очень плохой. Появилась идея использовать звуковой пакет SoX, который есть для Windows, а в Linux-е он штатный. Найден и установлен SoX для Windows на zrobs. Написан bat-скрипт запускающий (через ssh) на ztcs запись sox-ом с микрофона и проигрывающий звуковой поток уже sox-ом на zrobs. Звук нормальный. Это же повторено и для наблюдателей желающих работать на zrobs в Linux-е (чего раньше не было).
Собрана, развёрнута и сконфигурирована под нашу специфику более новая версия пакета wview (5-я вместо 4-й). Это ПO для локальной метеостанции Цейсса DavisVantagePro. Новая версия имеет Web-интерфейс конфигурации и использует SQL-базу данных SQLite3 вместо текстовых файлов для сохранения как параметров конфигурации так и метеоданных.
До этого момента система управления использовала метеоданные с БТА. Переделкой JNI-библиотеки восстановлено использование данных локальной метеостанции в системе управления.
Переписан PHP-скрипт получения последних метеоданных Цейсса системой управления БТА. Теперь он использует SQL-обращение к базе данных SQLite3.
В этом году разработано новое клиентское приложение для наблюдений на БТА с использованием списков объектов: bta_obj_list. Функционально оно заменяет две используемые сейчас программы: telescope + bta_list. Они были разработаны более более 20-ти лет назад, работают только под Linux и только на машинах с предварительно установленными программами сетевой связи с АСУ БТА. В отличие них bta_obj_list разработано на основе широко распространённой версии Qt5, что позволяет создать (сгенерировать) его версии под разные версии Windows и Linux.
Приложение не требует специальной подготовки компьютера т. к. не использует ни какие специальные программные интерфейсы для связи с АСУ БТА, а работает по HTTP через Web-сайты серверов на БТА, на которых имеются поддерживающие CGI-программы (bta_get.cgi и bta_send.cgi). Сейчас это tb или acs7 или acs5.
В отличие от прежних «одноязычных» программ это приложение использует Qt-интернационализацию (через Qt-Linguist) для переключения интерфейса приложения на национальный язык. Стартует оно как англоязычное, но в меню Help имеется переключение на национальный язык ОС. На данный момент реализован русский язык для русифицированных ОС (в виде отдельного qm-файла). Таким образом не трогая само приложение можно перевести его интерфейс на любой национальный язык.
|
|
В главном окне приложения реализуются минимально необходимые функции при проведении наблюдений. Чтобы использовать кнопки управления телескопом нужно вводить пароль соответствующего уровня (как например в bta_oper).
Большинство кнопок и полей этого окна имеет tooltip-ы, т.е. оперативные всплывающие подсказки.
Второе окно воспроизводит привычные методы удобной работы со списками объектов в устоявшемся формате файлов xxx.lst (как в предыдущих программах).
Выделенный
объект автоматически помечается и в
третьем окне, т. е. сразу видно его
расположение. Двойной клик переписывает
данные
объекта
в
поля главного
окна
для
отправки в АСУ БТА.
В меню главного окна имеются функции для редактирования и сохранения списка объектов.
Третье окно реализует принцип графического представления объектов на небе (как в программе bta_list). Выделять объекты можно и здесь, при этом соответствующая строка выделяется и в окне списка объектов (и double-click такой же).
|
|
Если есть связь с Web-сервером БТА, текущее положение телескопа показывается красным крестиком.
В меню Windows главного окна можно переключать тип представления объектов: как в интерфейсе оператора bta_oper (юг вверху) или на камерах AllSky (юг внизу). Там же можно переключать тип координатной сетки: A/Z или HA/Decl.
Последние два окна масштабируемые. Можно менять их размер или вообще скрывать для экономии места на экране.
С краткой справкой об основных особенностях приложения можно ознакомиться в меню Help.
|
|
Имеется и подробное внутреннее описание приложения вызываемое по меню Help в виде отдельного окна. Также на английском и национальном (сейчас русском) языке.
|
|
Изготовлены и проверены на нескольких компьютерах две сборки приложения для Windows10 и для Windows7. Желающие могут устанавливать их на свои ноутбуки.
Linux-вый вариант bta_obj_list установлен на компьютер удалённых наблюдений robs1 в к.505 лабораторного корпуса.
Для использования на БТА сделан отдельный вариант bta_obj_list переработанный под Qt4, поскольку там (на несколько устаревших ОС) Qt5 просто нет. Приложение установлено на сервер tb и на компьютер наблюдателей nn2.