我正在制作我的第一个蓝牙LE应用程序,需要一些如何处理的建议。
我需要有笔记本电脑等设备(Windows,Linux,OSX,无所谓),跟踪设备(iOS和Android)何时进入蓝牙LE系列。这些设备将运行使用BT LE的应用程序。每个移动设备应用程序都将具有笔记本电脑将收集的唯一ID(可能是用户ID)。我需要这样做而无需用户交互。而已。
外围和中心应该是哪一个?
笔记本电脑应该是这个应用程序的核心吗?
我还看到了蓝牙应用中使用的GATT服务器。使用GATT服务器比使用外设和中心更有意义吗?
答案 0 :(得分:1)
我目前正在为Core Bluetooth
构建一个基于开源块的包装器。
我会使用笔记本电脑作为Central Manager
来监听所有外围设备。
iDevice将是Peripheral Manager
广播本身及其服务&特点。
可悲的是,我没有开发Windows和BLE的经验,但我的框架在iOS和OSX上工作,我没有发送或发现彼此的问题。
关于制作外围设备时iOS上的唯一ID,您使用CBUUID
进行广播。这可以用于唯一地标识外围设备,因为它是GUID。
为了实现这一切,应用程序需要在后台运行,否则外围设备的广播将被终止。
答案 1 :(得分:0)
我现在已经发布了我的Core Bluetooth Manager的第一部分。 V1.0目前只有Central管理器部分,但Peripheral Manager部分正在开发中。
下载答案 2 :(得分:0)
请注意,您只需去结帐https://github.com/SocialObjects-Software/LGBluetooth
即可以下是使用LGBluetooth的绝佳示例(注意:偶数连接由框架处理)
阅读操作
[LGUtils readDataFromCharactUUID:@"f045" serviceUUID:@"5ec0" peripheral:peripheral completion:^(NSData *data, NSError *error) { NSLog(@"Data : %s Error : %@", (char *)[data bytes], error); }];
写入操作
int8_t dataToWrite = 0xFF; [LGUtils writeData:[NSData dataWithBytes:&dataToWrite length:sizeof(dataToWrite)] charactUUID:@"cef9" serviceUUID:@"5ec0" peripheral:peripheral completion:^(NSError *error) { NSLog(@"Error : %@", error); }];