蓝牙0906UUID

蓝牙0906UUID,第1张

蓝牙 BLE 三种 UUID 格式转换


蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID、32 bit UUID、128 bit UUID。

但是熟悉安卓开发的小伙伴都知道接口都 UUID 格式,fromString 时候 16bit 的 UUID 该咋办呢?

16bit 和 32bit 的 UUID 与 128bit 的值之间转换关系:

128_bit_UUID = 16_bit_UUID * 2^96 + Bluetooth_Base_UUID

128_bit_UUID = 32_bit_UUID * 2^96 + Bluetooth_Base_UUID

其中 Bluetooth_Base_UUID 定义为 00000000-0000-1000-8000-00805F9B34FB 

如果你想说这是啥呀,那我这样说你应该可以明白点:

若 16 bit UUID为xxxx,那么 128 bit UUID 为 0000xxxx-0000-1000-8000-00805F9B34FB

若 32 bit UUID为xxxxxxxx,那么 128 bit UUID 为 xxxxxxxx-0000-1000-8000-00805F9B34FB

看到我的现在:【我的UUID是FEE7 】
  [distance=-1.0], 
  [rssi=-67], 
  [UUIDs=[0000fee7-0000-1000-8000-00805f9b34fb]],
  [address=01:02:03:04:05:06], 
  [localName=TW00010203040506],
  [flags=Flags(LimitedDiscoverable=false,
  GeneralDiscoverable=true,LegacySupported=false,
  ControllerSimultaneitySupported=false,HostSimultaneitySupported=false)],
  [ADManufacturerSpecific=ADManufacturerSpecific(Length=9,Type=0xFF,CompanyID=0x0000)]
  得到:若 16 bit UUID为xxxx,那么 128 bit UUID 为 0000xxxx-0000-1000-8000-00805F9B34FB 
  也就是我的UUID是FEE7 在哪里修改?
{#IF 0  
  再看一个BM77的
  [distance=-1.0], 
  [rssi=-80], 
  [UUIDs=[000018f0-0000-1000-8000-00805f9b34fb]], 
  [address=34:81:F4:15:F3:26], 
  [localName=TW003481F415F326], 
  [flags=Flags(LimitedDiscoverable=false,
  GeneralDiscoverable=true,LegacySupported=true,
  ControllerSimultaneitySupported=false,HostSimultaneitySupported=false)], 
  [ADManufacturerSpecific=ADManufacturerSpecific(Length=9,Type=0xFF,CompanyID=0x5354)]
 #ENDIF
 
 看文档 我修改
 distance=0.5552121421125982],
 [rssi=-66], 
 [UUID=00010203-0405-0607-0809-0a0b0c0d0e0f], 
 [Major=772], 
 [Minor=1286], 
 [Power=-70],
 [UUIDs=[0000fee7-0000-1000-8000-00805f9b34fb]],
 [address=01:02:03:04:05:06], 
 [localName=TW00010203040506], 
 [flags=Flags(LimitedDiscoverable=false,GeneralDiscoverable=true,
 LegacySupported=false,ControllerSimultaneitySupported=false,HostSimultaneitySupported=false)]
 
 我多了一个UUID
 我的代码是:
     for(char y=0;y<16;y++)UUID[y]=y;
     也就是0-1-2-3
     00010203
     我修改前面4个看看
     static uint8_t UUID[] = {0x00 ,0x00,0x18,0xF0,0xB2,0xF8,0x47,0x92,0x85,0x7A,0x2D,0x26,0x8E,0x4F,0x6D,0x94};

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/926553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存