Re: Overhead reduction in LE connection establishment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luiz and Jamie,

>> The only reason is: very high expectations of battery life. I recall
>> we played with the slave latency in the past, but we will reevaluate
>> and see if it's a feasible option. Thanks for the suggestion.

I found another reason why the slave latency doesn't fully solve the
problem. The peripheral is not advertising all the time (only on a
key-press to save battery). Thus, a large slave latency doesn't help
when (re-)connecting to the central (e.g. in a cold boot or reboot)
point at which we also expect the first notification latency to be
low.

In fact, unless I can get to deliver the notification before BlueZ
does its post-connection operations (MTU exchange, CCCD write etc ...)
, a large slave latency will probably make things worse. Which leads
me to the question below ...

> We do
> however only reload the device attributes once connecting, to avoid
> heavy io at startup, so if you are restarting bluetoothd it won't
> restore the objects right away.

This reflects what I see.

Then isn't  StartNotify() racy when connecting to bonded peripherals
for the first time after bluetoothd starts?

More specifically, won't the D-Bus API miss notifications when:
1. We have a characteristic in a bonded peripheral for which
notifications when enabled in the CCCD in a prior connection to the
central (BlueZ)
2. Notifications are sent form the peripheral after the connection is
established (without waiting for a CCCD write, which should be
acceptable if the peripheral is bonded)
2. It's the first connection to the peripheral since bluetoothd started
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux