МО граберов ТВ каналов VS56/VS60 под ОС Linux.

Программное обеспечение  граберов VS56 и  VS60 размещено на копьютере  sky в
аппаратной БТА  (к.210 sky.bta.sao.ru). Оно разработано на  языках C и C++ с
использованием  библиотеки  Qt  для  X11-интерфейсов. МО  функционирует  под
управлением ОС Linux  и доступно по сети через стандартные протоколы telnet,
rshell, X11.

               Краткое описание и инструкция по использованию.

Состав:

     vs56 - серверная программа-драйвер управления ISA-картой VS56.
     Язык разработки - C.
      Связана с  интерфейсными программами-клиентами  через блок разделяемой
     памяти. Получает через него команды на считывание своих 4-х ТВ-каналов.
     Полученные изображения предоставляются клиентам через это же поле общей
     памяти.  В программе  реализована как  работа со специальной  камерой с
     накоплением  на  ПЗС-чипе   (вариант  VS56-Tandem)  так  и  с  обычными
     ТВ-подсмотрами  VS56/1,  VS56/2) с возможностью  накопления сложением в
     памяти компьютера.
      При старте  программа читает файл  vs56.conf из текущего справочника с
     общей и поканальной конфигурацией  грабера. Для каждого ТВ-канала может
     быть  определено два  варианта  инициализации VS56  (например для  двух
     форматов кадра:  768х512 и 512х512). Кроме  того для ускорения процесса
     считывания можно работать не  с полным кадром а с фрагментом (фреймом).
      При  накоплении сложением,  из каждого кадра  автоматически вычитается
     уровень  фона,  полученный статистической  обработкой  1-го кадра.  Это
     конечно  замедляет  считывание, но  позволяет  следить за  накоплением.
      Возможно также запоминанее одной  строки и последующее ее вычитание из
     всех  строк считываемых  кадров ("на  ходу"), что позволяет  бороться с
     последствиями несинхронного  считывания дешёвых CCD-камер (вертикальной
     "полосатостью").
      Одновременно может быть запущен  только один  драйвер VS56!  Поэтому в
     дальнейшем планируется  стартовать его  как штатный даемон  при запуске
     системы.
                                      

     vs60 - программа-драйвер управления PCI-картой VS60.
     Язык разработки - C.
     Предназначена для реализации  простой и быстрой взаимозаменяемости VS60
     и VS56. Практически полностью аналогична vs56 за исключением нескольких
     упрощений:
        o один формат кадра: 768x576
        o естественно нет варианта Tandem и задания экспозиций
        o нет обратной записи в память грабера
        o нет вычитания фона при сложении и драйвер не даёт индицирующей
          программе показывать промежуточные изображения

     tvimage - интерфейсная программа-клиент под X11.
     Язык разработки - C++ с использованием библиотеки Qt.
     Цифровой параметр  задает один  из 4-х ТВ-каналов для  работы с которым
     она запускается:

          tvimage  N

     где N = 0,1,2,3 - номер канала
     необязательный параметр  -cmap  ставится если есть  проблемы с 8-битным
     дисплеем и  нужно запустить  tvimage  с  "приватной" цветовой таблицей.
     Управление  через  меню  или  клавиатуру позволяет  передавать  граберу
     команды  считывания ТВ-каналов  и  менять режимы  индикации полученного
     изображения. Одновременно может работать несколько интерфейсов tvimage.
     В том числе и  для одного и того же канала (например для одновременного
     представления в разных видах, или на экраны разных компьютеров в сети),
     это  естественно  повышает  нагрузку   на  базовый  компьютер  и  сеть,
     ресурсами коих эти возможности и ограничиваются.



Предполагаемое подключение ТВ-каналов к граберу:

     0 - подсмотр из СПФ, N1 или N2 (по заявке наблюдателя)
     1 - широкоугольный (100град) обзор неба с накоплением на камере
     2 - 70-ти сантиметровый гид БТА
     3 - камера панорамного обзора неба (на техблоке)

