Hello, I've been working on the MIDI profile plugin for bluetoothd. This profile requires the lowest latency and connection interval possible. In order to do that we need to update the connection parameters. There are two ways of doing it, first is upon connection (HCI_LE_Create_Connection) and second is updating current connection link (HCI_LE_Connection_Update). The first time an LE slave (MIDI controller) device is connected to BlueZ, the plugin should be able to set this parameters for current connection and save these settings for persistence purposes. As of today, bluetoothd does support the persistence mechanist, which is triggered by a mgmt's New Connection Parameter (0x001c) command, which in turn is triggered by L2CAP Connection Parameter Update Request or a HCI LE Remote Connection Parameter Request (BT 4.1). As mentioned before, this is not enough. Specially because in practice LE slave devices don't send a any of those two requests mentioned above. My idea is to set the connection parameter using HCI_LE_Connection_Update if one of the host controllers, master or slave, only supports 4.0. Then update the device info file with current ConnectionParameters for persistence. In case both controllers support 4.1 and above, we should use the Connection Parameters Request Procedure (BT 4.1 Vol 6 Part B §5.1.17) in order to negotiate what is the best parameters for the connection. I hope this makes sense. If not, I appreciate your comments. :) -- Felipe
Attachment:
0x92698E6A.asc
Description: application/pgp-keys