簡體   English   中英

藍牙低功耗UUID號

[英]Bluetooth Low Energy UUID number

現在,我在藍牙低功耗設備上工作,我已完全閱讀了辦公室文檔,並從辦公室網站https://developer.android.com/guide/topics/connectivity/bluetooth-le.html下載了示例源代碼。

一切都工作正常,但我不知道它們的取值方式是UUID數字,例如'public static String HEART_RATE_MEASUREMENT =“ 00002a37-0000-1000-8000-00805f9b34fb”。 在此處輸入圖片說明

使用UUID的C ++函數需要一個指向16字節結構(不是字符串)的指針。

如果將UUID作為字符串給出,則必須將其更改為如下結構:

字符串HEART_RATE_MEASUREMENT =“ 00002a37-0000-1000-8000-00805f9b34fb”;

UUID Heart_Rate_UUID = { 0x00002a37, 0x0000, 0x1000, 0x00, 0x80, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb };

struct UUID是{long,short [2],char [8]},因此請注意,由於處理器的字節順序,字符串(-8000-)中的第三組必須顛倒(0x00,0x80)。

生成的二進制代碼實際上將是37 2a 00 00 00 00 00 10 00 80 00 80 5f 9b 34 fb

對於x86處理器,字節順序是完全混亂的。

因此,由於網絡字節順序可能與處理器相關的字節順序不同,因此UUID通常在Web應用程序中作為文本傳遞。

Microsoft編譯器具有一些擴展名,例如MIDL(qv),可以幫助進行轉換,但是正如我上面顯示的那樣,許多程序員只是手動重寫了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM