ble 读写特征值特征值_BLE4.0教程二 蓝牙协议之服务与特征值分析

1.关于服务与特征值的简述

之前说到蓝牙的连接过程,那蓝牙连接之后具体是如何传数据的呢。这里做一下简要说明。

蓝牙4.0是以参数来进行数据传输的,即服务端定好一个参数,客户端可以对这个参数进行读,写,通知等操作,这个东西我们称之为特征值(characteristic),

但一个参数不够我们用,比如我们这个特征值是电量的值,另一个特征值是设备读取的温度值。

那这时候会有多个特征值,并且我们还会对它们分类,分出来的类我们称之为服务(service)。

一个设备可以有多个服务,每一个服务可以包含多个特征值。为了方便操作,每个特征值都有他的属性,例如长度(size),权限(permission),值(value),描述(descriptor),如下图。

2.ATT与GATT

我们刚才介绍服务与特征值,那具体我们是怎么去实现的呢.

蓝牙4.0版本推出了低功耗规范,引入了两个核心协议:ATT(Attribute Protocol)和GATT(Generic Attribute Protocol).这两个协议主要目标是BLE,但是也可以运行在传统蓝牙上(BR/EDR)。

ATT主要是规定了"属性"的定义,GATT则是将这些"属性"包装成我们上面所讲的服务、特征值等。

那我们是怎么搭建起来我们的服务的呢?

大概可以概述为,由一个个属性搭建起来的东西。如下图,每一个属性就会告诉使

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Uniapp中向低功耗蓝牙设备特征值中写入进制数据对应的UUID需要使用uni-ble插件提供的API。您可以按照以下步骤进行操作: 1. 导入uni-ble插件,具体操作可以参考uni-ble的使用文档。 2. 连接低功耗蓝牙设备。 3. 获取GattCharacteristic对象,可以使用uni-ble提供的`readBLECharacteristicValue`或`writeBLECharacteristicValue`方法。 4. 将进制数据转换为ArrayBuffer类型的数据。 5. 使用`writeBLECharacteristicValue`方法向设备写入数据。 以下是示例代码: ```javascript // 连接低功耗蓝牙设备 uni.createBLEConnection({ deviceId: 'yourDeviceId', success: function(res) { // 获取GattCharacteristic对象 uni.readBLECharacteristicValue({ deviceId: 'yourDeviceId', serviceId: 'yourServiceUuid', characteristicId: 'yourCharacteristicUuid', success: function(res) { // 将进制数据转换为ArrayBuffer类型的数据 let buffer = new ArrayBuffer(3); let dataView = new DataView(buffer); dataView.setUint8(0, 1); dataView.setUint8(1, 2); dataView.setUint8(2, 3); // 向设备写入数据 uni.writeBLECharacteristicValue({ deviceId: 'yourDeviceId', serviceId: 'yourServiceUuid', characteristicId: 'yourCharacteristicUuid', value: buffer, success: function(res) { console.log('write success'); }, fail: function(res) { console.log('write fail'); } }); }, fail: function(res) { console.log('read fail'); } }); }, fail: function(res) { console.log('connect fail'); } }); ``` 其中,`yourDeviceId`、`yourServiceUuid`和`yourCharacteristicUuid`分别是您要操作的设备ID、服务UUID和特征值UUID。注意,写入数据的长度不能超过特征值的最大长度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值