# Управление астрономическими устройствами с помощью INDI

KStars предоставляет интерфейс для настройки и управления астрономическими инструментами через протокол INDI.

Протокол INDI поддерживает разнообразные астрономические инструменты, такие как CCD-камеры и фокусирующие устройства. KStars поддерживает следующие устройства:

## Поддерживаемые телескопы

Телескоп | Драйвер устройства | Версия
--- | --- | ---
LX200 8"-12" Classic | lx200classic | 1.0
Телескопы на базе Autostar | lx200autostar | 1.0
LX200 GPS 8"-16" | lx200gps | 1.0
LX200 Classic 16" | lx200_16 | 1.0
NexStar GPS, CGE, AS-GT | celestrongps | 0.9
New GT, NexStar 5i/8i | celestrongps | 0.9
Takahashi Temma | temma | 0.1
Astro-Physics AP | apmount | 0.1
Astro-Electronic FS-2 | lx200basic | 0.1
Argo Navis | lx200basic | 0.1
Losmandy Gemini | lx200basic | 0.1
Mel Bartels Controllers | lx200basic | 0.1
Sky Commander | skycommander | 0.1

## Поддерживаемые фокусирующие устройства

Фокусирующее устройство | Драйвер устройства | Версия
--- | --- | ---
Meade LX200GPS Microfocuser | lx200gps | 0.9
Meade 1206 Primary Mirror Focuser | lx200generic | 0.9
JMI NGF Series | lx200generic | 0.1
JMI MOTOFOCUS | lx200generic | 0.1

## Поддерживаемые CCD

CCD | Драйвер устройства | Версия
--- | --- | ---
Finger Lakes Instruments CCDs | fliccd | 1.0
Santa Barbara Instrument CCDs | sbigccd | 0.1
Apogee CCDs | apogee_ppi, apogee_pci, apogee_isa, apogee_usb | 0.1

## Поддерживаемые сменные светофильтры

Сменный светофильтр | Драйвер устройства | Версия
--- | --- | ---
FLI Filter Wheels | fliwheel | 0.9

## Поддерживаемые веб-камеры

Веб-камера | Драйвер устройства | Версия
--- | --- | ---
Любое устройство, совместимое с Video4Linux | v4ldriver | 1.0
Веб-камеры Philips | v4lphilips | 1.0
Meade Lunar Planetary Imager | meade_lpi | 0.1

## Настройка INDI

KStars может одинаково управлять и локальными и удалёнными устройствами через клиент-серверную архитектуру INDI. Устройства INDI могут работать в трёх различных режимах:

1. Локально: этот режим самый распространённый и используется для управления локальным устройством (т.е. устройством, физически подключённым к вашей машине).

2. Сервер: режим сервера создаёт сервер INDI для отдельного устройства и ожидает входящие подключения удалённых клиентов. Вы не можете применять никаких операций к серверным устройствам, кроме запуска и останова.

3. Клиент: режим клиента используется для соединения с серверами INDI, контролирующими устройства INDI. Вы можете управлять удалёнными устройствами точно так же, как и локальными.

Вы можете подключить локальное устройство, запустить сервер INDI и соединяться с удалёнными клиентами с помощью диалога «Управление устройствами», вызываемого из пункта Управление устройствами... меню Устройства.

Диалог Управление устройствами:

Работа драйверов устройств
Запуск драйверов

Вы можете запускать устройства, выбирая конкретное устройство из дерева устройств и нажимая кнопку Запустить службу. Также вы можете выбрать режим работы устройства — локально или сервер, как написано выше.

За информацией о том, как управлять удалёнными устройствами, смотрите раздел "Управление удалённым устройством".

## Настройка телескопа

Большинство телескопов для удалённого управления оборудованы интерфейсом RS232. Подключите разъём RS232 к последовательному порту или порту USB. Исторически RS232 подключается к последовательному порту компьютера, но, поскольку многие новые портативные компьютеры имеют вместо последовательного порты USB/FireWire, вам может понадобиться адаптер.

После подключения к порту компьютера включите телескоп. Настоятельно рекомендуется загрузить и установить самую последнюю версию прошивки контроллера вашего телескопа.

Перед использованием телескоп необходимо сориентировать. Ориентируйте его (по одной или двум звёздам), как показано в руководстве к телескопу.

