Question about hci_create_connection and clock offset

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

Hello everyone,

I'm trying to find the fastest possible way to get RSSI values for
Bluetooth devices. So far, my code looks like this:

    dev_id = hci_get_route(NULL);
    num_rsp = hci_inquiry(dev_id, len, max_rsp, NULL, &ii, flags);
    for (i = 0; i < num_rsp; i++) {
	uint16_t myhandle;
	if (hci_create_connection(
		htobs(di.pkt_type & ACL_PTYPE_MASK),
	) < 0) perror("hci_create_con");
	if (hci_read_rssi(sock, myhandle, &rssi, 0) < 0)
		rssi = -127;
	hci_disconnect(sock, myhandle, HCI_OE_USER_ENDED_CONNECTION, 0);

Now, while this works, I feel it's really slow.

Can somebody please enlighten me to the meaning of parameters 3-5 of
hci_create_connection? I also would be grateful for some mid-level
description of the Bluetooth protocol..
What I believe to know is this:

- ptype: Packet types which are allowed for this connection. 
  Intersection of what the device supports and all ACL packet types.

- clock offset: difference in ticks between local device clock and
  target device clock. My limited Bluetooth knowledge made me think that
  when I specify the offset from hci_inquiry, the connection should be 
  created faster, as the clock offset doesn't have to be calculated
  again. However, I don't really see a difference when I just set this
  to 0.

- rswitch: Allow role switch. Not a difference either..

I know that somebody posted a while ago that L2CAP should be preferred
for such tasks, but IIRC, opening an L2CAP connection requires
authentication/pairing while this method doesn't.

Please correct my half-knowledge, where appropriate :-)

Thanks for your help,
Yours, Florian
0666 - Filemode of the Beast

This email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2.;198757673;13503038;p?
Bluez-devel mailing list

[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux