簡體   English   中英

藍牙外圍設備不應答

[英]Bluetooth peripheral doesn't answer

我考試很麻煩。 我必須編寫一個iOS應用程序,該應用程序使用德州儀器( TI)制造的外部傳感器,稱為TI Sensortag 以我的拙見,TI的文檔對於入門級程序員來說確實很差,而且理解起來很復雜。 我試圖在E2E論壇上提問,但他們無法幫助我,他們的回答是“嗯,嗯,我們不知道,走開問別人”,...

我在我的項目中添加了CoreBluetooth框架並創建了CentralManager。 我能夠找到我的設備,連接並獲取他的名字和(有時)他的RSSI。 現在,我要嘗試的是詢問CBPeripheral對象是否為我提供某些服務或類似的服務。 我已經找到了完整的屬性表,但我不知道如何使用它...我知道我必須激活一些服務或類似的東西,但是我現在真的不願意這樣做,我在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");

}

此外,我正在嘗試使用此方法檢索Sensortag的服務

[peripheral discoverServices:nil];

和他的代表

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

}

但它從未被調用。

有人知道嗎?

非常感謝你!

不幸的是,我無法為您提供iOS的詳細信息,但可以幫助您了解傳感器標簽。 如果查看鏈接的該屬性PDF,則會找到標記為“ GATT_CLIENT_CHAR_CFG_UUID”的條目。 它是16位標志,僅使用2個最低有效位。 甚至在其中說“寫“ 01:00”以啟用通知,寫“ 00:00”以禁用通知”。 (這是最不重要的一點,因為它是以小尾數格式編碼的)

因此,您要發送0x01來打開紅外溫度傳感器,但是您尚未打開通知。 然后將其打開將使設備將通知流回客戶端。 加速計不需要打開,所以也許您應該先嘗試一下。

我不知道第二段代碼應該做什么……抱歉。

好吧,好吧,我明白了,這是軟件問題,不是iOS方面的問題。 Sensortag的固件錯誤,因此無法正常工作。

我更改了Sensortag,現在一切正常。

還是要謝謝你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM