我正在尝试编写一款连接到蓝牙低功耗设备(BLE)的程序,然后在更新或给定时间间隔内读取特征。
我的外围设备是德州仪器CC2540 BLE设备。
我的起点是查看来自TI的示例程序,其中包括一个心率监测器:http://processors.wiki.ti.com/index.php/Category:HealthDemo。 然而,这使用了一个USB插头,而我需要使用内部蓝牙4.0调制解调器(稍后将在Android上做它,但现在只使用Windows)。
问题在于,USB插头会创建COM端口,但内部调制解调器不会。我仍然成功地使用32feet API进行扫描,并找到了CC2540。但是,从这里开始,我不知道该怎么做。我尝试过调用connect()方法,但它总是无法连接,要么超时,要么提示有一个断开的网络。
有任何想法为什么会这样发生吗?除了调用我的device.connect()之外,我是否应该做其他事情?
代码片段:
我的外围设备是德州仪器CC2540 BLE设备。
我的起点是查看来自TI的示例程序,其中包括一个心率监测器:http://processors.wiki.ti.com/index.php/Category:HealthDemo。 然而,这使用了一个USB插头,而我需要使用内部蓝牙4.0调制解调器(稍后将在Android上做它,但现在只使用Windows)。
问题在于,USB插头会创建COM端口,但内部调制解调器不会。我仍然成功地使用32feet API进行扫描,并找到了CC2540。但是,从这里开始,我不知道该怎么做。我尝试过调用connect()方法,但它总是无法连接,要么超时,要么提示有一个断开的网络。
有任何想法为什么会这样发生吗?除了调用我的device.connect()之外,我是否应该做其他事情?
代码片段:
BluetoothClient cli;
BluetoothDeviceInfo[] peers;
BluetoothDeviceInfo device;
BluetoothAddress adr;
//... skipping code that finds the device and assigns the address to it.
if (device.InstalledServices.Length != 0)
{
try
{
//MessageBox.Show("attempting to connect");
cli.Connect(device.DeviceAddress, device.InstalledServices[2]);
//tbDeviceInfo.AppendText("\n\nConnected " + device.Connected);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
// i always get this exception.
}
}