Перед подключением к телескопу &kstars; необходимо проверить параметры времени и местонахождение. Это гарантирует правильное слежение и синхронизацию между телескопом и программой. Следующие шаги расскажут вам, как установить соединение с устройством, уже подключённым к компьютеру. Как соединиться с удалёнными устройствами и управлять ими, смотрите раздел "Управление удалённым устройством".

Вы можете воспользоваться мастером настройки телескопа, который проверит всю необходимую информацию. Он умеет автоматически искать подключённые телескопы, сканируя порты. Вы можете запустить мастер командой Мастер настройки телескопа... в меню Устройства.

Подключить локальный телескоп можно и другим способом:

1. Установите своё географическое положение. Откройте диалог Местонахождение наблюдателя командой Местонахождение наблюдателя... в меню Настройка, нажатием значка с изображением глобуса на панели инструментов или комбинацией клавиш &Ctrl;g.

2. Установите ваши локальные время и дату командой Задать время... из меню Время или нажатием значка с изображением часов на панели инструментов. Диалог Задать время использует обычный элемент выбора даты &kde;, состоящий из трёх счётчиков: часов, минут и секунд. Если когда-нибудь вам понадобиться установить часы на текущее время, просто выберите команду Установить текущее время из меню Время.

3. Выберите команду Управление устройствами... из меню Устройства.

4. В столбце Устройство укажите модель вашего телескопа.

5. Нажмите правой кнопкой мыши на устройстве и выберите команду Запустить службу.

6. Нажмите кнопку OK, чтобы закрыть диалог «Управление устройствами».

### Часто используемые параметры

Вам не нужно устанавливать географическое положение и время при каждом соединении с телескопом. Только подкорректируйте их при необходимости.

Если в данный момент вы уже готовы использовать устройство, &kstars; для удобства предлагает два взаимозаменяемых графический интерфейса управления телескопами:

### Управление телескопом

1. Управление к карты неба: для каждого устройства, которое вы запускаете в Управлении устройствами, в контекстном меню главного окна содержится пункт для управления его свойствами. Вы можете отдавать команды, такие как `SLEW, SYNC` и `TRACK` прямо с карты неба.

   Контекстное меню с активным устройством LX200 Classic:

   Управление устройствами с карты неба

2. Управление INDI: данная панель предоставляет пользователю все возможности управления, поддерживаемые устройством.

   Панель разделена на три основных секции:

   - Вкладки устройств: каждое активное устройство имеет вкладку на панели INDI. Несколько устройств могут одновременно работать, не мешая друг другу.

   - Просмотр свойств: свойства — ключевой элемент инфраструктуры INDI. Каждое устройство определяет набор свойств для взаимодействия с клиентом. Пример свойства: текущая позиция телескопа. Семантически близкие свойства обычно объединяются в логические блоки или группы.

   - Просмотр журналов работы: устройства сообщают информацию о своём состоянии и наборе поддерживаемых команд, посылая сообщения INDI. Каждое устройство ведёт свой собственный журнал работы. Все устройства имеют один общий инструмент просмотра журналов работы. Устройство обычно посылает сообщения только своему драйверу, но, когда уместно, может посылать общее сообщение.

   Управление INDI

Вы не ограничены использованием одного интерфейса поверх другого, т.к. они могут использоваться одновременно. Действия с картой неба автоматически отражаются в диалоге Управление INDI и наоборот.

Чтобы подключить телескоп, выберите команду Подключиться контекстного меню устройства или нажмите кнопку Подключиться на вкладке устройства диалога Управление INDI.

По умолчанию, KStars будет пытаться соединиться с портом `/dev/ttyS0`. Чтобы сменить порт, выберите команду Управление INDI... из меню Устройства и измените порт на вкладке устройства.

&kstars; автоматически обновляет долготу, широту нахождения и время телескопа, исходя из текущих параметров. Вы можете включить или выключить эти обновления в диалоге Настроить INDI из меню Устройства.

Если &kstars; правильно взаимодействует с телескопом, она получит текущие координаты ПВ и СКЛ от телескопа и покажет перекрестие (цель устройства) на карте неба.

### Синхронизация телескопа

