通过蓝牙32Feet连接HC-06设备时出现端口错误异常

时间:2015-11-03 19:41:39

标签: c# sockets bluetooth 32feet

我想接收来自HC-06设备到PC的消息,我正在使用32feet library来管理蓝牙,但每当我尝试连接时,我都会遇到异常。

HC-06使用SPP (Serial Port Profile),因此我们的想法是在设备管理器中使用虚拟COM端口。然后使用SerialPort类进行通信。

异常

  

System.Net.Sockets.SocketException(0x80004005):连接尝试   失败,因为关联方在a之后没有正确回应   一段时间,或建立的连接失败,因为连接   主机无法响应我的蓝牙   地址:at   System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,   SocketAddress(socketAddress)at   System.Net.Sockets.Socket.Connect(EndPoint remoteEP)at   InTheHand.Net.Bluetooth.Msft.SocketBluetoothClient.Connect(BluetoothEndPoint   remoteEP)at   InTheHand.Net.Sockets.BluetoothClient.Connect(BluetoothEndPoint   remoteEP)....

当前C#代码:

string my_pin ="1234";  //default pin for HC-06 device
BluetoothAddress address = BluetoothAddress.Parse("201311111662"); //address of HC-06
BluetoothEndPoint ep = new BluetoothEndPoint(address, BluetoothService.SerialPort);
bool t = false;
BluetoothSecurity.PairRequest(address, my_pin);
BluetoothClient cli = new BluetoothClient();
cli.Connect(ep);
t = cli.Connected;

此外,我尝试使用RFCommProtocol(服务类)而不是SerialPort BluetoothEndPoint ep = new BluetoothEndPoint(address, BluetoothService.SerialPort);但没有成功

要做一些测试,HC-06设备实际上是sendind消息我使用Realterm软件检查出来,我在终端COM8 PORT 8=\BthModem0中分配波特率9600并且消息出现在终端。 BthModem通过TDI接口将所有I / O和控制操作定向到RfComm

我错过了什么?我是否必须使用虚拟连接或其他内容以便获取HC-06消息?

1 个答案:

答案 0 :(得分:1)

如果这是一个“正常”的Windows应用程序(而不是Windows应用商店应用程序),则使用SerialPort class可能更容易。