天天看點

TI BLE 1.4.1 協定棧 定義128位UUID的方法

在BLE應用過程中,一般都會自定義服務或特征的UUID,如果使用預設的16位方式定義,那麼UUID的一部分将由TI的協定棧自動添加,為了完全控制UUID長度和内容,我們 可以把他定義為128位的,方式如下:

定義一個宏:

#define TI_UUID(uuid) 0x0,0xb0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x51,0x04,LO_UINT16(uuid),HI_UINT16(uuid),0x00,0xF0

定義服務UUID時可以引用上述宏:

// Simple GATT Profile Service UUID: 0xFFF0
CONST uint8 simpleProfileServUUID[ATT_UUID_SIZE] =
{ 
    TI_UUID(SIMPLEPROFILE_SERV_UUID)    
};
           

其中SIMPLEPROFILE_SERV_UUID是我們指定的服務UUID的一部分:

// Simple Profile Service UUID
#define SIMPLEPROFILE_SERV_UUID               0xEFE0
           

這樣便可以合成了共16位元組,128位的UUID,每一個位元組我們都可以自定義。

接下來,該服務包含的特征也用同樣的方式定義出來,然後添加在simpleProfileAttrTbl[]數組中,注意修改該數組裡相應内容的UUID大小,16位的UUID要用ATT_BT_UUID_SIZE來定義,128位的要用ATT_UUID_SIZE來定義,否則會産生錯誤。同時也要注意READ,WRITE回調函數中的uuid大小。