Если вы ориентировали телескоп и последняя звезда-ориентир была, например, Вега, тогда центр перекрестия должен быть около этой звезды. Если перекрестие ушло от цели, нажмите правую кнопку мыши на звезде на карте неба, и выберите команду `Синхронизировать` в контекстном меню телескопа. Это действие заставит телескоп синхронизировать свои внутренние координаты с координатами звезды, и центр перекрестия телескопа должен переместиться в окрестность звезды.

Вот и всё: ваш телескоп готов к изучению неба.

### ВНИМАНИЕ

Никогда не наводите телескоп на солнце. Солнце может нанести необратимые повреждения глазам и оборудованию.

## Настройка устройств CCD и видеозахвата

KStars поддерживает следующие фотоприёмники:

- Finger Lakes instruments CCD

- Apogee CCD: поддерживаются параллельный порт, ISA, PCI и USB. Нужно установить драйверы ядра для Apogee для вашего варианта (для USB нужна только libusb).

- Video4Linux-совместимые устройства. Расширенные возможности веб-камеры Philips также поддерживаются.

Вы можете запускать устройства CCD и видеозахвата из диалога "Управление устройствами" из меню Устройства Управление устройствами.... Как у всех устройств INDI, некоторые функции управления будут доступны с карты неба. Полностью устройства можно контролировать из диалога Управление INDI.

Стандартный формат захвата изображений — FITS. После захвата и загрузки изображение автоматически показывается в инструменте "Просмотр FITS". Для захвата последовательности изображений вызовите Захват последовательности изображений... из меню Устройства. Этот инструмент неактивен, пока соединение с фотоприёмником не будет установлено.

Драйвер FLICCD требует привилегий суперпользователя для правильной работы. Внимание: запуск данного драйвера с привилегиями суперпользователя является рискованным с точки зрения безопасности операционной системы.

## Захват последовательности изображений

"Захват последовательности изображений" можно использовать для получения изображений с камер и CCD в интерактивном и пакетном режиме. К тому же вы можете выбрать фильтр, который хотите использовать при проведении съёмки. Инструмент захвата изображений остаётся неактивным до установки соединения с фотоприёмником.

Захват последовательности изображений

Рисунок выше иллюстрирует пример сеанса захвата. Данный инструмент имеет следующие параметры:

- Камера/CCD

  - `Устройство:` фотоприёмник.

  - `Префикс:` префикс имени файла снимка.

  - `Экспозиция:` время экспозиции в секундах.

  - `Количество:` количество снимков.

  - `Задержка:` задержка в секундах между снимками.

  - `Штамп времени ISO 8601:` добавить штамп времени по стандарту ISO 8601 к имени файла (пример: image_01_20050427T09:48:05).

- Фильтр

  - `Устройство:` устройство фильтра.

  - `Фильтр:` слот фильтра. Вы можете присвоить цвета номерам позиций с помощью диалога Настройка INDI (например, позиция 1 = Красный, позиция 2 = Синий и т.д.).

После установки параметров, вы можете начать процедуру захвата, нажав кнопку Запуск. Захват в любое время можно отменить нажатием кнопки Остановить. Все захваченный кадры будут сохранены в папку FITS по умолчанию, расположение которой может быть изменено в диалоге Настройка INDI.

Если у вас более сложные требования к захвату, рекомендуется создать сценарий, выполняющий то, что вам нужно. Для создания этого воспользуйтесь инструментом Редактор сценариев, вызываемый командой Мастер сценариев... меню Сервис.

## Настройка INDI

Диалог «Настройка INDI» позволяет вам изменять клиентские параметры INDI. Окно диалога разделено на четыре блока: «Общие параметры», «Автоматическое обновление», «Показывать», «Сменные светофильтры».

- Общие параметры

  - `Папка FITS по умолчанию:` папка, в которую будут сохраняться изображения FITS. Если папка не указана, сохранение будет производиться в домашнюю папку.

  - `Показывать изображения FITS при получении:` когда данный флажок установлен, KStars будет показывать захватываемые FITS в окне просмотра FITS. Если вы используете инструмент «Захват последовательности кадров», все захваченные кадры будут сохраняться на диск в любом случае.

  - `Порт телескопа:` порт телескопа по умолчанию. Когда вы соединяетесь с локальной или удалённой службой телескопа, KStars будет автоматически использовать это значение как порт телескопа.

  - `Порт видео:` значение порта видео по умолчанию. Когда вы соединяетесь с локальной или удалённой службой телескопа, KStars будет использовать это значение как порт видеокамеры.

