2013-05-10 45 views
2

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

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

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

-(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"); 

} 

而且我想用这种方法

[peripheral discoverServices:nil]; 

和他的代表

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

} 

以检索Sensortag的服务,但它永远不会被调用。

有人有什么想法吗?

非常感谢!

回答

0

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

我改变了Sensortag,现在一切正常。

谢谢你!

1

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

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

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

+0

感谢您的帮助! – Redauser 2013-05-12 09:55:39