Bluetooth 我是否可以仅使用GATT特征读取数据,或者我是否也需要GATT服务?

Bluetooth 我是否可以仅使用GATT特征读取数据,或者我是否也需要GATT服务?,bluetooth,bluetooth-lowenergy,arduino-uno,gatt,Bluetooth,Bluetooth Lowenergy,Arduino Uno,Gatt,是否可以只向BLE设备添加一个GATT特性并从蓝牙接收器读取数据,或者我是否需要向BLE设备添加GATT服务才能从设备读取数据?除了模拟输出GATT特性,我是否需要GATT服务来简单读取模拟输出?最后,我只想从arduino uno上的缓冲区读取16位字节,然后通过蓝牙发送。当然,您也需要服务。服务是特性的容器 通用属性(GATT)定义了一个分层数据结构,该结构公开给连接的蓝牙低能(LE)设备。 GATT概要文件描述了基于GATT功能的用例、角色和一般行为。服务是特性的集合以及与其他服务的关系,

是否可以只向BLE设备添加一个GATT特性并从蓝牙接收器读取数据,或者我是否需要向BLE设备添加GATT服务才能从设备读取数据?除了模拟输出GATT特性,我是否需要GATT服务来简单读取模拟输出?最后,我只想从arduino uno上的缓冲区读取16位字节,然后通过蓝牙发送。

当然,您也需要服务。服务是特性的容器

通用属性(GATT)定义了一个分层数据结构,该结构公开给连接的蓝牙低能(LE)设备。 GATT概要文件描述了基于GATT功能的用例、角色和一般行为。服务是特性的集合以及与其他服务的关系,这些特性和关系封装了设备的一部分的行为。这还包括属性服务器中使用的服务、特征和属性的层次结构。 在GATT层次结构之上是一个概要文件,它由实现用例所必需的一个或多个服务组成。服务由特征或对其他服务的引用组成。特征由一个类型(由UUID表示)、一个值、一组表示该特征支持的操作的属性以及一组与安全性相关的权限组成。它还可以包括一个或多个描述符、元数据或与所属特征相关的配置标志。 GATT定义了客户端(BLE中心)和服务器(BLE外围)角色。GATT服务器存储通过空中传输到GATT客户端的数据,并接受来自GATT客户端的请求、命令和确认。当GATT服务器上发生指定事件时,GATT服务器向请求发送响应,并向GATT客户端异步发送指示和通知。GATT还规定了GATT服务器上包含的数据格式


当然你也需要服务。服务是特性的容器

通用属性(GATT)定义了一个分层数据结构,该结构公开给连接的蓝牙低能(LE)设备。 GATT概要文件描述了基于GATT功能的用例、角色和一般行为。服务是特性的集合以及与其他服务的关系,这些特性和关系封装了设备的一部分的行为。这还包括属性服务器中使用的服务、特征和属性的层次结构。 在GATT层次结构之上是一个概要文件,它由实现用例所必需的一个或多个服务组成。服务由特征或对其他服务的引用组成。特征由一个类型(由UUID表示)、一个值、一组表示该特征支持的操作的属性以及一组与安全性相关的权限组成。它还可以包括一个或多个描述符、元数据或与所属特征相关的配置标志。 GATT定义了客户端(BLE中心)和服务器(BLE外围)角色。GATT服务器存储通过空中传输到GATT客户端的数据,并接受来自GATT客户端的请求、命令和确认。当GATT服务器上发生指定事件时,GATT服务器向请求发送响应,并向GATT客户端异步发送指示和通知。GATT还规定了GATT服务器上包含的数据格式


但如果电池级服务仅由一个特性(电池级特性)组成,那么原则上我们为什么需要添加该服务?因为设计。有关更多详细信息,请参阅蓝牙核心规范、SDP和GATT服务说明。蓝牙标准要求服务中包含一个特性。如果您不遵循该标准并将其置于服务之外,则很可能所有可用的客户端API都找不到它。但是,如果电池级服务仅由一个特性(电池级特性)组成,那么原则上为什么我们需要添加该服务?因为设计。有关更多详细信息,请参阅蓝牙核心规范、SDP和GATT服务说明。蓝牙标准要求服务中包含一个特性。如果不遵循该标准并将其放在服务之外,则很可能所有可用的客户端API都找不到它。