[英]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.