summaryrefslogtreecommitdiffstats
path: root/tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-12-03 11:05:10 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-12-03 11:05:10 -0600
commitf7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch)
tree1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-ru/docs/tdeedu/kstars/dcop.docbook
parent85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff)
downloadtde-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.docbook250
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>
+