МО граберов ТВ каналов 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 за исключением нескольких
упрощений:
-
tvimage - интерфейсная программа-клиент
под X11.
Язык разработки - C++ с использованием библиотеки Qt.
Цифровой параметр задает один из 4-х ТВ-каналов для работы с
которым она запускается:
tvimage [-cmap] 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
подменю:
-
-
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
<Ctrl+F>
-
запись изображения в FITS-файл *.mt,
-
на экране появляется стандартное окно для выбора справочника и файла, поскольку
справочники пользователей основных наблюдательских машин tb,cpf,n2
сейчас обычно смонтированы в справочнике /comp появляется
возможность записи изображений прямо в основной ахив БТА:
-
/comp/tb/data/archives.bta/NICE/b9126
-
или в сравочник где идет регистрация
-
например: /comp/cpf/obs/CCD/9126/
-
и последующей обработки их в MIDAS-е
на машине наблюдателя
-
Load FITS <Ctrl+L>
-
считывание изображения из FITS-файла *.mt
-
или gzip-компрессированного *.mt.gz,
-
на экране появляется стандартное окно для выбора справочника и файла
-
Exit
<Ctrl+Q>
- выход из программы
-
VS56(VS60) action - меню операций с VS56(VS60):
-
Get single image
<Ctrl+1>
-
считать 1 изображение или 1 фрейм
-
Get ten images
<Ctrl+0>
-
выполнить 10 считываний
-
Get infinitely
<Ctrl+G>
-
вкл. непрерывное считывание с макс.скоростью
-
может вызвать
перегрузку компьютера и сети!
-
если возникли трудности с остановом мышкой через меню - использовать <Ctrl+S>
,
-
можно использовать в режиме полного кадра только на канале "Tandem" при
достаточно большом времени экспозиции, для остальных (обычных) ТВ-каналов
рекомендуется устанавливать фрейм небольшого размера
-
Stop inf.mode
<Ctrl+S>
-
остановить непрерывное чтение или циклические операции или экспозицию в канале "Tandem"
-
Add one <Ctrl+A>
-
считать 1 кадр или фрейм и сложить с текущим изображением
-
Add ten <Ctrl+T>
-
выполнить 10 считываний со сложением
-
Add inf-ly
<Ctrl+C>
-
вкл. непрерывное сложение с макс.скоростью - может вызвать перегрузку!
-
Start cycling
<Ctrl+N>
-
запуск циклических операций (накопление нескольких кадров с возможной
последующей обработкой, настройка через вызов Opt.Window в меню
Options)
-
Erase <Ctrl+R>
-
обнулить изображение
-
Write <Ctrl+W>
-
записать мл.байт изображения обратно в память грабера (для визуализации
на дополнительном мониторе)
-
Init <Ctrl+I>
-
повторить начальную инициализацию VS56 при возникновении "нештатных" ситуаций
-
Mouse modes - меню изменения режимов использования мышки
при изменении режима меняется тип курсора на экране:
-
Modify CUTs <Shift+M>
-
CUT-ы (пределы индикации по интенсивности) имеют тотже смысл что и в MIDAS-e;
движением курсора с 1-й кнопкой меняется нижний CUT, 3-й - верхний,
2-й - оба
-
Set Frame <Shift+S>
-
установка фрагмента изображения, нажать кнопку влевом вехнем углу фрагмента
и вести курсор вправо вниз, выбор небольшого фрагмента позволяет сущесвенно
ускорить как процесс считывания из грабера так и передачу изображения по
сетям
-
Set Line <Shift+G>
-
формирование линии при движении мышкой с нажатой кнопкой, после отпускания
рисуется разрез вдоль линии
-
Set Point <Shift+P>
-
при нажатии на кнопку запомнить координаты точки под курсором,
установить на нее указатель (крест)
и показать
значение в этой точке;
-
No Mouse <Shift+N>
-
отключить режимы мыши
-
Options - меню установки параметров:
-
Calculate CUTs <Shift+C>
-
определение минимума, максимума, медианы, среднего и дисперсии в изображении
или фрейме и установка пределов индикации по интенсивности (CUT-ов) "на
фон" т.е. как ~+-2дисперсии от среднего, после чего их можно подправить
мышкой
-
Change Format <Shift+F>
-
переключение между вариантами инициализации VS56 для данного канала (768х512
<-> 512х512)
-
Reset Frame <Shift+R>
-
отмена режима работы с фрагментом изображения установленным мышкой (т.е.
снова полный кадр)
-
Set Exposure <Shift+X>
-
установка экпозиции накопления на чипе для варианта Tandem (сейчас 1-й
канал)
-
Set El.Ref.Lev. <Shift+E>
-
установка электронного уровня на котором будет работать АЦП VS56 для данного
канала: 0-63, исходный - 60
-
Load LUT <Shift+L>
-
загрузка файла таблицы раскраски *.lut; все взяты из MIDAS-а;
при старте загружается полутоновая ramp.lut
(: в данном варианте программы
эта функция плохо работает на 8-битных дисплеях, т.к. новая таблица не
подменяет текущую, а добавляется к ней)
-
Load ITT <Shift+I>
-
загрузка таблицы преобр-я интенсивности *.itt;
все взяты из MIDAS-а;
при старте без преобразования - ramp.itt
-
Display LUT <Shift+D>
-
вкл./выкл. внизу окна полоску с равномерно меняющейся интенсивностью которая
показывает работу LUT+ITT
-
Show Opt.Window <Shift+O>
-
вывод окна просмотра/изменения параметров программы ранее задаваемых мышкой
-
CCD-spec. - меню специальных функций для борьбы с последствиями
несинхронной оцифровки грабером ПЗС-камер:
-
Calc BgdRow <Shift+B>
-
рассчитать, запомнить и показать строку среднего фона путем осреднения
всех строк кадра, это естественно лучше сделать после накопления нескольких
темновых кадров
-
Vid ->ccd (Use &BgdRaw online)
-
CCD ->vid (Don't use &BgdRow)
-
<Shift+V>
-
вкл/выкл в драйвере режима считывания с грабера с вычитанием средней темновой
строки "на ходу"
-
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 <Ctrl+B>
-
считывание файла фона и вычитание его из текущего изображения с учетом
количества накопленных кадров в обоих (фон приводится к изображению)
-
Divide by FLAT <Ctrl+D>
-
считывание файла плоского поля и деление на него текущего изображения с
сохранением среднего уровня оного
-
(Image-BGD)/FLAT <Ctrl+M>
-
выполнение обеих операций сразу
-
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,
либо клавишей <Shift+O>
Оно служит по большей части (но не только) для просмотра/изменения параметров
задаваемых мышкой через меню 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
Отдел
Информатики.
Шергин В.