- Автоматическое обновление

  - `Время:` обновить дату и время телескопа после установки соединения, если эта функция поддерживается устройством.

  - `Местонахождение наблюдателя:` обновить информацию о географическом положении телескопа (текущую долготу и широту) после установки соединения, если эта функция поддерживается устройством.

- Показывать

  - `Цель устройства:` когда флажок установлен, KStars показывает перекрестие телескопа на карте неба. Перекрестие выводится после успешного соединения с телескопом и его местоположение изменяется со временем. Рядом с перекрестием выводится название телескопа. Каждому подключённому телескопу соответствует одно перекрестие. Чтобы изменить цвет перекрестия, откройте диалог Настроить KStars, выберите раздел Цвета и поменяйте цвет элемента «Индикатор поля зрения».

  - `Сообщения INDI в строке состояния:` когда флажок установлен, программа показывает сообщения от службы INDI в строке состояния.

- Сменные светофильтры: присвоить цвета позициям сменного фильтра (например, позиция 0 — красный, позиция 1 — синий и т.д.). Вы можете присваивать цвета максимум 10 позициям. Чтобы присвоить цвет, выберите номер позиции из выпадающего списка и укажите цвет в поле ввода. Повторите процедуру для всех нужных позиций и нажмите кнопку «OK».

## Общее представление об INDI

Главная идея INDI состоит в том, что устройства имеют возможность описывать сами себя. Это достигается использованием языка XML для описания общей иерархии, которая может представлять и стандартные и нестандартные устройства. В INDI все устройства могут содержать одно или несколько свойств. Каждое свойство содержит один или несколько элементов. Существует четыре типа свойств INDI:

- Текст.

- Число.

- Переключатель (представляется в графическом интерфейсе кнопками и флажками).

- Индикатор (представляется в графическом интерфейсе цветными светодиодами).

Например, все устройства INDI имеют общее стандартное свойство-переключатель CONNECTION. Свойство CONNECTION имеет два элемента: CONNECT и DISCONNECT. KStars анализирует общее XML-описание свойств и создаёт графический интерфейс для взаимодействия с человеком.

Панель управления INDI предлагает множество свойств устройств не доступных с карты неба. Эти свойства для разных устройств различны. Тем не менее, все свойства имеют общие особенности, которые ограничивают варианты их визуального представления и использования:

- Права: все свойства могут быть доступны по чтению, записи, чтению и записи. Например, свойство телескопа «Прямое восхождение» доступно по чтению и записи. Вы можете ввести новое значение этого свойства и телескоп, основываясь на текущих параметрах, либо будет выполнять наведение, либо обновит внутреннее состояние. Более того, когда телескоп делает наведение, его свойство «Прямое восхождение» обновляется и отправляется обратно клиенту.

- Состояние: к каждому свойству прикреплён индикатор состояния (круглый светодиод). Каждое свойство имеет состояние и назначенный цвет:

  ### Цвет состояния INDI

  Состояние | Цвет | Описание
  --- | --- | ---
  Простой | Серый | Устройство не выполняет никаких действий для свойства
  OK | Зелёный | Последняя операция для свойства выполнена успешно
  Занято | Жёлтый | Выполняется действие для свойства
  Тревога | Красный | Свойство находится в критическом состоянии и требует немедленного вмешательства человека

  Драйвер устройства обновляет состояние свойства в реальном времени, если это необходимо. Например, если телескоп находится в процессе наведения на цель, тогда индикаторы состояния свойств RA/DEC будут в состоянии Занято. Когда процесс наведения завершится успешно, индикаторы свойств перейдут в состояние OK.

- Контекст: числовые свойства могут принимать и обрабатывать числа в двух форматах: десятичном и шестидесятеричном. Шестидесятеричный формат удобен для выражения времени или экваториальных/географических координат. Вы можете использовать любой формат на ваше усмотрение. Например, все следующие числа равны:

  - -156.40

  - -156:24:00

  - -156:24

- Время: стандартное время для всех соединений, связанных с INDI — универсальное время (UTC), записываемое в соответствии со стандартом ISO 8601 формате YYYY-MM-DDTHH:MM:SS. &kstars; автоматически сообщает всем драйверам устройств правильное значение времени. Вы можете включить или выключить автоматические обновления времени с помощью диалога Настройка INDI, вызываемого соответствующим пунктом меню Устройства.

