<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 <address></command >. Чтобы выяснить, какое устройство использовалось в последний раз, выполните команду: <command >dcop kbluetoothd DeviceNameCache resolveCachedDeviceName <name></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 записи. Вместо этого резервируют место: <uint valref='rfcommchannel' size='8'/> 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>