2017-12-22 30 views
0

나는 내가 완전히 오피스 문서를 읽고 난 사무실 웹 사이트에서 샘플 소스 코드를 다운로드 저에너지 블루투스 장치에서 작업 https://developer.android.com/guide/topics/connectivity/bluetooth-le.html블루투스 로우 에너지 UUID 이제 수

모두 완벽하게 작동하지만 난 그들이 수행하는 방법을 모른다 UUID 번호 예 'public static String HEART_RATE_MEASUREMENT = "00002a37-0000-1000-8000-00805f9b34fb". enter image description here

+0

https://www.bluetooth.com/specifications/assigned-numbers에서도 보았습니다. 그러나 나는 어떻게 모른다. –

+0

* "나는 그들이 UUID 번호를 얻는 방법을 모른다"* ... 이것은 혼란 스럽다. 당신이 갇혀있는 것에 대해 좀 더 명확하게 해줄 수 있습니까? – codeMagic

답변

0

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 }; 

구조체 UUID는 {길고 짧은 [2], 숯 [8]} 그래서 주목되는 문자열 (-8000-)에서 제 3 그룹 (하는 0x00을 0x80)으로 인해 프로세서 엔디 언.

얻어진 이진 코드는 실제로 80 5F 9B 34 FB

바이트 순서 10 00 80 00 00 00 00 00 00이 완전히 x86 프로세서를 위해 스크램블 37 2A 것이다.

이러한 이유로 네트워크 바이트 순서가 프로세서 종속 바이트 순서와 다를 수 있으므로 UUID는 일반적으로 웹 응용 프로그램의 텍스트로 전달됩니다.

Microsoft 컴파일러에는 변환에 도움이되는 MIDL (q.v.)과 같은 일부 확장이 있지만 위의 그림과 같이 많은 프로그래머가 직접 다시 작성할 수 있습니다.