2014-01-31 29 views
1

這是我的第一個問題,不要爲此付出太多的代價。 我想得到一些建議如何從一個iOS設備發送幾個字節到另一個與CBCharacteristicWriteWithoutResponse。iOS。 BLE。 CBCharacteristicWriteWithoutResponse - 如何使它工作?

我嘗試使用writeValue:forCharacteristic:type:從一個iOS設備(中心角色) 發送數據,並在另一個iOS設備(外圍設備角色)上使用peripheralManager:didReceiveWriteRequests接收數據。

我沒有類型的問題:CBCharacteristicWriteWitResponse,但如果我用類型替換它:CBCharacteristicWriteWithoutResponse外設停止接收它。怎麼了?我錯過了什麼或者WriteWithoutResponse不被CBCentralManagerDelegate支持?

這裏是一些代碼:

@interface BleCentralDemo : NSObject <CBCentralManagerDelegate> {} 
@end 

@implementation BleCentralDemo 

-(void) writeValue:(int)sUUID characteristicUUID:(int)cUUID p:(CBPeripheral *)p data:(NSData *)data { 
[p writeValue:data forCharacteristic:cUUID type:CBCharacteristicWriteWithResponse]; // sent, received 
[p writeValue:data forCharacteristic:cUUID type:CBCharacteristicWriteWithOutResponse]; // sent, not received 
} 
@end 

@interface BlePeripheralDemo : NSObject <CBPeripheralManagerDelegate> {} 
@end 

@implementation BlePeripheralDemo 

-(void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests { 
for (CBATTRequest *request in requests){ 
NSLog(@"request.value:%@", request.value); 
[peripheral respondToRequest:request withResult:CBATTErrorSuccess]; 
} 
} 
@end 

回答

1

我今天遇到了同樣的問題。

你應該CBCharacteristicPropertyWriteWithoutResponse屬性設置你的特點。(cUUID在你的代碼)

我的特點是從外圍設備。這樣

[[CBMutableCharacteristic alloc] initWithType:writeableCharacteristicUUID properties:CBCharacteristicPropertyWrite | CBCharacteristicPropertyNotify | CBCharacteristicPropertyWriteWithoutResponse value :nil permissions:CBAttributePermissionsWriteable]; 

創建希望它有助於