Невозможно прочитать из / dev / rfcomm

Я пытаюсь подключить свою цель к мобильному устройству через профиль SPP blue-tooth.
Как только соединение Bluetooth установлено, делается запрос на создание канала rfcomm для связи.

output of
ls -all /dev/rfcomm0
crw-rw-rw-    1 root     dialout   216,   0 Jan  1 00:02 /dev/rfcomm0

После создания устройства rfcomm в моем коде я открываю файл и записываю в него данные.

fd = open('/dev/rfcomm0', O_RDWR | O_NOCTTY | O_SYNC);
write(write(fd, &sendBuffer[0], sendBuffer.size())

пиши успешно.
еще раз, если я пытаюсь прочитать данные через rfcomm, код не продолжается.

read(fd, recvbuf, recvbuflen)

Поскольку чтение не работало, я попытался закрыть дескриптор файла и снова открыть его.

На этот раз он не может открыть / dev / rfcomm0. Возвращает -1.

Пожалуйста, направляй туда, где мне не хватает.

Также я новичок в этом, так что если есть какие-либо документы по Bluetooth SPP с использованием C ++.

0

Решение

Нашел решение, мобильное приложение, к которому я пытался подключиться, использует другой UUID для связи. Если я запускаю соединение, используя UUID, определенный приложением, я могу правильно читать и записывать данные.

Но все же у меня есть один запрос, спецификация Bluetooth определяет UUID для своих профилей.

For SPP it is 0x0003.

В моем случае навигационное устройство взаимодействует с приложением Android с помощью профиля SPP, но использует UUID, отличный от 0x0003.

Так значит ли это, что приложение для Android может выбрать любой случайный уникальный UUID, кроме того, что указано в спецификации для связи через SPP?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]