All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lenski <dlenski@gmail.com>
To: linux-bluetooth <linux-bluetooth@vger.kernel.org>
Subject: Re: detecting BLE compatibility of an adapter?
Date: Mon, 24 Aug 2015 14:11:46 -0700	[thread overview]
Message-ID: <CAOw_LSHt=zuBsf03cUX-6KOTMCu+R8t_Crm7843J=ZHjVg0LhA@mail.gmail.com> (raw)
In-Reply-To: <65E45719-1EA7-4EE0-A77D-5CFBD4A424F5@holtmann.org>

On Mon, Aug 24, 2015 at 11:09 AM, Marcel Holtmann <marcel@holtmann.org> wrote:
>>>> Does Bluez provide a way to detect the compatibility of a Bluetooth
>>>> adapter with Bluetooth 4.0/Low Energy?
>>>
>>> That would be the mgmt settings bit number 9 (see doc/mgmt-api.txt).
>>> bluetoothd keeps track of this (and enables it automatically if
>>> available) and you should also be able to see it e.g. with "btmgmt
>>> info". The mgmt interface tells you both whether it's supported as well
>>> as whether it's enabled.
>>>
>>
>> Thank you!
>>
>> In the meantime, I found another way to do it, using
>> hci_read_local_features() and checking for the appropriate bit from
>> lmp_features_map, specifically features[4]&0x40.
>>
>> Is there any reason I should prefer one approach over the other?
>
> raw HCI access is a bad idea. Do not do that. The btmgmt info command is what gives you most information.
>
> Index list with 1 item
> hci0:   Primary controller
>         addr 98:58:8A:xx:xx:xx version 6 manufacturer 15 class 0x000000
>         supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy configuration static-addr
>         current settings: powered bondable ssp br/edr le secure-conn
>         name BlueZ
>         short name
> hci0:   Configuration options
>         supported options: public-address
>         missing options:
>
> It will easily tell you if LE is supported and also if it has been enabled.

Actually, I already need raw HCI access because the devices I am
communicating with request a LE connection interval that is
unnecessarily long, and there doesn't seem to be another way to
override this (http://thread.gmane.org/gmane.linux.bluez.kernel/63778/focus=63819).

> The raw features are exposed via /sys/kernel/debug/bluetooth/hci0/features file. However that is not a stable API. That is for manual debugging.

Got it. I'll use the mgmt_* calls for feature detection if they're more stable.

Thanks,
Dan

      reply	other threads:[~2015-08-24 21:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-22  7:35 detecting BLE compatibility of an adapter? Daniel Lenski
2015-08-24  8:30 ` Johan Hedberg
2015-08-24 17:46   ` Daniel Lenski
2015-08-24 18:09     ` Marcel Holtmann
2015-08-24 21:11       ` Daniel Lenski [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAOw_LSHt=zuBsf03cUX-6KOTMCu+R8t_Crm7843J=ZHjVg0LhA@mail.gmail.com' \
    --to=dlenski@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.