diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
commit | f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch) | |
tree | 1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook | |
parent | 85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff) | |
download | tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip |
Second part of prior commit
Diffstat (limited to 'tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook')
-rw-r--r-- | tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook | 250 |
1 files changed, 250 insertions, 0 deletions
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 @@ +<chapter id="dcop"> +<title +>Сценарии в KStars: интерфейс DCOP</title> +<para +>Одна из задач &kstars; - предоставить возможность визуализировать сложные процессы из сценариев. С помощью сценариев (скриптов) вы сможете создать <quote +>виртуальные туры</quote +> по небу, или подготовить наглядную презентацию чтобы продемонстрировать основные концепции астрономии (что особенно важно для преподавателей). Можно написать сценарий для &kstars; даже если не все желаемые функции доступны. Итак, несмотря на то, что со временем у нас будет графический интерфейс для написания сценариев, сейчас они должны быть написаны вручную. Эта глава посвящена написанию сценариев &kstars;. </para> +<para +>&kde; предоставляет необходимую инфраструктуру (framework) для сценариев - интерфейс <abbrev +>DCOP</abbrev +>. <abbrev +>DCOP</abbrev +> расшифровывается как <quote +>коммуникационный протокол рабочего стола</quote +> (<quote +>Desktop Communication Protocol</quote +>). Посредством <abbrev +>DCOP</abbrev +>, приложения &kde; могут контролироваться другими приложениями, с (удалённого) терминала, или с помощью текстового сценария. </para> + +<sect1 id="dcop-interface"> +<title +>Функции DCOP </title> +<para +>Интерфейс &kstars; <abbrev +>DCOP</abbrev +> содержит следующие функции: <itemizedlist> +<listitem +><para +><function +> lookTowards( const QString direction )</function +>: Центрировать экран на направление, переданное в качестве аргумента. Это может быть название любого объекта на небе, или одно из следующих слов или сокращений: zenith (или z), north (n), northeast (ne), east (e), southeast (se), south (s), southwest(sw), west(w), northwest (nw). </para +></listitem> + +<listitem +><para +><function +> setRaDec( double ra, double dec )</function +>: Центрирует экран на переданные в качестве аргумента экваториальные координаты. </para +></listitem> + +<listitem +><para +><function +> setAltAz(double alt, double az)</function +>: Центрирует экран на переданные в качестве аргумента горизонтальные координаты. </para +></listitem> + +<listitem +><para +><function +> zoomIn()</function +>: Увеличивает изображение. </para +></listitem> + +<listitem +><para +><function +> zoomOut()</function +>: Уменьшает изображение. </para +></listitem> + +<listitem +><para +><function +> defaultZoom()</function +>: Устанавливает уровень увеличения = 3 (уровень по умолчанию). </para +></listitem> + +<listitem +><para +><function +> setLocalTime(int yr, int mth, int day, int hr, int min, int sec)</function +>: Устанавливает определённую дату и время. </para +></listitem> + +<listitem +><para +><function +> waitFor( double t )</function +>: Приостанавливает выполнение сценария на t секунд. </para +></listitem> + +<listitem +><para +><function +> waitForKey( const QString k )</function +>: Приостанавливает выполнение сценария до тех пор, пока не будет нажата определённая клавиша. С помощью этой функции вы не можете определить комбинации клавиш (таких как <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +>); используйте простые клавиши. Укажите <quote +>space</quote +> чтобы определить пробел. </para +></listitem> + +<listitem +><para +><function +> setTracking( bool track )</function +>: Включить трассировку. </para +></listitem> + +<listitem +><para +><function +> changeViewOption( const QString option, const QString value )</function +>: Изменить параметр вида. Доступно множество параметров; всё что можно изменить в окне <guilabel +>Настроить &kstars;</guilabel +> может быть также изменено с помощью этой функции. Первый аргумент - название параметра (названия совпадают с названиями в конфигурационном файле <filename +>kstarsrc</filename +>), второй аргумент - новое значение. Если вы случайно введёте неправильноле значение, программа завершиться с ошибкой. </para +></listitem> + +<listitem +><para +><function +> setGeoLocation( const QString city, const QString province, const QString country )</function +>: Изменить географическое местоположение на заданный город. Если такого города нет в базе данных, то ничего не произойдёт. </para +></listitem> + +<listitem +><para +><function +> stop()</function +> [clock]: Остановить "часы" симуляции. </para +></listitem> + +<listitem +><para +><function +> start()</function +> [clock]: Запустить "часы" симуляции. </para +></listitem> + +<listitem +><para +><function +> setScale(float s)</function +> [clock]: Установить скорость "часов" симуляции. s=1.0 соответствует реальному течению времени; 2.0 в два раза быстрее, и т.д. </para +></listitem> +</itemizedlist> +</para> +</sect1> + +<sect1 id="dcop-test"> +<title +>Тестирование функций DCOP</title> +<para +>Вы можете вызвать функцию DCOP использую программу <application +>kdcop</application +>. Когда вы запустите <application +>kdcop</application +>, то увидите список всех запущенных приложений; если &kstars; запущен, то увидите и его. Большинство функций <abbrev +>DCOP</abbrev +> будут выведены под заголовком <quote +>KStarsInterface</quote +>, но функции, связанные с часами, будут под заголовком <quote +>clock</quote +>. Дважды щёлкните мышью на названии функции, чтобы выполнить её. Если функция требует параметров, то откроется окно, где вам предложат ввести них. </para> +</sect1> + +<sect1 id="dcop-script"> +<title +>Написание DCOP-сценария</title> +<para +>Функции <abbrev +>DCOP</abbrev +> могут быть вызваны и из командной строки UNIX, и также могут быть встроены в сценарий командной оболочки. Мы привели пример сценария, который переключается в экваториальные координаты, центрируется на Луну, немного увеличивает её и ускоряет часы до 1 часа в секунду. После слежения за Луной в течении 20 секунд, часы останавливаются, и изображение уменьшается. Вы можете использовать этот сценарий как шаблон для написанию других. Сначала приведём листинг этого сценария, а после объясним его отдельные части. </para> +<para> +<programlisting +>#!/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 +## +</programlisting> +</para> +<para +>Сохраните этот сценарий в файл с любым именем, которое вам нравится; я предлагаю использовать что-то информативное, например <filename +>trackmoon.kstars</filename +>. Выполните следующие команды, чтобы сделать сценарий исполняемым: <userinput +><command +>chmod</command +> <option +>a+x</option +> <parameter +>trackmoon.kstars</parameter +> </userinput +>. Сценарий будет выполнятся после команды <userinput +><command +>./trackmoon.kstars</command +></userinput +> выполненной в каталоге, который содержит этот сценарий. Помните, что сценарий будет выполняться, только если &kstars; уже запущен. Вы можете использовать в сценарии команду <command +>dcopstart</command +> чтобы запустить новый экземпляр &kstars;. </para> +<para +>А теперь объяснение сценария. Первая строка определяет файл как сценарий командной оболочки <command +>BASH</command +>. Следующие две строки <firstterm +>комментарии</firstterm +> (любая строка, начинающаяся со знака <quote +>#</quote +> - комментарий, и будет пропущена интерпретатором). Следующие три строки определяют некоторые удобные переменные, которые будут использованы далее. Переменная <varname +>KSTARS</varname +> определяет идентификатор текущего процесса &kstars; используя команду <command +>dcopfind</command +>. <varname +>MAIN</varname +> и <varname +>CLOCK</varname +> определяют два интерфейса <abbrev +>DCOP</abbrev +> связанных с &kstars;. </para> +<para +>Оставшиеся строки - непосредственные вызовы функций <abbrev +>DCOP</abbrev +>. Первая команда устанавливает отображение в экваториальных координатах, устанавливая опцию <quote +>UseAltAz</quote +> в <quote +>false</quote +> (вы можете увидеть все опции, которые использует <quote +>changeViewOption</quote +> в конфигурационном файле <filename +>kstarsrc</filename +>). Следующая команда центрирует экран на Луну, и автоматически начинается слежение. После этого мы устанавливаем уровень увеличения по умолчанию, и затем увеличиваем изображение в пять раз. Далее увеличиваем скорость хода часов до 1 часа в секунду (3600 секунд - один час), и запускаем часы (если они не были запущены до этого). Следующая команда приостанавливает исполнение сценария на 20 секунд, пока мы наблюдаем, как Луна движется по небу. И, наконец, мы останавливаем часы и устанавливаем уровень увеличения по умолчанию. </para> +<para +>Мы надеемся что вы рады возможностям написания сценариев в &kstars;. Если вы создали интересный сценарий, пожалуйста, отправьте его на <email +>kstars@30doradus.org</email +>; мы посмотрим, что он делает, и опубликуем некоторые на нашей веб-странице. Если у вас есть идеи по улучшению языка сценариев (или любой другой части &kstars;), сообщите нам по адресу <email +>kstars-devel@lists.sourceforge.net</email +>, или в wishlist на bugzilla. </para> +</sect1> +</chapter> + |