Bluetooth-соединение с использованием разъема rfcomm - PullRequest
3 голосов
/ 29 марта 2011

У меня есть два устройства Bluetooth, и я пытаюсь установить два соединения rfcomm, по одному на каждое устройство.

Я использую разъем bluez rfcomm

addr.rc_family = AF_BLUETOOTH;
addr.rc_channel = (uint8_t) 1;
str2ba( dest, &addr.rc_bdaddr );

// connect to server
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

// set disconnect timeout to 2sec
struct timeval tv;
tv.tv_sec = 2;
setsockopt(s, SOL_SOCKET, SO_RCVTIMEO,(struct timeval *)&tv,sizeof(struct timeval));

// make connection
status = connect(s, (struct sockaddr *)&addr, sizeof(addr));

Как выбратьустройство для подключения?

Ответы [ 3 ]

1 голос
/ 17 апреля 2011

Я считаю, что bluez поддерживает до 16 ключей.

Вас может заинтересовать код в этом проекте: http://diy -machine.blogspot.com /

1 голос
/ 26 апреля 2011

Вы должны вызвать bind () перед подключением ().

Взгляните на это:

https://github.com/matlo/l2cap_proxy/blob/master/l2cap_con.c#L197

Это l2cap, но я думаю, что это такжевозможно для rfcomm.

0 голосов
/ 30 марта 2011

вы не можете сделать это, стек bluez будет работать только на одном ключе, т.е. на локальном устройстве bluetooth в любое время.

Чтобы иметь один экземпляр управления стеком Bluetooth, 2 локальных ключа Bluetooth будут большим изменением в стеке bluez.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...