无法使用libbluetooth通过RFCOMM端口发送数据,

时间:2015-02-16 14:13:47

标签: c++ c linux bluetooth rfcomm

我一直在编写一个程序,允许linux机器连接到蓝牙设备,并能够发送和接收它的信息。 linux机器能够与该设备配对,该设备使用漫步者Bluemod芯片并设置了串行端口配置文件。我尝试了很多方法,包括更改adapter的类,更改链接模式,增加MTU。尝试使用SSPMODE,因为它使用蓝牙1.2我不能。

Bellow是我的代码的一部分,它是用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端口,因此无法将数据发送到蓝牙设备。

该程序运行并编译正常,我只是没有得到我期望的输出,它能够扫描蓝牙设备,连接到它们,从它们接收信息,但因为它无法发送信息到连接最终下降的设备。

编辑2

一旦连接中断,程序只返回值-1,它会挂起函数,直到连接丢失,然后返回值-1。

0 个答案:

没有答案