2013-05-18 53 views
2

我的深化發展IOS我的第一個智能藍牙(BLE)軟件6.IOS藍牙BLE writevalue返回「未知錯誤」

我能夠接收通知和閱讀chracteristics值與Nordic Development kit交換,包括從定製GATT我創建的配置文件(使用特定的UUID進行服務和特性)。

但是,每次我嘗試寫入特徵值時,都會收到錯誤消息Unknown Error,但沒有更多信息。沒有錯誤代碼,沒有來自XCode的CoreBluetooth[WARNING]

我已經將我的服務和特性屬性權限設置爲無需身份驗證。使用開發的北歐工具,我可以爲我的特徵寫一個值,所以它不會是一個權限問題。

這裏是我用寫值

uint16_t val = 2; 
NSData * valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)]; 
[testPeripheral writeValue:valData forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse]; 

的代碼,並在錯誤「未知錯誤」惜售回調

- (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic: 
        (CBCharacteristic *)characteristic error:(NSError *)error 
{ 
    NSLog(@"Did write characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID); 
    NSLog(@"With error: %@", [error localizedDescription]); 

    //code... 
} 

在控制檯中的錯誤文本

Did write characteristic value : <068c0e00 fedc070c 050b3200 04> with ID Unknown (<4444>) 
With error: Unknown error. 

錯誤信息中的值不是我想要寫的??! 444是我用於測試的正確UUID。

要重寫的值的長度是否重要?

在互聯網上看到hoirs並試了很多測試後,我需要找出它。 有什麼建議嗎?

+0

如果仍然未解決,錯誤號是多少? – Larme

回答

1

問題出在設備數據庫管理上,而不是在IOS端。但是,沒有來自CoreBluetooth的錯誤代碼,很難弄清楚!

+0

我面臨同樣的問題。設備數據庫管理的含義是什麼?你能否再解釋一下,以幫助我們理解根本原因。 – Abhinav

+1

我有一些關於我的uController中的特徵的錯誤設置。您可以嘗試在IOS藍牙屬性上取消配對設備以強制進行新的配對/密鑰交換。您也可以嘗試通過關閉後臺實例來使用應用程序的新實例(如果存在並重新啓動它)。祝你好運 – sdespont

0

sdespont是對的。

我面臨同樣的問題。只需雙擊主頁按鈕並向上滑動以終止應用程序,然後重新啓動它,然後BLE工作! 我認爲它位於設備數據庫管理中,即使在調試期間也應該取消連接。

1

您應該檢查CBCharacteristic的屬性。如果屬性指示特徵不可寫,您可能會收到此錯誤。

祝你好運。

+0

非常感謝:) –