Отчет научного сотрудника лаборатории информатики

Шергина В.С. за 2024г.

10 декабря 2024 г.

Оглавление:

Работы по системе управления Цейсс-1000.

Управляющая машина Цейсс-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.