Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > b6fa5420ec86d17b3baf11842f0f1e6e > files > 288

kdebluetooth-1.0-0.beta8.8mdv2008.1.x86_64.rpm

<chapter id="developers">
<title
>Информация для разработчиков</title>

<sect1 id="developers.kbluetoothd">
<title
>KBluetoothD</title>
<para
>Раздел описывает способы интеграции kbluetoothd с приложениями сторонних разработчиков и его вызов для поиска имен беспроводных устройств в кэше. </para>

<sect2>
<title
>Кэш имен </title>
<para
>Кэш имен отслеживает все запросы имен устройств и сохраняет результаты. Другие приложения, kbluetoothd в том числе, могут найти имя устройства Bluetooth по уникальному адресу, даже если устройство в данный момент не подключено. Работа с кэшем имен позволяет создать дружественный интерфейс. Пользователю легче запомнить имя устройства Bluetooth, а не его MAC адрес (пример MAC адреса: 00:60:AB:13:83:3D). </para>
<para
>После выхода BlueZ со встроенным улучшенным кэшем имен потребность в этой функции отпадет. </para>
<para
>Кэш имен может быть доступен через dcop. Для запуска поиска адреса устройства в кэше имен из коммандой строки введите команду: <command
>dcop kbluetoothd DeviceNameCache getCachedDeviceName &lt;address&gt;</command
>. Чтобы выяснить, какое устройство использовалось в последний раз, выполните команду: <command
>dcop kbluetoothd DeviceNameCache resolveCachedDeviceName &lt;name&gt;</command
>. Команды не чувствительны к регистру. Помните, что несколько устройств могут быть сконфигурированы под одним именем. </para>
</sect2>

<sect2>
<title
>Мета-сервер</title>
<para
>Для подключения поддержки протокола Bluetooth серверным приложением интегрируйте это приложение с kbluetoothd. В этом случае сервер будет запускаться автоматически. </para>
<para
>Вам необходим XML-файл с описанием SDP-записи и соответствующий файл desktop. Kbluetoothd автоматически создаст SDP-запись, назначит канал rfcomm и начнет прослушивание выбранного канала. При попытке соединении с сервисом kbluetoothd подхватит соединение и предоставит ему сокет. Номер указателя будет передан как аргумент командной строки.  </para>
<para
>Пакет программ kdebluetooth состоит из <command
>kbtserialchat</command
> - очень простой пример программы по интеграции приложений с kdebluetooth, которая предназначена для отладки и общения в чатах. Так как kbtserialchat является одновременно и сервером, и клиентом, нет необходимости указывать все аргументы в командной строке, как это делает kbtserialchat, тем более не нужно указывать URL SDP записей. </para>
<para
>XML-файл описания записи SDP должен содержать полное описание и соответствовать структуре записи. Рассмотрим подробнее, как параметр выбранного rfcomm канала попадает в SDP запись сервера. Так как kbluetoothd выбирает канал автоматически,  нельзя закодировать его в регистрационный файл SDP записи. Вместо этого резервируют место: &lt;uint valref='rfcommchannel' size='8'/&gt; Rfcomm каналы, используемые при подключении, определены в соответствующем ярлыке. В первую очередь тестируются каналы: <varname
>X-KDE-KBLUETOOTHD-port</varname
>. <varname
>X-KDE-KBLUETOOTHD-autoPortRange</varname
> содержит номера занятых сервисами каналов в порядке возрастания. </para>
<para
>В данный момент kbluetoothd поддерживает только rfcomm, при необходимости может быть добавлена поддержка l2cap или ему подобных. </para>
</sect2>

<sect2 id="developers.kbluetoothd.discovery">
<title
>Сервис поиска устройств</title>
<para
>kbluetoothd осуществляет активный поиск доступных устройств и выполняет все необходимые действия при подключении или отключения устройства. Сервис kbluetoothd может быть настроен в модуле панели управления, вкладка "Поиск устройств". </para>
<para
>Список <emphasis
>активных</emphasis
> заданий поиска представляет собой список исполняемых файлов каталога <filename
>$HOME/.kde/share/apps/kbluetoothd/discovery_jobs/</filename
>. Вы можете добавить новые скрипты в каталог общих шаблонов <filename
>$PREFIX/share/apps/kdebluetooth/job-templates/</filename
>. Скрипты с расширением ".template" из этого каталога будут отображены в списке "Добавить новое задание..." . При выборе пользователем скрипта он будет скопирован в каталог активных заданий домашнего каталога пользователя. </para>
<para
>Скрипты этого каталога разделены на две части, для того чтобы обновлять их без переустановки. Скрипты с расширением ".template" хранят редактируемые пользователем настройки. Они копируются в домашний каталог пользователя и при запуске вызывают основной скрипт с расширением ".real", который находится в каталоге шаблонов. </para>
<para
>Для того чтобы создать собственное задание, щелкните на "Добавить новое задание...", выберите <phrase
>Типовое_Задание</phrase
>. Файл <filename
>Custom_Job.template</filename
> будет скопирован в ваш домашний каталог. Для изменения параметров запуска скрипта выберите "Настроить...". Скрипт выведет список всех доступных для изменения параметров команды командной строки и список переменных среды, к которым у вас есть доступ. </para>
<para
>Будьте осторожны при редактировании шаблона скрипта, так как все изменения пропадут, если вы удалите его из списка активных заданий. Для распространения скрипта, как типового,  разделите его на две части: часть настроек и основную часть. </para>

<para
>Для выгрузки, загрузки или удаления файлов при выполнении скрипта задания используйте вызов компонента <link linkend="components.othertools.kioclient"
>kioclient</link
>. </para>
<para
>Если вы написали удачный скрипт для поиска устройств, мы с удовольствием включим его в дистрибутив. </para>
</sect2>

</sect1>
</chapter>