2015-05-18 8 views
1

У меня этот код, чтобы написать значение characteritic о наличии Bluetooth устройства:IOS, Bluetooth без ответа

CBPeripheral *speaker = ...; 
NSData *data = ...; 
CBCharacteristic *chara = ...; 
[speaker writeValue:data forCharacteristic:chara type:CBCharacteristicWriteWithResponse]; 

значение данных:

(lldb) po data 
<02080101 a800e001> 

чары обладает следующими свойствами:

CBCharacteristicPropertyRead 
CBCharacteristicPropertyWriteWithoutResponse 
CBCharacteristicPropertyWrite 
CBCharacteristicPropertyAuthenticatedSignedWrites 

Этот код отлично работает, и динамик показывает новое значение при использовании типа CBCharacteristicWri teWithResponse, но не работает с типом CBCharacteristicWriteWithoutResponse.

Что может быть причиной этого?

ответ

-1

только только один может работать это зависит от ваших characterstic.properties недвижимости

Декларация СВИФТ

struct CBCharacteristicProperties : RawOptionSetType { 
    init(_ rawValue: Int) 
    init(rawValue rawValue: Int) 
    static var Broadcast: CBCharacteristicProperties { get } 
    static var Read: CBCharacteristicProperties { get } 
    static var WriteWithoutResponse: CBCharacteristicProperties { get } 
    static var Write: CBCharacteristicProperties { get } 
    static var Notify: CBCharacteristicProperties { get } 
    static var Indicate: CBCharacteristicProperties { get } 
    static var AuthenticatedSignedWrites: CBCharacteristicProperties { get } 
    static var ExtendedProperties: CBCharacteristicProperties { get } 
    static var NotifyEncryptionRequired: CBCharacteristicProperties { get } 
    static var IndicateEncryptionRequired: CBCharacteristicProperties { get } 
} 
OBJECTIVE-C 
typedef enum { 
    CBCharacteristicPropertyBroadcast = 0x01, 
    CBCharacteristicPropertyRead = 0x02, 
    CBCharacteristicPropertyWriteWithoutResponse = 0x04, 
    CBCharacteristicPropertyWrite = 0x08, 
    CBCharacteristicPropertyNotify = 0x10, 
    CBCharacteristicPropertyIndicate = 0x20, 
    CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40, 
    CBCharacteristicPropertyExtendedProperties = 0x80, 
    CBCharacteristicPropertyNotifyEncryptionRequired = 0x100, 
    CBCharacteristicPropertyIndicateEncryptionRequired = 0x200, 
} CBCharacteristicProperties; 
+0

Это не реально ответить на этот вопрос, вы просто разместить реализацию для 'CBCharacteristicProperties' перечисления. – JAL

+0

Я уже показываю, что это просто работа только в одном направлении, вы знаете, что ваше свойство chara поддерживает только тип .WithoutResponse, он будет работать только в этом типе, если ваша поддержка поддерживает .withresponse, вы можете использовать этот func didWriteValueForCharacteristic, чтобы проверить, ваши данные отправляются хорошо. – user4999758

Смежные вопросы