/*? @class CBCharacteristic
*? @discussion
*代表一個服務的特征
*/
@interfaceCBCharacteristic :NSObject
//表明這個屬于哪個service
@property(weak,readonly,nonatomic)CBService*service;
//characteristic的UUID標識
@property(readonly,nonatomic)CBUUID*UUID;
// characteristic的屬性,是一個結(jié)構(gòu)體
typedefNS_OPTIONS(NSInteger, CBCharacteristicProperties) {
// 標識這個characteristic的屬性是廣播
CBCharacteristicPropertyBroadcast=0x01,
// 標識這個characteristic的屬性是讀
CBCharacteristicPropertyRead=0x02,
// 標識這個characteristic的屬性是寫-沒有響應
CBCharacteristicPropertyWriteWithoutResponse=0x04,
// 標識這個characteristic的屬性是寫
CBCharacteristicPropertyWrite=0x08,
// 標識這個characteristic的屬性是通知
CBCharacteristicPropertyNotify=0x10,
// 標識這個characteristic的屬性是聲明
CBCharacteristicPropertyIndicate=0x20,
// 標識這個characteristic的屬性是通過驗證的
CBCharacteristicPropertyAuthenticatedSignedWrites=0x40,
// 標識這個characteristic的屬性是拓展
CBCharacteristicPropertyExtendedProperties=0x80,
// 標識這個characteristic的屬性是需要加密的通知
CBCharacteristicPropertyNotifyEncryptionRequiredNS_ENUM_AVAILABLE(NA,6_0)=0x100,
// 標識這個characteristic的屬性是需要加密的申明
CBCharacteristicPropertyIndicateEncryptionRequiredNS_ENUM_AVAILABLE(NA,6_0)=0x200
};
@property(readonly,nonatomic)CBCharacteristicPropertiesproperties;
// characteristic的值
@property(retain,readonly)NSData*value;
// * *
@property(retain,readonly)NSArray*descriptors;
//特征是否正在廣播
@property(readonly)BOOLisBroadcasted;
// 特征是否正在通知
@property(readonly)BOOLisNotifying;
@interfaceCBMutableCharacteristic :CBCharacteristic
// 權(quán)限
typedefNS_OPTIONS(NSInteger, CBAttributePermissions) {
//可讀的
CBAttributePermissionsReadable=0x01,
//可寫的
CBAttributePermissionsWriteable=0x02,
//需驗證
CBAttributePermissionsReadEncryptionRequired=0x04,
CBAttributePermissionsWriteEncryptionRequired=0x08
}
@property(assign,readwrite,nonatomic)CBAttributePermissionspermissions;
//訂閱這個characteristic的central
@property(retain,readonly)NSArray*subscribedCentrals
@property(retain,readwrite,nonatomic)CBUUID*UUID;
@property(assign,readwrite,nonatomic)CBCharacteristicPropertiesproperties;
@property(retain,readwrite)NSData*value;
@property(retain,readwrite)NSArray*descriptors;
- (id)initWithType:(CBUUID*)UUID properties:(CBCharacteristicProperties)properties value:(NSData*)value permissions:(CBAttributePermissions)permissions;