蓝牙ATT_LIST设置服务指令

举报
心跳包 发表于 2021/11/13 00:24:16 2021/11/13
【摘要】 ATT List表格式 Byte0-Byte1 Byte2 Byte3-ByteN+2 Byte N+3 ByteN+4-Byte N+M+3 Handle Len(N byte) UUID Len2(M byte)   注:Handle是从0x0100开始向上累加的数据,0x0000表示列表的结束。 ...

ATT List表格式

Byte0-Byte1

Byte2

Byte3-ByteN+2

Byte N+3

ByteN+4-Byte N+M+3

Handle

Len(N byte)

UUID

Len2(M byte)

 

注:Handle是从0x0100开始向上累加的数据,0x0000表示列表的结束。

1.建立一个16bit service,service UUID为 0xfee7

0c 00 02 00 28 02 e7 fe

说明:

0c 00为handle,这个需要根据之前的handle+1得到

02 00 28 是Primary Service UUID,表示后面的数据是service UUID

02 为service UUID length,由于建立16bit UUID,所以长度是02

e7 fe 为service UUID,小端在前

2.

建立一个128bit service,service UUID 为0x000102030405060708090a0b0c0d0e0f

0c 00 02 00 28 10 0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00

说明:

0c 00为handle,这个需要根据之前的handle+1得到

02 00 28 是Primary Service UUID,表示后面的数据是service UUID

10 为service UUID length,由于建立128bit UUID,所以长度是10

0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00为service UUID,小端在前

3.

建立一个16bit master 写通道,UUID为0xfec7,Characteristic为write & write without Response

0d 00 02 03 28 01 0c

0e 00 02 c7 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

说明:

建立一个通道需要2行数据,第一行是对通道特征的描述,第二行是声明了通道的UUID。

0d 00 为handle,这个需要根据之前的handle+1得到

02 03 28 是Characteristic Declaration UUID,表示后面的数据是Characteristic

01 为Characteristic数据长度,固定为01

0c 为Characteristic数据,每个bit为1有效,0c表示write & write without Response,每个bit的含义见附表。

0e 00为handle,这个需要根据之前的handle(0d 00)+1得到

02 为通道UUID长度,由于建立16bit UUID,所以长度是02

C7 fe 为通道UUID,小端在前

14 为通道UUID的数据长度

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00为master发送read request时,会发送这里的数据给master,master向0xfec7通道写数据时,会向这里写入。

4.

建立一个128bit master 写通道,UUID为0x00112233445566778899aabbccddeeff,Characteristic为write & write without Response

0d 00 02 03 28 01 0c

0e 00 10 ff ee dd cc bb aa 99 88 77 66 55 44 33 22 11 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

说明:

建立一个通道需要2行数据,第一行是对通道特征的描述,第二行是声明了通道的UUID。

0d 00 为handle,这个需要根据之前的handle+1得到

02 03 28 是Characteristic Declaration UUID,表示后面的数据是Characteristic

01 为Characteristic数据长度,固定为01

0c 为Characteristic数据,每个bit为1有效,0c表示write & write without Response,每个bit的含义见附表。

0e 00为handle,这个需要根据之前的handle(0d 00)+1得到

10 为通道UUID长度,由于建立128bit UUID,所以长度是10

ff ee dd cc bb aa 99 88 77 66 55 44 33 22 11 00  为通道UUID,小端在前

14 为通道UUID的数据长度

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00为master发送read request时,会发送这里的数据给master,master向0xfec7通道写数据时,会向这里写入。

5.监听通道

建立一个16bit master 监听通道,UUID为0xfec7,Characteristic为Notify

0d 00 02 03 28 01 20

0e 00 02 c7 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0f 00 02 02 29 02 00 00

说明:

建立一个通道需要3行数据,第一行是对通道特征的描述,第二行是声明了通道的UUID,第三行Client Characteristic Configuration描述,只有notify和indicate需要

0d 00 为handle,这个需要根据之前的handle+1得到

02 03 28 是Characteristic Declaration UUID,表示后面的数据是Characteristic

01 为Characteristic数据长度,固定为01

20为Characteristic数据,每个bit为1有效,20表示indicate,每个bit的含义见附表。

0e 00为handle,这个需要根据之前的handle(0d 00)+1得到

02 为通道UUID长度,由于建立16bit UUID,所以长度是02

C7 fe 为通道UUID,小端在前

14 为通道UUID的数据长度

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00为master发送read request时,会发送这里的数据给master,master向0xfec7通道写数据时,会向这里写入。

0f 00为handle,这个需要根据之前的handle(0e 00)+1得到

02 02 29是Client Characteristic Configuration UUID,表示后面的数据固定00 00

02 00 00是Client Characteristic Configuration的固定数据,手机连接使能后会写入

附表:

Characteristic含义描述,其中Broadcast,Authentication Signed Write,Extended Properties芯片不支持使用

Bit

Characteristic

0

Broadcast

1

Read

2

Write without Response

3

Write

4

Notify

5

Indicate

6

Authentication Signed Write

7

Extended Properties

文章来源: xintiaobao.blog.csdn.net,作者:心跳包,版权归原作者所有,如需转载,请联系作者。

原文链接:xintiaobao.blog.csdn.net/article/details/107302186

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。