目前共有4篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:不轉換▼
 
點擊 回復
38 3
关于GATT中的特征声明(Characteristic Declaration)‌
一派掌門 二十級
1樓 發表于:2026-1-12 17:50

GATT中UUID为0x2803的属性表示‌特征声明(Characteristic Declaration)‌,用于定义一个特征(Characteristic)的元数据,包括其属性、值句柄和UUID。‌

‌特征声明的格式由5个字节的属性值组成,具体字段顺序固定:‌

‌第一个字节:特征属性(Properties)‌,定义该特征支持的操作权限,如读(0x02)、写(0x08)、通知(0x10)或指示(0x20)等,这些权限可组合使用。
‌第二个和第三个字节:特征值句柄(Value Handle)‌,指定该特征对应值属性的句柄(Handle),用于定位实际数据。
‌第四和第五个字节:特征值UUID‌,标识特征值的类型,通常为16位UUID(如0x2A37代表心率测量),也可扩展为128位。‌特征声明是GATT特征结构的起点,‌ 其后可跟随描述符(如客户端配置描述符,UUID=0x2902)以增强功能,例如启用通知或指示。‌
一派掌門 二十級
2樓 發表于:2026-1-12 17:52

第二和第三个字节是实际数据的下标号。

第四和第五个字节是实际数据的UUID。

 
一派掌門 二十級
3樓 發表于:2026-1-12 18:02

// hello service

// 每个项目都有UUID和值。

// 项目1:UUID=my_primaryServiceUUID=0x2800,值=2字节或16字节的服务UUID

{3,ATT_PERMISSIONS_READ,2,16,(u8*)&my_primaryServiceUUID, (u8*)my_HelloServiceUUID, 0, 0}, // 第一个字节“3”是该服务的项目总数

// 项目2:UUID=my_characterUUID=0x2803,值=5字节的特征声明(操作权限、my_Attributes数组中项目3所在的下标、项目3的UUID)

{0,ATT_PERMISSIONS_READ,2,sizeof(my_HelloServiceManufacturerNameStringVal),(u8*)&my_characterUUID, (u8*)my_HelloServiceManufacturerNameStringVal, 0, 0},

// 项目3:UUID=自定义UUID,值=自定义字符串内容(可以不用\0结尾)

{0,ATT_PERMISSIONS_RDWR,2,sizeof(my_HelloServiceManufacturerNameString),(u8*)&my_HelloServiceManufacturerNameStringVal[3],my_HelloServiceManufacturerNameString,write_my_HelloServiceManufacturerNameString,0},

 
一派掌門 二十級
4樓 發表于:2026-1-12 18:08

一个含有7个项目(也就是3个特征值)的服务:

// 0001 - 0007  gap

// 项目1:UUID=my_primaryServiceUUID=0x2800,值=2字节或16字节的服务UUID

{7,ATT_PERMISSIONS_READ,2,2,(u8*)(&my_primaryServiceUUID),     (u8*)(&my_gapServiceUUID), 0, 0},

// 项目2:UUID=my_characterUUID=0x2803,值=5字节的特征声明(操作权限、my_Attributes数组中项目3所在的下标、项目3的UUID)

{0,ATT_PERMISSIONS_READ,2,sizeof(my_devNameCharVal),(u8*)(&my_characterUUID), (u8*)(my_devNameCharVal), 0, 0},

// 项目3:UUID=自定义UUID,值=自定义内容

{0,ATT_PERMISSIONS_READ,2,sizeof(my_devName), (u8*)(&my_devNameUUID), (u8*)(my_devName), 0, 0},

// 项目4:UUID=my_characterUUID=0x2803,值=5字节的特征声明(操作权限、my_Attributes数组中项目5所在的下标、项目5的UUID)

{0,ATT_PERMISSIONS_READ,2,sizeof(my_appearanceCharVal),(u8*)(&my_characterUUID), (u8*)(my_appearanceCharVal), 0, 0},

// 项目5:UUID=自定义UUID,值=自定义内容

{0,ATT_PERMISSIONS_READ,2,sizeof (my_appearance), (u8*)(&my_appearanceUUID),     (u8*)(&my_appearance), 0, 0},

// 项目6:UUID=my_characterUUID=0x2803,值=5字节的特征声明(操作权限、my_Attributes数组中项目7所在的下标、项目7的UUID)

{0,ATT_PERMISSIONS_READ,2,sizeof(my_periConnParamCharVal),(u8*)(&my_characterUUID), (u8*)(my_periConnParamCharVal), 0, 0},

// 项目7:UUID=自定义UUID,值=自定义内容

{0,ATT_PERMISSIONS_READ,2,sizeof (my_periConnParameters),(u8*)(&my_periConnParamUUID),     (u8*)(&my_periConnParameters), 0, 0},
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:38 回複數:3
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2026-1-12 18:08
 
©2010-2026 Purasbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。