Метод Bluez-5.36 StartDiscovery()

Я искал метод StartDiscovery() в библиотеках bluez-5.36 и не смог найти.

Может кто-нибудь сказать, где этот метод реализован?

Упоминается в "adapter-api.txt" каталога "bluez-5.36/doc/".


person Franc M    schedule 15.12.2015    source источник
comment
Как упоминалось в ответе @jorgemartinez, StartDiscovery (и все другие официальные API-интерфейсы bluez) являются API-интерфейсами DBUS. Ваше приложение вызовет это через вызов DBUS. Он будет обслуживаться демоном bluetoothd, который выполняет основную работу. Реализация на стороне bluetoothd для этого API — это функция start_discovery в адаптере . в.   -  person kaylum    schedule 15.12.2015


Ответы (2)


Вы должны установить BlueZ с включенным экспериментальным флагом. BlueZ движется к развитию пользовательского пространства, используя DBus для предоставления «объектов» Bluetooth и связанных с ними методов и свойств.

Если вы установите d-feet, вы действительно сможете проверить методы и типы объектов, описанные в документации API:

sudo apt-get install d-feet

Однако для функций, связанных с GATT, должен быть включен экспериментальный флаг. Если вы не знаете, как включить экспериментальный флаг, вы можете просто запустить sudo bluetoothd -E, чтобы включить демона Bluetooth с экспериментальным флагом. Соответствующие интерфейсы GattManager1 и тому подобное будут опубликованы в интерфейсе DBus, который, опять же, я настоятельно рекомендую использовать d-feet, чтобы получить представление о том, как все это работает.

Если вы ищете исходный код и документацию/помощь по использованию и программированию с помощью DBus API, вы можете проверить мой ответ здесь.

person Zimano    schedule 17.12.2015

То есть использовать bluez через D-Bus API и GATT. Чтобы получить доступ к этой функции, вам необходимо скомпилировать bluez с некоторыми экспериментальными функциями (API GATT/D-Bus все еще является экспериментальным). Затем вы можете использовать API D-Bus для доступа к адаптеру и выполнения на нем методов (Start/StopDiscovery).

Пожалуйста, взгляните на этот проект: https://github.com/jomarmar/bluez-experimental . Это просто форк bluez с некоторыми изменениями, чтобы активировать экспериментальную функцию GATT API.

person Jorge Martinez    schedule 15.12.2015