CBCharacteristic-CBMutableCharacteristic学习笔记

本文深入探讨了CBCharacteristic在蓝牙技术中的角色,包括其属性、操作及使用方法,为开发者提供全面理解蓝牙服务特征的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如有不对的地方欢迎留言指正。谢谢


CBCharacteristic学习笔记

/*!

 *  @class CBCharacteristic

 *  @discussion

 *      代表一个服务的特征

 */

@interface CBCharacteristic : NSObject


//表明这个属于哪个service

@property(weak, readonly, nonatomic) CBService *service;


//characteristic的UUID标识

@property(readonly, nonatomic) CBUUID *UUID;


// characteristic的属性,是一个结构体


typedef NS_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的属性是需要加密的通知

CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x100,

// 标识这个characteristic的属性是需要加密的申明

CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x200

};


@property(readonly, nonatomic) CBCharacteristicProperties properties;


// characteristic的值

@property(retain, readonly) NSData *value;


// * *

@property(retain, readonly) NSArray *descriptors;


// 特征是否正在广播

@property(readonly) BOOL isBroadcasted;


// 特征是否正在通知

@property(readonly) BOOL isNotifying;




@interface CBMutableCharacteristic : CBCharacteristic


// 权限

typedef NS_OPTIONS(NSInteger, CBAttributePermissions) {

// 可读的

CBAttributePermissionsReadable = 0x01,

// 可写的

CBAttributePermissionsWriteable = 0x02,

// 需验证

CBAttributePermissionsReadEncryptionRequired = 0x04,

CBAttributePermissionsWriteEncryptionRequired = 0x08

}

@property(assign, readwrite, nonatomic) CBAttributePermissions permissions;


//订阅这个characteristic的central

@property(retain, readonly) NSArray *subscribedCentrals


@property(retain, readwrite, nonatomic) CBUUID *UUID;


@property(assign, readwrite, nonatomic) CBCharacteristicProperties properties;


@property(retain, readwrite) NSData *value;


@property(retain, readwrite) NSArray *descriptors;


- (id)initWithType:(CBUUID *)UUID properties:(CBCharacteristicProperties)properties value:(NSData *)value permissions:(CBAttributePermissions)permissions;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值