2012-04-20 18 views
13

Tôi muốn xây dựng một đơn giản Bluetooth Low Energy dựa trên ứng dụng bằng cách sử dụng hồ sơ tùy chỉnh. Các cấu hình/dịch vụ/đặc điểm/mô tả được sử dụng sử dụng UUID 16 bit như được thấy trên official site.Có thể sử dụng dải UUID Bluetooth nào cho cấu hình do nhà cung cấp xác định?

Các UUIDs 16-bit là các phím tắt cho một 128-bit tương ứng UUID và được dịch là

128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID 

với Bluetooth_Base_UUID00000000-0000-1000-8000-00805F9B34FB. (Nguồn: Đặc điểm kỹ thuật Bluetooth Core Phần 3 Phần F Phần 3.2.1)

Vì tôi đang sử dụng hồ sơ tùy chỉnh, tôi tự hỏi những UUID nào tôi được phép sử dụng.

  • Những loạt các UUIDs 128-bit có thể được sử dụng để mô tả nhà cung cấp thuộc tính quy định tại Bluetooth Low Energy?

Trả lời

18

Tất cả UUID 16 bit và 32 bit trên UUID cơ bản mà bạn hiển thị ở trên được dành riêng cho các mục trong thông số kỹ thuật (hoặc thông số kỹ thuật trong tương lai). Vì vậy, các ứng dụng của nhà cung cấp miễn phí sử dụng bất kỳ UUID 128 bit nào nhỏ hơn UUID cơ bản. Không có không gian dành riêng cho các nhà cung cấp để sử dụng UUID 16 bit hoặc 32 bit.

+2

Bạn có thể chỉ định nguồn được xác nhận rằng tất cả UUID nhỏ hơn UUID cơ sở đều miễn phí cho bất kỳ ai không? – Etan

+7

Phần 3 Phần F Phần 3.2.1 "Ứng dụng sẽ không chuyển UUID 128 bit thành UUID 16 bit để so sánh vì không đảm bảo rằng UUID 128 bit dựa trên Bluetooth Base UUID; là một UUID 128-bit do nhà cung cấp xác định. " Ngoài ra, hãy xem Phần 3 Phần B 2.5 và được nêu rõ nhất trong https://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm (yêu cầu đăng ký) – TJD

+0

https://developer.bluetooth.org/gatt/services/Pages /ServicesHome.aspx – Tobias

8

Bạn có thể đăng ký UUID 16 bit bằng Bluetooth SIG: https://www.bluetooth.org/en-us/Pages/LoginRestrictedAll/16-bit-UUIDs-member.aspx Điều này rất hữu ích nếu bạn cần lưu byte (vì không gian, năng lượng hoặc các lý do hiệu suất khác).

giải thích của tôi về spec Bluetooth là bạn có thể sử dụng bất kỳ 128-bit UUID ngoài của Bluetooth UUID Base "phạm vi", tự do:

xxxxxxxx-0000-1000-8000-00805F9B34FB 

Tôi đã đặt phạm vi trong dấu ngoặc kép, bởi vì công thức chuyển đổi 16 bit đến 128 bit của thông số kỹ thuật mà bạn đã trích dẫn, cho thấy rằng các byte ngoài cùng bên trái là quan trọng nhất (lớn cuối cùng!). Lưu ý rằng nếu bạn coi UUID là số nguyên 128 bit, thì phạm vi "UUID cơ sở Bluetooth" không phải là phạm vi giá trị liên tục.

0

Bạn không thể sử dụng UUID 16 bit hoặc 32 bit trừ khi chúng được chỉ định cho bạn theo số registering.

Sử dụng UUID ngắn không được đăng ký sẽ dẫn đến không tương thích với thiết bị của bạn và các tiêu chuẩn trong tương lai và các số đã đăng ký của thiết bị khác. Trình độ Bluetooth sẽ yêu cầu số hợp lệ.

Khi không đăng ký, tạo riêng UUIDs 128-bit hợp lệ của bạn:

Các vấn đề liên quan