From f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 3 Dec 2011 11:05:10 -0600 Subject: Second part of prior commit --- tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook | 250 ++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook (limited to 'tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook') diff --git a/tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook b/tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook new file mode 100644 index 00000000000..622a6331a01 --- /dev/null +++ b/tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook @@ -0,0 +1,250 @@ + +Сценарии в KStars: интерфейс DCOP +Одна из задач &kstars; - предоставить возможность визуализировать сложные процессы из сценариев. С помощью сценариев (скриптов) вы сможете создать виртуальные туры по небу, или подготовить наглядную презентацию чтобы продемонстрировать основные концепции астрономии (что особенно важно для преподавателей). Можно написать сценарий для &kstars; даже если не все желаемые функции доступны. Итак, несмотря на то, что со временем у нас будет графический интерфейс для написания сценариев, сейчас они должны быть написаны вручную. Эта глава посвящена написанию сценариев &kstars;. +&kde; предоставляет необходимую инфраструктуру (framework) для сценариев - интерфейс DCOP. DCOP расшифровывается как коммуникационный протокол рабочего стола (Desktop Communication Protocol). Посредством DCOP, приложения &kde; могут контролироваться другими приложениями, с (удалённого) терминала, или с помощью текстового сценария. + + +Функции DCOP +Интерфейс &kstars; DCOP содержит следующие функции: + lookTowards( const QString direction ): Центрировать экран на направление, переданное в качестве аргумента. Это может быть название любого объекта на небе, или одно из следующих слов или сокращений: zenith (или z), north (n), northeast (ne), east (e), southeast (se), south (s), southwest(sw), west(w), northwest (nw). + + setRaDec( double ra, double dec ): Центрирует экран на переданные в качестве аргумента экваториальные координаты. + + setAltAz(double alt, double az): Центрирует экран на переданные в качестве аргумента горизонтальные координаты. + + zoomIn(): Увеличивает изображение. + + zoomOut(): Уменьшает изображение. + + defaultZoom(): Устанавливает уровень увеличения = 3 (уровень по умолчанию). + + setLocalTime(int yr, int mth, int day, int hr, int min, int sec): Устанавливает определённую дату и время. + + waitFor( double t ): Приостанавливает выполнение сценария на t секунд. + + waitForKey( const QString k ): Приостанавливает выполнение сценария до тех пор, пока не будет нажата определённая клавиша. С помощью этой функции вы не можете определить комбинации клавиш (таких как &Ctrl;C); используйте простые клавиши. Укажите space чтобы определить пробел. + + setTracking( bool track ): Включить трассировку. + + changeViewOption( const QString option, const QString value ): Изменить параметр вида. Доступно множество параметров; всё что можно изменить в окне Настроить &kstars; может быть также изменено с помощью этой функции. Первый аргумент - название параметра (названия совпадают с названиями в конфигурационном файле kstarsrc), второй аргумент - новое значение. Если вы случайно введёте неправильноле значение, программа завершиться с ошибкой. + + setGeoLocation( const QString city, const QString province, const QString country ): Изменить географическое местоположение на заданный город. Если такого города нет в базе данных, то ничего не произойдёт. + + stop() [clock]: Остановить "часы" симуляции. + + start() [clock]: Запустить "часы" симуляции. + + setScale(float s) [clock]: Установить скорость "часов" симуляции. s=1.0 соответствует реальному течению времени; 2.0 в два раза быстрее, и т.д. + + + + + +Тестирование функций DCOP +Вы можете вызвать функцию DCOP использую программу kdcop. Когда вы запустите kdcop, то увидите список всех запущенных приложений; если &kstars; запущен, то увидите и его. Большинство функций DCOP будут выведены под заголовком KStarsInterface, но функции, связанные с часами, будут под заголовком clock. Дважды щёлкните мышью на названии функции, чтобы выполнить её. Если функция требует параметров, то откроется окно, где вам предложат ввести них. + + + +Написание DCOP-сценария +Функции DCOP могут быть вызваны и из командной строки UNIX, и также могут быть встроены в сценарий командной оболочки. Мы привели пример сценария, который переключается в экваториальные координаты, центрируется на Луну, немного увеличивает её и ускоряет часы до 1 часа в секунду. После слежения за Луной в течении 20 секунд, часы останавливаются, и изображение уменьшается. Вы можете использовать этот сценарий как шаблон для написанию других. Сначала приведём листинг этого сценария, а после объясним его отдельные части. + +#!/bin/bash +#Сценарий KStars: Следим за Луной! +# +KSTARS=`dcopfind -a 'kstars*'` +MAIN=KStarsInterface +CLOCK=clock#1 +dcop $KSTARS $MAIN changeViewOption UseAltAz false +dcop $KSTARS $MAIN lookTowards Moon +dcop $KSTARS $MAIN defaultZoom +dcop $KSTARS $MAIN zoomIn +dcop $KSTARS $MAIN zoomIn +dcop $KSTARS $MAIN zoomIn +dcop $KSTARS $MAIN zoomIn +dcop $KSTARS $MAIN zoomIn +dcop $KSTARS $CLOCK setScale 3600. +dcop $KSTARS $CLOCK start +dcop $KSTARS $MAIN waitFor 20. +dcop $KSTARS $CLOCK stop +dcop $KSTARS $MAIN defaultZoom +## + + +Сохраните этот сценарий в файл с любым именем, которое вам нравится; я предлагаю использовать что-то информативное, например trackmoon.kstars. Выполните следующие команды, чтобы сделать сценарий исполняемым: chmod trackmoon.kstars . Сценарий будет выполнятся после команды ./trackmoon.kstars выполненной в каталоге, который содержит этот сценарий. Помните, что сценарий будет выполняться, только если &kstars; уже запущен. Вы можете использовать в сценарии команду dcopstart чтобы запустить новый экземпляр &kstars;. +А теперь объяснение сценария. Первая строка определяет файл как сценарий командной оболочки BASH. Следующие две строки комментарии (любая строка, начинающаяся со знака # - комментарий, и будет пропущена интерпретатором). Следующие три строки определяют некоторые удобные переменные, которые будут использованы далее. Переменная KSTARS определяет идентификатор текущего процесса &kstars; используя команду dcopfind. MAIN и CLOCK определяют два интерфейса DCOP связанных с &kstars;. +Оставшиеся строки - непосредственные вызовы функций DCOP. Первая команда устанавливает отображение в экваториальных координатах, устанавливая опцию UseAltAz в false (вы можете увидеть все опции, которые использует changeViewOption в конфигурационном файле kstarsrc). Следующая команда центрирует экран на Луну, и автоматически начинается слежение. После этого мы устанавливаем уровень увеличения по умолчанию, и затем увеличиваем изображение в пять раз. Далее увеличиваем скорость хода часов до 1 часа в секунду (3600 секунд - один час), и запускаем часы (если они не были запущены до этого). Следующая команда приостанавливает исполнение сценария на 20 секунд, пока мы наблюдаем, как Луна движется по небу. И, наконец, мы останавливаем часы и устанавливаем уровень увеличения по умолчанию. +Мы надеемся что вы рады возможностям написания сценариев в &kstars;. Если вы создали интересный сценарий, пожалуйста, отправьте его на kstars@30doradus.org; мы посмотрим, что он делает, и опубликуем некоторые на нашей веб-странице. Если у вас есть идеи по улучшению языка сценариев (или любой другой части &kstars;), сообщите нам по адресу kstars-devel@lists.sourceforge.net, или в wishlist на bugzilla. + + + -- cgit v1.2.1