How to get bluetooth HID reports?

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

 



Hello,

I got stuck with trying to read data from a bluetooth HID device.

Is there some trick when doing this?

Short snippet of my code:



// allocate a socket
int int_socket = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);
int ctl_socket = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);

// set the connection parameters
addr.l2_family = AF_BLUETOOTH;
str2ba( dest, &addr.l2_bdaddr );

// connect to server
addr.l2_psm = htobs(L2CAP_PSM_HIDP_INTR);
status = connect(int_socket, (struct sockaddr *)&addr, sizeof(addr));
if (status != 0) {
  printf("Error connect int_socket\n");
  exit(1);
}
addr.l2_psm = htobs(L2CAP_PSM_HIDP_CTRL);
status = connect(ctl_socket, (struct sockaddr *)&addr, sizeof(addr));
if (status != 0) {
  printf("Error connect ctl_socket\n");
  exit(1);
}

// get a message
char buf[100] = { 0 };
int bytes_read = recv(int_socket, buf, sizeof(buf), 0);
if( bytes_read > 0 ) {
  printf("received [%s]\n", buf);
}



I get connected somehow and I am actually able to do interaction on the "control socket" (writing and reading), but the "recv" at the "interrupt socket" just hangs forever and I don't know how to debug...

Thanks for every help.

Best regards,

Manuel
--
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