蓝牙0906UUID

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值