2013-05-10 77 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