TI论坛
直播中

邝计嘉

8年用户 246经验值
私信 关注
[问答]

请问服务中的特征值是否有字节长度限制?

各位ti技术支持及坛友:
我在一个服务中定义一组特征值如下:
static uint8 UartDataValue[19];//当改成长度为20时就发生读写错误
//UART Declaration
[
[ ATT_BT_UUID_SIZE, characterUUID ],
GATT_PERMIT_READ,
0,
&UartDataProps
],
//UART Value
[
[ ATT_BT_UUID_SIZE, Uart_Data_UUID ],
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
UartDataValue
],
//UART Description
[
[ ATT_BT_UUID_SIZE, charUserDescUUID ],
GATT_PERMIT_READ,
0,
UartDataDesp
]
问题1:服务中的特征值是否有字节长度限制?最大多少字节?
问题2:服务中的许多UUID如0x2800、0x2803这些都是系统的UUID,请问我该在哪里可以找到这些知识点(较详细)的说明?毕竟用户要定义的特征值UUID总不能随便来吧。。。
谢谢!

回帖(4)

华农武

2019-9-19 06:33:24
shaokai,
读写操作的话理论上并没有最大限制,超过20的话你还可以用blob读写。
从你这段代码看不出有什么不对,是否其他地方有问题?读写操作的地方?
关于UUID,你可以看一下SIG官网的定义,很详细:https://www.bluetooth.org/en-us/specification/assigned-numbers
打开有下面的你都可以参考:

  • Generic Attribute Profile (GATT)
  • GATT Bluetooth Namespace Descriptors
  • GATT Bluetooth Characteristics​
  • ​GATT Bluetooth Characteristics​​ Descriptors
  • GATT Bluetooth Services​
举报

邝计嘉

2019-9-19 06:49:13
引用: 骑猪去天山 发表于 2019-9-19 06:33
shaokai,
读写操作的话理论上并没有最大限制,超过20的话你还可以用blob读写。
从你这段代码看不出有什么不对,是否其他地方有问题?读写操作的地方?

Thanks Yan
我是在USBDongle上读写特征值的,当字节长度低于20时,都是正常的,但是字节长度改为20后再读写就会出现:
ATTR_NOT_FOUND。
blob读写与普通的读写方法有什么不同?也属于协议栈的一种读写方式吗?目前手头看的资料没见过blob读写。。。
举报

华农武

2019-9-19 07:08:03
引用: 蟹蟹蟹蟹 发表于 2019-9-19 06:49
Thanks Yan
我是在USBDongle上读写特征值的,当字节长度低于20时,都是正常的,但是字节长度改为20后再读写就会出现:
ATTR_NOT_FOUND。

shaokai,
blob读写可以读超过20个字节的内容,可以参考GATT_ReadLongCharValue() 
举报

邝计嘉

2019-9-19 07:19:10
Thanks Yan!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分