请教特征值字节数问题
各位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总不能随便来吧。。。
谢谢!
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?
Thanks Yan
我是在USBDongle上读写特征值的,当字节长度低于20时,都是正常的,但是字节长度改为20后再读写就会出现:
ATTR_NOT_FOUND。
blob读写与普通的读写方法有什么不同?也属于协议栈的一种读写方式吗?目前手头看的资料没见过blob读写。。。
shaokai,
blob读写可以读超过20个字节的内容,可以参考GATT_ReadLongCharValue()
Thanks Yan!