## Управление удалённым устройством

KStars предлагает простой, но мощный инструмент для управления удалёнными устройствами. Его детальное описание находится в техническом описании INDI.

Для удалённого управления вам необходимо настроить серверную и клиентскую машины:

1. Сервер: чтобы подготовить устройство для удалённого управления, следуйте инструкциям по локальной/серверной настройке. Когда вы запускаете службу устройства в диалоге «Управление устройствами», открываемом пунктом меню Управление устройствами..., номер порта показывается в столбце Порт. Также вам необходимо задать имя хоста или IP-адрес сервера.

2. Клиент: выберите команду Управление устройствами... из меню Устройство и в открывшемся диалоге перейдите на вкладку Клиент. На этой вкладке вы можете добавлять, изменять или удалять серверы. Добавьте сервер, нажав кнопку Добавить, введите его имя для показа, имя хоста или IP-адрес в поле Сервер и номер порта, который показывался в столбце «Порт» при настройке сервера.

Клиент INDI

После добавления сервера для соединения с ним или отключения откройте нажатием правой кнопкой мыши контекстное меню и выберите команды Соединиться или Отсоединиться соответственно. Если соединение установлено, вы можете управлять телескопом из карты неба или диалога Управление INDI, также как описано в разделе "Локальная/серверная настройка".

### Запуск сервера INDI из командной строки

Хотя &kstars; даёт возможность легко развернуть сервер INDI, вы можете запускать его из командной строки.

Поскольку INDI — отдельный компонент, вы можете запускать сервер на сетевом узле без KStars. Для запуска на удалённых узлах INDI можно собрать отдельно. Более того, драйвера устройств пишут сообщения в стандартный поток ошибок `stderr`, что может быть полезно для отладки. Синтаксис для запуска сервера следующий:

$ `indiserver` [параметры] [`драйвер` ...]

Параметры:

-p p : задаёт порт IP, по умолчанию 7624

-r n : задаёт максимальное количество попыток перезапуска, по умолчанию 2

-v : включает режим более подробного вывода сообщений в stderr

Например, если вы хотите запустить сервер INDI, работающий с устройством через драйвер LX200 GPS и ожидающий входящих соединений по порту 8000, вы можете вызвать следующую команду:

$ `indiserver` -p 8000 `lx200gps`

### Обеспечение безопасности удалённых операций

Допустим, вы хотите запустить сервер INDI сервер с драйверами на сервере `remote_host` и подключиться к нему из программы &kstars;, работающей на другом компьютере.

Войдите с локальной машины на сервер `remote_host`, набрав:

$ `ssh` -L `local_port`:`remote_host`:`remote_port`

Эта операция связывает порт `local_port` локальной машины с портом `remote_port` сервера `remote_host`. После входа в систему удалённого узла запустите сервер INDI на нём:

$ `indiserver` -p `remote_port` [`драйвер`...]

Вернитесь на локальную машину, запустите &kstars;, откройте диалог «Управление устройствами» командой Управление устройствами... из меню Устройства и добавьте сервер на вкладке Клиент. Сервер должен быть локальной машиной (обычно её IP-адрес 127.0.0.1), а номер порта — `local_port`, упомянутый выше. Нажатием правой кнопки мыши вызовите контекстное меню сервера и выберите Соединиться. &kstars; соединится с удалённым сервером INDI по защищённому соединению. Информация о сервере будет сохранена для следующих сеансов связи.

## Вопросы и ответы по INDI

Что такое INDI?

INDI ( Instrument-Neutral-Distributed-Interface) — протокол управления, разработанный Elwood C. Downey из института ClearSky. &kstars; использует драйвера устройств, которые совместимы с данным протоколом. Протокол INDI имеет множество преимуществ, включая слабую связанность устройства и драйвера. Клиенты, которые используют такие драйвера, (например, &kstars;) абсолютно ничего не знают о возможностях драйвера. Во время выполнения &kstars; обращается к драйверу и полностью динамически формирует графический интерфейс в зависимости от сервисов, предоставляемых устройством. Поэтому KStars может полноценно использовать новые или обновлённые драйвера без необходимости вносить изменения в программу.

