OGeek|极客世界-中国程序员成长平台

标题: ios - 蓝牙外围设备不响应 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:55
标题: ios - 蓝牙外围设备不响应

我的考试遇到了大麻烦。 我必须编写一个使用德州仪器制造的外部传感器的 iOS 应用程序,它被称为 TI Sensortag . 以我的拙见,TI 的文档对于入门级程序员来说确实很差且难以理解。 我试图在 E2E 论坛上提问,但他们无法帮助我,他们的回答是“嗯,好吧,我们不知道,你去问问别人吧”,...

我将 CoreBluetooth 框架添加到我的项目中并创建了一个 CentralManager。我能够找到我的设备、连接并获取他的姓名和(有时)他的 RSSI。 现在我要做的是询问我的 CBPeripheral 对象是否为我提供一些服务或类似的东西。我找到了 Complete Attribute Table但我不知道如何使用它...... 我知道我必须激活一些服务或类似的东西,但我现在真的不想这样做,我搜索了很多,但我没有找到有用的东西......

我正在尝试使用此方法启用我的传感器,但我做错了。

-(void) configureSensorTag
{
    
    uint8_t myData = 0x01;
    
    NSData *data = [[NSData alloc] initWithBytes:&myData length:1];
    
    [BLEUtility writeCharacteristic:myPer sUUID"F000AA00-0451-4000-B000-000000000000" cUUID"F000AA02-0451-4000-B000-000000000000" data:data];
        
    [BLEUtility setNotificationForCharacteristic:myPer sUUID"F000AA00-0451-4000-B000-000000000000" cUUID"F000AA01-0451-4000-B000-000000000000" enable:YES];
    

    NSLog(@"Configured TI SensorTag IR Termometer Service profile");

}

此外,我正在尝试使用此方法检索 Sensortag 的服务

[peripheral discoverServices:nil];

和他的代表

- (void)peripheralCBPeripheral *)peripheral didDiscoverServicesNSError *)error
{
    NSLog(@"Found service");
    if (error) {
        NSLog(@"Error: %@", error);
    }
    
}

但它永远不会被调用。

有人知道吗?

非常感谢!



Best Answer-推荐答案


很遗憾,我无法帮助您了解 iOS 的详细信息,但我可以帮助您了解传感器标签。如果您查看链接的该属性 PDF,您会发现标记为“GATT_CLIENT_CHAR_CFG_UUID”的条目。它是 16 位标志,其中仅使用 2 个最低有效位。它甚至在其中说“写“01:00”以启用通知,“00:00”以禁用通知。 (这是最不重要的位,因为它是以小端格式编码的)

因此,您发送 0x01 以打开 IR 温度传感器,但您尚未打开通知。然后将其打开将导致设备将通知流式传输回客户端。加速度计不需要打开,所以也许您应该先尝试一下。

我不知道第二段代码应该做什么......对不起。

关于ios - 蓝牙外围设备不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16483275/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4