Невозможно отправить данные через порт RFCOMM с помощью libbluetooth,

Я писал программу, которая позволяет машине linux подключаться к устройству Bluetooth и иметь возможность отправлять и получать информацию о нем. Линукс-машина может подключиться к устройству, которое использует чип Bluemod и использует профиль последовательного порта. Я перепробовал много подходов, включая изменение класса адаптер, изменение режима соединения, увеличение MTU. Попытка использовать SSPMODE, однако, поскольку он использует Bluetooth 1.2, я не могу.

Ниже приведен раздел моего кода, написанный на C ++ с использованием библиотеки libBluetooth3-dev.

bool SerialPort::sendString( const char *msg) {

//status is the status of the socket connection > 0 means fine

if (status>=0){

int sentBytes = send(sock,msg,sizeof(msg),0);

if(sentBytes<0){
cout<<"String not Sent" <<endl;
return false;
}
else{
return true;
}
else{
cout<< "SerialPort::sendString(): Port not Open" <<endl;
return false;
}
}

Любая помощь будет высоко ценится, и если у вас есть какие-либо вопросы по этой проблеме, просто прокомментируйте, и я отвечу.

РЕДАКТИРОВАТЬ

Хорошо, просто чтобы добавить больше деталей об этой проблеме. Программа возвращает значение -1 при запуске функции отправки, это означает, что программе не удается отправить байты на порт RFCOMM и, следовательно, невозможно отправить данные на устройство Bluetooth.

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

РЕДАКТИРОВАТЬ 2

Программа возвращает значение -1 только после разрыва соединения, зависает на функции до тех пор, пока соединение не будет потеряно, а затем возвращает значение -1.

0

Решение

Задача ещё не решена.

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


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