Запуск на консоли (компьютера sky ):

     1. Войти под именем obs (пароль пока ******).
     2. Загрузить оболочку X11 (т.е. startx или openwin).
     3. Загрузить драйвер vs56/vs60 (если еще не запущен) и нужное
     количество окон ТВ-каналов используя:

          в оболочке openwin  -  строчки в стандартном меню
          в оболочке startx(fvwm)        - кнопки внизу экрана

Удаленный запуск по сети под пользователем obs на основных наблюдательских
Linux-машинах (tb,cpf,n2):

     1. Найти в основном стандартном меню оболочки openwin подменю:

           SKY:TVimage

                VS56 TV-system on SKY
                Show TV channel 0
                Show TV channel 1
                Show TV channel 2
                Show TV channel 3

                Try to start VS60-driver
                Try to start VS56-driver

     2. Загрузить драйвер vs60 или vs56(если еще не запущен). На экране
     должно появиться xterm-окно с протоколом его работы (или
     сообщением что он уже запущен).

     3. Загрузить нужное количество окон ТВ-каналов. На 8-битных
     дисплеях желательно это сделать до вызова "цвето-емких" программ
     (MIDAS, Netscape,XV,...).

Удаленный запуск по сети c других UNIX-машин:

     0. Сейчас машина с грабером называется sky (sky.bta.sao.ru)

     1. Загрузить на своей машине оболочку X11 (т.е. startx или
     openwin) и окно терминала (например xterm).

     2. Дать команду xhost. Получается список машин с которых разрешено
     выдавать на экран вашей. Если в нем нет sky, включить ее командой

               xhost sky

     3. Войти на sky под именем obs:

               rlogin sky -l obs

     если требуется пароль - пока он ****** но может быть изменен. Для
     основных наблюдательских машин возможен переход пользователя obs
     на sky без пароля по команде:

               rsh sky

     список таких машин находится в файле .rhosts в домашнем
     справочнике пользователя obs на sky.

     4. Если драйвер vs60 или vs56 еще не запущен, загрузить его,
     например:

               vs56 &

     или с протоколом в отдельное окно:

               xterm -e bin/vs56 &

     5. Загрузить нужное количество окон ТВ-каналов командами:

               tvimage N &

     где N = 0,1,2,3 - номер канала.
     Если есть проблемы с 8-битной цветовой таблицей (например уже
     загружены MIDAS или Netscape или XV) можно запустить tvimage  с
     "приватной" цветовой таблицей:

               tvimage -cmap N &

     Приведенная последовательность действий может быть оформлена на
     машине наблюдателя ввиде командного файла, например:

          #!/bin/sh
          host=sky
          disp=`hostname`:0.0
          rsh $host "rm -f .Xauthority"
          xhost $host
          rsh $host "DISPLAY=$disp /usr/X11/bin/xterm -e bin/vs56" &
          sleep 2
          rsh $host "DISPLAY=$disp bin/tvimage 0" &
          rsh $host "DISPLAY=$disp bin/tvimage 1"

     и включена в стандартное меню. Что уже и сделано для пользователя
     obs на основных наблюдательских машинах (tb,cpf,n2).

     Пользователям  X-эмуляторов под   DOS/ Windows предлагается  самим
     выстроить порядок  действий руководствуясь смыслом вышеизложенного
     и инструкцией к своему конкретному эмулятору.


