2014-01-31 2 views
1

Это мой первый вопрос здесь, не обвиняйте меня слишком сильно. Хотелось бы посоветовать, как отправлять несколько байтов с одного устройства iOS на другое с помощью CBCharacteristicWriteWithoutResponse.iOS. BLE. CBCharacteristicWriteWithoutResponse - Как заставить его работать?

Я попытался посланных данных с WriteValue: forCharacteristic: Тип: от одного устройства IOS (Центральная роль) и получить его с peripheralManager: didReceiveWriteRequests: на другом устройстве IOS (Peripheral роль).

У меня нет проблем с типом: 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]; 

надеюсь, что это помогает

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