2013-02-12 9 views
3

В моем приложении я обнаруживаю свое периферийное устройство с данным сервисом. Затем я проверяю, что все необходимые характеристики присутствуют, прежде чем двигаться дальше.iOS bluetooth: Неизвестная ошибка при записи на характеристику

Когда я пишу значение своих характеристик, обратный вызов didWriteValueForCharacteristic: триггер:

- (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]); 
} 

и дает этот выход:

Did write characteristic value : <005c> with ID Unknown (<00005004 1212efde 1523785f eabcd123>) 
With error: Unknown error. 

Значение является правильным, то же самое относится и к 128bit UUID из но в моем периферии я никогда не получаю значение, написанное.

Любые предложения о том, что может быть неправильным?

+0

У вас есть в * Консоле * сообщение типа: * CoreBluetooth [WARNING] *. Иногда там возникает реальная ошибка. И я до сих пор не знаю, почему и как их поймать ... – Larme

+0

Не в то время. Ответил на мой вопрос – chwi

ответ

4

Отправлено WriteWithoutResponse, сменив это на WriteWithResponse, дало мне CoreBluetooth[WARNING] error 13, как упомянуто @Larme в комментариях. Это значение corresponded to Недопустимое значение атрибута Length, то есть я отправил неверный формат номера, то есть отправил 16-битное значение, а периферийное значение ожидало 8 бит.

Изменение периферийного устройства для приема 16-разрядных данных позволило решить проблему.

+0

Как вы узнали, что ошибка 13 означает «Недопустимая длина значения атрибута»? Я искал везде список этих кодов ошибок, без везения. (Я получаю неизвестную ошибку 10.) –

+0

@JoeStrout http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CoreBluetooth_Constants/Reference/reference.html ваша ошибка 'CBATTErrorAttributeNotFound' – chwi

+0

Но что это решение? – Mrug