Работа с tvimage.

                               

     В момент старта программа  tvimage определяет тип загруженного драйвера
     (VS60  или  VS56) и  слегка  меняет  настройку меню.  Поэтому в  случае
     оперативного  перехода с  одного грабера  на другой,  все окна  tvimage
     следует   закрыть   и   запустить   снова  после   загрузки   драйвера.

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

     File - меню операций с файлами:

           Save picture - меню записи картинок на диск
               (для формирования GIF и JPEG используются системные программы
               cjpeg и djpeg -gif):

               GrayScale JPEG - полутоновая картинка в файл *.jpg
               GrayScale GIF - полутоновая картинка в файл *.gif
               Color JPEG - цветная картинка в файл *.jpg
               Color GIF - цветная картинка в файл *.gif
                    после выбора варианта записи на экране появляется
                    стандартное окно для выбора справочника и файла


           Save as FITS   
               запись изображения в FITS-файл *.mt,
               на экране появляется стандартное окно для выбора справочника
               и файла, поскольку справочники пользователей основных
               наблюдательских машин tb,cpf,n2 сейчас обычно смонтированы в
               справочнике /comp появляется возможность записи изображений
               прямо в основной ахив БТА:
                    /comp/tb/data/archives.bta/NICE/b9126
               или в сравочник где идет регистрация
                    например: /comp/cpf/obs/CCD/9126/
               и последующей обработки их в MIDAS-е на машине наблюдателя


           Load FITS   
               считывание изображения из FITS-файла *.mt
               или gzip-компрессированного *.mt.gz,
               на экране появляется стандартное окно для выбора справочника
               и файла


           Exit   - выход из программы

     VS56(VS60) action  - меню операций с VS56(VS60):

            Get single image   
               считать 1 изображение или 1 фрейм

            Get ten images   
               выполнить 10 считываний

            Get infinitely   
               вкл. непрерывное считывание с макс.скоростью
               пользовать осторожно! может вызвать перегрузку компьютера и
               сети!
               если возникли трудности с остановом мышкой через меню -
               использовать  ,
               можно использовать в режиме полного кадра только на канале
               "Tandem" при достаточно большом времени экспозиции, для
               остальных (обычных) ТВ-каналов рекомендуется устанавливать
               фрейм небольшого размера

            Stop inf.mode   
               остановить непрерывное чтение или циклические операции или
               экспозицию в канале "Tandem"

            Add one   
               считать 1 кадр или фрейм и сложить с текущим изображением

            Add ten   
               выполнить 10 считываний со сложением

            Add inf-ly   
               вкл. непрерывное сложение с макс.скоростью пользовать
               осторожно! - может вызвать перегрузку!

            Start cycling   
               запуск циклических операций (накопление нескольких кадров с
               возможной последующей обработкой, настройка через вызов
               Opt.Window в меню Options)

            Erase   
               обнулить изображение

            Write   
               записать мл.байт изображения обратно в память грабера (для
               визуализации на дополнительном мониторе)

            Init   
               повторить начальную инициализацию VS56 при возникновении
               "нештатных" ситуаций

     Mouse modes  -  меню изменения режимов использования мышки при
     изменении режима меняется тип курсора на экране:
          Modify CUTs   
               CUT-ы (пределы индикации по интенсивности) имеют тотже смысл
               что и в MIDAS-e;
               движением курсора с 1-й кнопкой меняется нижний CUT, 3-й -
               верхний, 2-й - оба

          Set Frame   
               установка фрагмента изображения, нажать кнопку влевом вехнем
               углу фрагмента и вести курсор вправо вниз, выбор небольшого
               фрагмента позволяет сущесвенно ускорить как процесс
               считывания из грабера так и передачу изображения по сетям

          Set Line   
               формирование линии при движении мышкой с нажатой кнопкой,
               после отпускания рисуется разрез вдоль линии

          Set Point   
               при нажатии на кнопку запомнить координаты точки под
               курсором, установить на нее указатель (крест) и показать
               значение в этой точке;

          No Mouse   
               отключить режимы мыши


     Options  - меню установки параметров:

          Calculate CUTs   
               определение минимума, максимума, медианы, среднего и
               дисперсии в изображении или фрейме и установка пределов
               индикации по интенсивности (CUT-ов) "на фон" т.е. как
               ~+-2дисперсии от среднего, после чего их можно подправить
               мышкой

          Change Format   
               переключение между вариантами инициализации VS56 для данного
               канала (768х512 <-> 512х512)

          Reset Frame   
               отмена режима работы с фрагментом изображения установленным
               мышкой (т.е. снова полный кадр)

          Set Exposure   
               установка экпозиции накопления на чипе для варианта Tandem
               (сейчас 1-й канал)
                                       


          Set El.Ref.Lev.   
               установка электронного уровня на котором будет работать АЦП
               VS56 для данного канала: 0-63, исходный - 60
                                       


          Load LUT   
               загрузка файла таблицы раскраски *.lut; все взяты из MIDAS-а;

               при старте загружается полутоновая ramp.lut
               (Bug: в данном варианте программы эта функция плохо работает
               на 8-битных дисплеях, т.к. новая таблица не подменяет
               текущую, а добавляется к ней)

          Load ITT   
               загрузка таблицы преобр-я интенсивности *.itt;
               все взяты из MIDAS-а;
               при старте без преобразования - ramp.itt

          Display LUT   
               вкл./выкл. внизу окна полоску с равномерно меняющейся
               интенсивностью которая показывает работу LUT+ITT

          Show Opt.Window   
               вывод окна просмотра/изменения параметров программы ранее
               задаваемых мышкой

     CCD-spec.  -  меню специальных функций для борьбы с последствиями
     несинхронной оцифровки грабером ПЗС-камер:
          Calc BgdRow   
               рассчитать, запомнить и показать строку среднего фона путем
               осреднения всех строк кадра, это естественно лучше сделать
               после накопления нескольких темновых кадров

          Vid ->ccd (Use &BgdRaw online)
          CCD ->vid (Don't use &BgdRow)
          
               вкл/выкл в драйвере режима считывания с грабера с вычитанием
               средней темновой строки "на ходу"

          Image = Image o BgdRow
               меню операций (- : + х) с изображением и строкой среднего
               фона (хотя вроде бы реально нужно тольно вычитание :)

     Reduction  -  меню простейшей редукции изображений:

          Set BGD-file name
               задание имени FITS-файла фона *.mt (или
               gzip-компрессированного *.mt.gz)

          Set FLAT-file name
               задание имени FITS-файла плоского поля *.mt (или
               gzip-компрессированного *.mt.gz)

          Substruct BGD  
               считывание файла фона и вычитание его из текущего изображения
               с учетом количества накопленных кадров в обоих (фон
               приводится к изображению)

          Divide by FLAT   
               считывание файла плоского поля и деление на него текущего
               изображения с сохранением среднего уровня оного

          (Image-BGD)/FLAT   
               выполнение обеих операций сразу

     Help - меню просмотра описания

           Pain text
               вызов внутреннего окна для быстрого просмотра текста описания
               из файла Doc/VS56.txt

           HTML manual
               вызов программы Netscape для просмотра настоящего описания из
               файла Doc/vs56.html
               Следует учитывать что броузер будет запускаться на
               относительно старой и маломощной машине sky и конкурировать
               по ресурсам с МО граберов. Поэтому предпочтительнее читать
               данное описание на более мощных компьютерах либо с сервера
               аппаратной БТА:
                                 http://tb.bta.sao.ru/vs56/
               либо через центральный сайт САО:
                           http://www.sao.ru/~vsher/manuals/vs56/


     Окно просмотра/изменения параметров
               Это дополнительное окно выводится выбором пункта
               Show Opt.Window в меню Options, либо клавишей 
               Оно служит по большей части (но не только) для
               просмотра/изменения параметров задаваемых мышкой через меню
               Mouse modes. Содержит пять переключаемых панелей с полями
               текстового ввода. После изменения значений следует нажать
               кнопку Apply или OK.

          Панель Cycle
               Параметры циклической операции
               
               поле Add N: - число складываемых кадров (фреймов)
               поле Delay: - задержка в секундах для просмотра результата
               поле N cycles: - число циклов, "-1" - означает бесконечно
               кнопки Subtr.BGD и Div.FLAT подключают запуск редукции
               изображений после накопления определённой через меню
               Reduction
          Панель CUT's
               Пределы индикации по интенсивности
               
               поле Bottom: - нижний предел (уровень черного)
               поле Top: - верхний предел (уровень белого)
          Панель Frame
               Положение и размер фрагмента изображения
               
               поля FrameX: и FrameY: - положение левого верхнего угла
               фрагмента
               поля Width: и Height: - ширина и высота фрагмента
          Панель Point
               Положение указателя (креста)
               
               поля X(column): и Y(line): - колонка и строка куда установлен
               указетель
               поле Intensity: - значение в этой точке изображения
          Панель VS56
               Специфические параметры VS56(Tandem)
               
               поле Exposure: - экпозиция накопления на чипе для варианта
               Tandem
               поле El.ref.level: - электронный уровень АЦП VS56


                                  27.01.99
                                                 Отдел Информатики.
                                                           Шергин В.