設置 | 登錄 | 註冊

目前共有4篇帖子。

關於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},

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張