网站建设开发的流程,建设官方网站的主要作用,网站文章删除了怎么做404,wordpress图片分页插件一个profile有很多的服务#xff0c;一个服务又有很多的特性#xff0c;一个特性中又有几种属性条目组成。 profile#xff08;数据配置文件#xff09; 一个profile文件可以包含一个或者多个服务#xff0c;一个profile文件包含需要的服务的信息或者为对等设备如何交互的…一个profile有很多的服务一个服务又有很多的特性一个特性中又有几种属性条目组成。 profile数据配置文件 一个profile文件可以包含一个或者多个服务一个profile文件包含需要的服务的信息或者为对等设备如何交互的配置文件的选项信息。设备的GAP和GATT的角色都可能在数据的交换过程中改变因此这个文件应该包含广播的种类、所使用的连接间隔、所需的安全等级等信息。需要注意的是 一个profile中的属性表不能包含另一个属性表。服务 一个服务包含一个或多个特性这些特性是逻辑上相关的集合体。 GATT服务一般包含几块具有相关的功能比如特定传感器的读取和设置人机接口的输入输出。组织具有相关的特性到服务中既实用又有效因为它使得逻辑上和用户数据上的边界变得更加清晰同时它也有助于不同应用程序间代码的重用。GATT基于蓝牙技术联盟(SIG)官方而设计SIG建议根据它们的规范设计自己的profile。 Characteristic
Characteristic 特征值BLE 主从机的通信均是通过 Characteristic 来实现可以理解为一个标签通过这个标签可以获取或者写入想要的内容。属性 对特征的定义和描述。是Characteristic通信实现的细节。其中特性中的属性条目有两种属性值或描述符。任何在特性中的属性条目不是定义为属性值就是为描述符。属性值包含 特征的声明Characteristic Declaration条目、特征的值Characteristic Value条目一个特性至少包含2个属性条目也即属性值必须要有而描述符根据需要可选一个属性条目用于声明Characteristic Declaration一个属性条目用于存放特性的值Characteristic Value。描述符包含 特征的客户配置Client Characteristic Configuration条目、特征的用户描述Characteristic User Description条目描述符是一个额外的属性以提供更多特性的信息它提供一个人类可识别的特性描述的实例。然而有一个特别的描述符值得特别地提起客户端特性配置描述符(Client Characteristic Configuration DescriptorCCCD)它的UUID是0x2902这个描述符是给任何支持通知或指示功能的特性额外增加的。在CCCD中写入“1”使能通知功能写入“2”使能指示功能写入“0”同时禁止通知和指示功能。如果属性值的许可permissions含有通知或通知时特性中的属性中需要有客户端特性配置描述符CCCD条目。用户描述Characteristic User Description条目可有可无的。一个特性中的属性包含的内容1、2必须要有3根据1、2有无通知指示可有无4可选1. 特征的声明Characteristic Declaration属性值描述器存储其性能位置和特征值的数据类型。2. 特征的值Characteristic Value属性值就是特征值的数据值3. 特征的客户配置Client Characteristic Configuration描述符这个允许GATT服务端配置特征值为通知发送给GATT服务端或指示发送给GATT服务端并期望一个回复。4. 特征的用户描述Characteristic User Description描述符这是个ASCII字符串描述的特征值。一个特性中的属性条目之间的关系Characteristic Declaration 条目中只是说明property 属性 而Characteristic Value条目则直接指明了这个值能被“允许” 干嘛。Client Characteristic Configuration条目 才是真正说明我这个值是可以被“notify”的配置成开启/禁止通知Characteristic Declaration条目 只是说明属性。总之1Characteristic Declaration条目 以只是”Declare“ 一下而已具体做事的还是后面的2、3条目。属性值或描述符均称为属性条目的一种所有的这些属性条目都会存在GATT服务端的一个属性表中。除了其值本身每个属性条目都有下面的性质一个属性条目包含UUID(类型)、许可、句柄、值1. 句柄Handle这是基本的属性条目在表中的索引。每个属性都有一个独一的句柄2. 类型type这个用来说明属性条目数据代表的意思。经常是作为UUIDuniversal unique Ididentifier的。这其中的一些是Bluetooth-SIG定义的一些是用户的。3. 许可permissions这个会强制一个GATT客户端设备是否和怎样访问属性条目的值。4. UUID/*** GATT Attribute Type format.*/typedef struct{uint8 len; //! Length of UUIDconst uint8 *uuid; //! Pointer to UUID} gattAttrType_t;/*** GATT Attribute format.*/typedef struct attAttribute_t{gattAttrType_t type; //! Attribute type (2 or 16 octet UUIDs)uint8 permissions; //! Attribute permissionsuint16 handle; //! Attribute handle - assigned internally by attribute serveruint8* const pValue; //! Attribute value - encoding of the octet array is defined in//! the applicable profile. The maximum length of an attribute//! value shall be 512 octets.} gattAttribute_t;