首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙外设不应答

蓝牙外设不应答
EN

Stack Overflow用户
提问于 2013-05-10 21:20:23
回答 2查看 860关注 0票数 2

我的考试遇到了大麻烦。我必须编写一个使用德州仪器公司生产的外部传感器的iOS应用程序,它被称为TI Sensortag。在我看来,TI的文档对于入门级程序员来说是非常糟糕和复杂的。我试着在E2E论坛上问,但他们不能帮助我,他们的回答是“嗯,好吧,我们不知道,去问别人吧”,……

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

我试图用这种方法启用我的传感器,但我做错了什么。

代码语言:javascript
复制
-(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的服务

代码语言:javascript
复制
[peripheral discoverServices:nil];

和他的代表

代码语言:javascript
复制
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error
{
    NSLog(@"Found service");
    if (error) {
        NSLog(@"Error: %@", error);
    }
    
}

但它从未被调用过。

有人知道吗?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-15 14:26:33

好的好的,我明白了,有任何软件问题,我的意思是,不是iOS方面的问题。Sensortag有一个错误的固件,所以它不工作。

我已经更改了Sensortag,现在一切正常。

不管怎么都要谢谢您!

票数 0
EN

Stack Overflow用户

发布于 2013-05-11 08:51:07

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

所以,您发送了一个0x01来打开红外温度传感器,但是您还没有打开通知。打开它将导致设备将通知流回客户端。加速度计不需要打开,所以也许你应该先试一下。

我不知道第二段代码应该做什么……抱歉的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16483275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档