Планируете ли вы расширить поддержку устройств?

Да. Мы планируем поддерживать бóльшую часть камер CCD и фокусирующих устройств и расширить поддержку телескопов. Если вы хотите, чтобы INDI поддерживал какое-то конкретное устройство, пожалуйста, напишите по адресу indi-devel@lists.sourceforge.net.

Какие операции по управлению телескопом обеспечивает KStars?

Это зависит от конкретного телескопа. Минимум — три операции: `SLEW`, `TRACK` и `SYNC`. Их можно вызывать прямо с карты неба. Ваш телескоп должен быть правильно ориентирован для выполнения этих операций. Некоторые телескопы предлагают больше операций: управление местонахождением, режимы наведения, фокусирование, парковка и т.д. Получить доступ к дополнительным возможностям телескопа можно из диалога «Управление INDI», вызываемого через меню «Устройства».

Какая разница между командами `SLEW`, `TRACK` и `SYNC`?

По команде `SLEW` телескоп наводится на определённую цель, а после наведения продолжает её отслеживать с сидерической скоростью (со скоростью движения звёзд по небосводу). Эта операция хорошо работает для звёзд, объектов из каталога Мессье и почти всех объектов за пределами Солнечной системы. Объекты Солнечной системы двигаются по небу иначе. Чтобы следить за ними, телескоп должен выполнять команду `TRACK`.

Таким образом, команду `TRACK` нужно применять для слежения за объектами, двигающимися с несидерической скоростью. Команда `SYNC` используется для синхронизации внутренних координат телескопа с координатами выбранного вами объекта.

Могу ли я управлять моим телескопом удалённо?

Да. Вы можете запустить сервер INDI на компьютере, к которому подключён телескоп, и сервер будет ожидать запросов от других клиентов, имеющих &kstars;. После подключения вы можете управлять вашим телескопом прямо с карты неба. Эта процедура описана более подробно в разделе "Управление удалённым устройством".

Когда я нажимаю кнопку Соединиться, &kstars; сообщает, что телескоп не подключён к порту. Что мне делать?

Это сообщение возникает, когда &kstars; не может обмениваться данными с телескопом. Попробуйте следующее:

1. Убедитесь, что имеете права на чтение и на запись в порт, к которому пытаетесь подключиться.

2. Проверьте соединительный кабель. Убедитесь что он в исправном состоянии, протестируйте его с помощью других приложений.

3. Проверьте питание телескопа. Убедитесь, что телескоп включён и ему хватает электроэнергии.

4. Установите правильный порт в диалоге, открываемом командой Управление INDI... из меню Устройства. Порт по умолчанию — `/dev/ttyS0`

5. Перезапустите &kstars; и попробуйте ещё раз.

&kstars; сообщает, что телескоп подключен и готов к работе, но я не могу найти перекрестие телескопа, где оно?

&kstars; устанавливает координаты прямого восхождения и склонения телескопов сразу после успешного подключения. Если вы правильно сориентировали телескоп, тогда перекрестие находится на карте неба в районе вашей цели. Однако, внутренние координаты ПВ и СКЛ телескопа могут быть некорректны (даже ниже горизонта), поэтому вам необходимо отдать телескопу команду SYNC для синхронизации координат цели с внутренними координатами телескопа. С помощью контекстного меню карты неба перекрестие телескопа можно центрировать и привязать к объекту.

Телескоп двигается неравномерно или не двигается вообще. Что делать?

Наиболее вероятно такое поведение связано с неверной настройкой. Выясните следующее:

1. Ориентирован ли телескоп?

2. Корректен ли режим ориентации телескопа? Используйте диалог Управление INDI для проверки и изменения режима (`Alt/Az, Polar, Land`).

3. Правильно ли установлены дата и время телескопа?

4. Правильны ли долгота и широта телескопа?

5. Правильно ли выбран часовой пояс телескопа?

6. Достаточно ли жёстко закреплены у телескопа оси ПВ и СКЛ?

7. Соответствует ли положение переключателя N/S на телескопе вашему полушарию?

8. В исправном ли состоянии кабель, соединяющий телескоп и компьютер?

Если вы считаете, что все параметры корректны, а телескоп всё равно двигается не равномерно или не двигается вообще, пожалуйста, сообщите об этом по адресу kstars-devel@kde.org.