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 Descriptor,CCCD),它的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条目 只是说明属性。
总之,1(Characteristic Declaration)条目 以只是”Declare“ 一下而已,具体做事的还是后面的2、3条目。

属性值或描述符均称为属性条目的一种, 所有的这些属性条目都会存在GATT服务端的一个属性表中。除了其值本身,每个属性条目都有下面的性质:
一个属性条目包含UUID(类型)、许可、句柄、值
1. 句柄(Handle)这是基本的属性条目在表中的索引。每个属性都有一个独一的句柄
2. 类型(type):这个用来说明属性条目数据代表的意思。经常是作为UUID(universal unique Ididentifier)的。这其中的一些是Bluetooth-SIG定义的一些是用户的。
3. 许可(permissions):这个会强制一个GATT客户端设备是否和怎样访问属性条目的值。
4. UUID

/**
* GATT Attribute Type format.
*/
typedef struct
{
uint8 len; //!< Length of UUID
const 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 permissions
uint16 handle; //!< Attribute handle - assigned internally by attribute server
uint8* 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;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: FHIR(Fast Healthcare Interoperability Resources)是一种医疗健康领域的信息交互标准,用于实现不同系统之间的互操作性。FHIR Profile文件是基于FHIR标准开发的一种特定类型的文档,用于定义和约束FHIR资源的结构、内容和行为。 FHIR Profile文件可以定制并扩展FHIR标准中的资源,以满足特定的应用需求或组织的数据模型。它定义了资源的元素、属性关系,并可以通过使用约束(Constraint)来限制和规范资源的使用方式。 FHIR Profile文件可以包含以下内容: 1. 结构定义(Structure Definition):定义资源的结构、元素和属性,以及它们之间关系。例如,可以定义一个病人(Patient)资源的特定元素,如姓名、年龄、地址等。 2. 扩展定义(Extension Definition):定义资源的扩展,用于添加和扩展资源的属性。例如,可以为病人资源添加一个自定义的扩展,如婚姻状况。 3. 条件约束(Conditional Constraint):定义资源的条件约束,用于限制资源的使用和赋规则。例如,可以定义一个病人资源的年龄属性必须大于等于18岁。 FHIR Profile文件可以通过FHIR工具和资源管理系统(Resource management system)来创建、编辑和共享。一旦创建了FHIR Profile文件,它可以被其他系统和应用程序使用,以确保数据的一致性和互操作性。 总结而言,FHIR Profile文件是基于FHIR标准的一种定制化文档,用于定义和约束FHIR资源的结构、内容和行为,以实现不同系统之间的互操作性和数据共享。通过使用FHIR Profile文件,可以确保数据在不同系统和应用程序之间的一致性,促进医疗健康信息的交流和共享。 ### 回答2: FHIR(快速医疗互操作性资源)是一种用于电子健康记录(EHR)和医疗保健互操作性的国际标准。而FHIR Profile文件是FHIR资源的一个扩展机制。 FHIR Profile文件是一种描述特定资源的定制扩展的文件,用于指定数据元素的实际使用情况和特定的约束。它通过在基础资源上定义约束来自定义FHIR实例,以实现特定需求和使用场景。Profile文件中定义的约束能够指定资源元素的必须性、类型、限制域以及其他相应的规则。这样,使用FHIR Profile文件可以确保实例的完整性、一致性和互操作性。 FHIR Profile文件可以用于对FHIR资源进行个性化扩展,添加特定领域的数据元素或属性。通过对FHIR资源进行扩展,可以更好地适应各个健康领域的特殊需求,例如临床决策支持系统、遗传学、药物管理等。同时,通过使用FHIR Profile文件还可以确保在不同系统之间共享的FHIR实例具有相同的结构和语义。 FHIR Profile文件不仅可以用于扩展FHIR资源,还可以用于限制已有资源的使用。通过定义约束,可以限制资源元素的可选性、数量、域范围等,以确保实例的合规性和一致性。这对于确保数据的质量、数据的安全性以及促进互操作性都非常重要。 总而言之,FHIR Profile文件是用于描述特定FHIR资源的定制扩展的文件。它能够增加资源的特定数据元素,进行数据约束和限制,以实现特定需求和使用场景,并提高数据的质量、一致性和互操作性。 ### 回答3: FHIR(Fast Healthcare Interoperability Resources)是一种用于电子健康信息交互的国际标准,它提供了一种规范的方式来描述和交换医疗保健数据。FHIR Profile文件是基于FHIR标准的扩展,用于定义特定应用或场景中的数据结构和规则。 FHIR Profile文件包含了一套扩展的数据类型和元素,用于描述特定健康信息系统的需求。它可以定义特定领域或特定组织的特定数据要求,使得不同的系统能够更好地进行数据交换和共享。通过使用FHIR Profile文件,可以确保不同系统之间的数据一致性和互操作性。 FHIR Profile文件定义了资源的扩展和限制,包括资源的元数据、数据类型、必填字段、域范围等。它还可以定义资源之间的关联关系、约束规则、数据格式要求等。通过应用FHIR Profile文件,可以更好地适应特定环境下的数据管理需求,提高数据质量、减少数据传输错误和冗余。 FHIR Profile文件的创建和使用需要一定的技术知识和工具。FHIR Profiling工具可以帮助开发者定义和验证FHIR Profile文件。创建一个有效的FHIR Profile文件需要对特定领域的数据需求进行调研和分析,并基于FHIR标准进行扩展和约束。 总之,FHIR Profile文件是基于FHIR标准的扩展,用于定义特定应用或场景中的数据结构和规则。它可以提高健康信息系统之间的互操作性和数据质量,促进医疗保健数据的共享和交换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值