蓝牙设备的特征值及其编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝牙设备的特征值及其编码相关的知识,希望对你有一定的参考价值。

参考技术A 最近在做蓝牙相关的项目。方案公司给的文档是他们之前的文档,而给我们的方案是在他们修改之后的。所以文档对于我们来说,错漏很多。开发的过程不是很愉快。安卓的同事之前没做过蓝牙的项目,我也才发现很多东西自己知道但是解释不出来。比如我的UUIDString是"FFAE",安卓的同事也用"FFA1",结果有问题,我就叫他用"0000FFA1-0000-1000-8000-00805F9B34FB ",但是我也不知道为什么。

所以收集了一些资料整理如下:

蓝牙广播中对UUID的格式定义有三种16bit,32bit和12bit。
16bit和32bit和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

所以用ios设备和安卓设备搜索出来的结果显示的是不一样的,但是结果并不妨碍我们的开发,比如:
安卓 ios
UUID=0000fff1-0000-1000-8000-00805f9b34fb fff1
UUID=0000fff2-0000-1000-8000-00805f9b34fb fff2
UUID=0000ffa1-0000-1000-8000-00805f9b34fb ffa1
UUID=0000ffa2-0000-1000-8000-00805f9b34fb ffa2

另外 蓝牙的相关服务名称及ID 可以查询:

//基础ID
服务名称:Base GUID
服务编码:00000000-0000-1000-8000-00805F9B34FB

// GATT 配置
服务名称:GAP
服务编码:00001800-0000-1000-8000-00805F9B34FB
服务名称:GATT
服务编码:00001801-0000-1000-8000-00805F9B34FB
服务名称:IMMEDIATE ALERT
服务编码:00001802-0000-1000-8000-00805F9B34FB
服务名称:LINK LOSS
服务编码:00001803-0000-1000-8000-00805F9B34FB
服务名称:TX POWER
服务编码:00001804-0000-1000-8000-00805F9B34FB

// GAP 服务
服务名称:HEALTH THERMOMETER
服务编码:00001809-0000-1000-8000-00805F9B34FB
服务名称:DEVICE INFORMATION
服务编码:0000180A-0000-1000-8000-00805F9B34FB
服务名称:HEART RATE
服务编码:0000180D-0000-1000-8000-00805F9B34FB
服务名称:Phone Alert Status Service
服务编码:0000180E-0000-1000-8000-00805F9B34FB
服务名称:Battery Service
服务编码:0000180F-0000-1000-8000-00805F9B34FB
服务名称:Blood Pressure
服务编码:00001810-0000-1000-8000-00805F9B34FB
服务名称:Human Interface Device
服务编码:00001812-0000-1000-8000-00805F9B34FB
服务名称:Scan Parameters
服务编码:00001813-0000-1000-8000-00805F9B34FB
服务名称:Running Speed and Cadence
服务编码:00001814-0000-1000-8000-00805F9B34FB
服务名称:Automation IO
服务编码:00001815-0000-1000-8000-00805F9B34FB
服务名称:CYCLING Speed and Cadence
服务编码:00001816-0000-1000-8000-00805F9B34FB
服务名称:Pulse Oximeter
服务编码:00001817-0000-1000-8000-00805F9B34FB
服务名称:CYCLING Power
服务编码:00001818-0000-1000-8000-00805F9B34FB
服务名称:Location and Navigation Service 服务编码:00001819-0000-1000-8000-00805F9B34FB
服务名称:Continous Glucose Measurement Service
服务编码:0000181A-0000-1000-8000-00805F9B34FB
服务名称:USER DATA
服务编码:0000181C-0000-1000-8000-00805F9B34FB
服务名称:TEMPERATURE MEASUREMENT
服务编码:00002A1C-0000-1000-8000-00805F9B34FB
服务名称:TEMPERATURE TYPE
服务编码:00002A1D-0000-1000-8000-00805F9B34FB
服务名称:INTERMEDIATE TEMPERATURE
服务编码:00002A1E-0000-1000-8000-00805F9B34FB
服务名称:TEMPERATURE in Celsius
服务编码:00002A1F-0000-1000-8000-00805F9B34FB
服务名称:TEMPERATURE in Fahrenheit
服务编码:00002A20-0000-1000-8000-00805F9B34FB

服务名称:MEASUREMENT INTERVAL
服务编码:00002A21-0000-1000-8000-00805F9B34FB
服务名称:Boot Keyboard Input Report
服务编码:00002A22-0000-1000-8000-00805F9B34FB
服务名称:System ID
服务编码:00002A23-0000-1000-8000-00805F9B34FB
服务名称:Model Number String
服务编码:00002A24-0000-1000-8000-00805F9B34FB
服务名称:Serial Number String
服务编码:00002A25-0000-1000-8000-00805F9B34FB
服务名称:Firmware Revision String
服务编码:00002A26-0000-1000-8000-00805F9B34FB
服务名称:Hardware Revision String
服务编码:00002A27-0000-1000-8000-00805F9B34FB
服务名称:Software Revision String
服务编码:00002A28-0000-1000-8000-00805F9B34FB

服务名称:Manufacturer Name String
服务编码:00002A29-0000-1000-8000-00805F9B34FB
服务名称:IEEE 11073-20601 Regulatory
服务编码:00002A2A-0000-1000-8000-00805F9B34FB
服务名称:Current Time
服务编码:00002A2B-0000-1000-8000-00805F9B34FB
服务名称:Elevation
服务编码:00002A2C-0000-1000-8000-00805F9B34FB
服务名称:Latitude
服务编码:00002A2D-0000-1000-8000-00805F9B34FB
服务名称:Longitude
服务编码:00002A2E-0000-1000-8000-00805F9B34FB
服务名称:Position 2D
服务编码:00002A2F-0000-1000-8000-00805F9B34FB
服务名称:Position 3D
服务编码:00002A30-0000-1000-8000-00805F9B34FB
服务名称:Scan Refresh
服务编码:00002A31-0000-1000-8000-00805F9B34FB
服务名称:Boot Keyboard Output Report
服务编码:00002A32-0000-1000-8000-00805F9B34FB
服务名称:Boot Mouse Input Report
服务编码:00002A33-0000-1000-8000-00805F9B34FB
服务名称:Glucose Measurement Context
服务编码:00002A34-0000-1000-8000-00805F9B34FB
服务名称:Blood Pressure Measurement
服务编码:00002A35-0000-1000-8000-00805F9B34FB
服务名称:Intermediate Cuff Pressure
服务编码:00002A36-0000-1000-8000-00805F9B34FB
服务名称:HEART RATE MEASUREMENT
服务编码:00002A37-0000-1000-8000-00805F9B34FB
服务名称:BODY SENSOR LOCATION
服务编码:00002A38-0000-1000-8000-00805F9B34FB
服务名称:HEART RATE CONTROL POINT
服务编码:00002A39-0000-1000-8000-00805F9B34FB
服务名称:Removable
服务编码:00002A3A-0000-1000-8000-00805F9B34FB
服务名称:Service Required
服务编码:00002A3B-0000-1000-8000-00805F9B34FB
服务名称:Scientific Temperature in Celsius
服务编码:00002A3C-0000-1000-8000-00805F9B34FB
服务名称:String
服务编码:00002A3D-0000-1000-8000-00805F9B34FB
服务名称:Network Availability
服务编码:00002A3E-0000-1000-8000-00805F9B34FB
服务名称:Alert Status
服务编码:00002A3F-0000-1000-8000-00805F9B34FB
服务名称:Ringer Control Point
服务编码:00002A40-0000-1000-8000-00805F9B34FB
服务名称:Ringer Setting
服务编码:00002A41-0000-1000-8000-00805F9B34FB
服务名称:Alert Category ID Bit Mask
服务编码:00002A42-0000-1000-8000-00805F9B34FB
服务名称:Alert Category ID
服务编码:00002A43-0000-1000-8000-00805F9B34FB
服务名称:Alert Notification Control Point
服务编码:00002A44-0000-1000-8000-00805F9B34FB
服务名称:Unread Alert Status
服务编码:00002A45-0000-1000-8000-00805F9B34FB
服务名称:New Alert
服务编码:00002A46-0000-1000-8000-00805F9B34FB
服务名称:Supported New Alert Category
服务编码:00002A47-0000-1000-8000-00805F9B34FB
服务名称:Supported Unread Alert Category
服务编码:00002A48-0000-1000-8000-00805F9B34FB
服务名称:Blood Pressure Feature
服务编码:00002A49-0000-1000-8000-00805F9B34FB
服务名称:HID Information
服务编码:00002A4A-0000-1000-8000-00805F9B34FB
服务名称:Report Map
服务编码:00002A4B-0000-1000-8000-00805F9B34FB
服务名称:HID Control Point
服务编码:00002A4C-0000-1000-8000-00805F9B34FB
服务名称:Report
服务编码:00002A4D-0000-1000-8000-00805F9B34FB
服务名称:Protocol Mode
服务编码:00002A4E-0000-1000-8000-00805F9B34FB
服务名称:Scan Interval Window
服务编码:00002A4F-0000-1000-8000-00805F9B34FB
服务名称:PnP ID
服务编码:00002A50-0000-1000-8000-00805F9B34FB
服务名称:Glucose Features
服务编码:00002A51-0000-1000-8000-00805F9B34FB
服务名称:Record Access Control Point
服务编码:00002A52-0000-1000-8000-00805F9B34FB
服务名称:RSC Measurement
服务编码:00002A53-0000-1000-8000-00805F9B34FB
服务名称:RSC Feature
服务编码:00002A54-0000-1000-8000-00805F9B34FB
服务名称:SC CONTROL POINT
服务编码:00002A55-0000-1000-8000-00805F9B34FB
服务名称:Digital Input
服务编码:00002A56-0000-1000-8000-00805F9B34FB
服务名称:Digital Output
服务编码:00002A57-0000-1000-8000-00805F9B34FB
服务名称:Analog Input
服务编码:00002A58-0000-1000-8000-00805F9B34FB
服务名称:Analog Output
服务编码:00002A59-0000-1000-8000-00805F9B34FB
服务名称:Aggregate Input
服务编码:00002A5A-0000-1000-8000-00805F9B34FB
服务名称:CSC MEASUREMENT
服务编码:00002A5B-0000-1000-8000-00805F9B34FB
服务名称:CSC FEATURE
服务编码:00002A5C-0000-1000-8000-00805F9B34FB
服务名称:SENSOR LOCATION
服务编码:00002A5D-0000-1000-8000-00805F9B34FB
服务名称:Pulse Oximetry Spot-check Measurement
服务编码:00002A5E-0000-1000-8000-00805F9B34FB
服务名称:Pulse Oximetry Continuous Measurement
服务编码:00002A5F-0000-1000-8000-00805F9B34FB
服务名称:Pulse Oximetry Pulsatile Event
服务编码:00002A60-0000-1000-8000-00805F9B34FB
服务名称:Pulse Oximetry Features
服务编码:00002A61-0000-1000-8000-00805F9B34FB
服务名称:Pulse Oximetry Control Point
服务编码:00002A62-0000-1000-8000-00805F9B34FB
服务名称:Cycling Power Measurement Characteristic
服务编码:00002A63-0000-1000-8000-00805F9B34FB
服务名称:Cycling Power Vector Characteristic
服务编码:00002A64-0000-1000-8000-00805F9B34FB
服务名称:Cycling Power Feature Characteristic
服务编码:00002A65-0000-1000-8000-00805F9B34FB
服务名称:Cycling Power Control Point Characteristic
服务编码:00002A66-0000-1000-8000-00805F9B34FB
服务名称:Location and Speed Characteristic
服务编码:00002A67-0000-1000-8000-00805F9B34FB
服务名称:Navigation Characteristic
服务编码:00002A68-0000-1000-8000-00805F9B34FB
服务名称:Position Quality Characteristic
服务编码:00002A69-0000-1000-8000-00805F9B34FB
服务名称:LN Feature Characteristic
服务编码:00002A6A-0000-1000-8000-00805F9B34FB
服务名称:LN Control Point Characteristic
服务编码:00002A6B-0000-1000-8000-00805F9B34FB
服务名称:CGM Measurement Characteristic
服务编码:00002A6C-0000-1000-8000-00805F9B34FB
服务名称:CGM Features Characteristic
服务编码:00002A6D-0000-1000-8000-00805F9B34FB
服务名称:CGM Status Characteristic
服务编码:00002A6E-0000-1000-8000-00805F9B34FB
服务名称:CGM Session Start Time Characteristic
服务编码:00002A6F-0000-1000-8000-00805F9B34FB
服务名称:Application Security Point Characteristic
服务编码:00002A70-0000-1000-8000-00805F9B34FB
服务名称:CGM Specific Ops Control Point Characteristic
服务编码:00002A71-0000-1000-8000-00805F9B34FB
服务名称:Glass Identity
服务编码:F96647CF-7F25-4277-843D-F407B4192F8B
// GATT 属性类型
服务名称:Primary Service
服务编码:00002800-0000-1000-8000-00805F9B34FB
服务名称:Secondary Service
服务编码:00002801-0000-1000-8000-00805F9B34FB
服务名称:Include
服务编码:00002802-0000-1000-8000-00805F9B34FB
服务名称:Characteristic
服务编码:00002803-0000-1000-8000-00805F9B34FB
// GATT CHARACTERISTIC 描述符
服务名称:Characteristic Extended Properties
服务编码:00002900-0000-1000-8000-00805F9B34FB
服务名称:Characteristic User Description
服务编码:00002901-0000-1000-8000-00805F9B34FB
服务名称:Client Characteristic Configuration
服务编码:00002902-0000-1000-8000-00805F9B34FB
服务名称:Server Characteristic Configuration
服务编码:00002903-0000-1000-8000-00805F9B34FB
服务名称:Characteristic Format
服务编码:00002904-0000-1000-8000-00805F9B34FB
服务名称:Characteristic Aggregate Format
服务编码:00002905-0000-1000-8000-00805F9B34FB
服务名称:Valid Range
服务编码:00002906-0000-1000-8000-00805F9B34FB
服务名称:External Report Reference
服务编码:00002907-0000-1000-8000-00805F9B34FB
服务名称:Report Reference
服务编码:00002908-0000-1000-8000-00805F9B34FB
// GATT CHARACTERISTIC 类型
服务名称:Device Name
服务编码:00002A00-0000-1000-8000-00805F9B34FB
服务名称:Appearance
服务编码:00002A01-0000-1000-8000-00805F9B34FB
服务名称:Peripheral Privacy Flag
服务编码:00002A02-0000-1000-8000-00805F9B34FB
服务名称:Reconnection Address
服务编码:00002A03-0000-1000-8000-00805F9B34FB
服务名称:Peripheral Preferred Connection Parameters
服务编码:00002A04-0000-1000-8000-00805F9B34FB
服务名称:Service Changed
服务编码:00002A05-0000-1000-8000-00805F9B34FB
服务名称:Alert Level
服务编码:00002A06-0000-1000-8000-00805F9B34FB
服务名称:Tx Power Level
服务编码:00002A07-0000-1000-8000-00805F9B34FB
服务名称:Date Time
服务编码:00002A08-0000-1000-8000-00805F9B34FB
服务名称:Day of Week
服务编码:00002A09-0000-1000-8000-00805F9B34FB
服务名称:Day Date Time
服务编码:00002A0A-0000-1000-8000-00805F9B34FB
服务名称:Exact Time 100
服务编码:00002A0B-0000-1000-8000-00805F9B34FB
服务名称:Exact Time 256
服务编码:00002A0C-0000-1000-8000-00805F9B34FB
服务名称:DST Offset
服务编码:00002A0D-0000-1000-8000-00805F9B34FB
服务名称:Time Zone
服务编码:00002A0E-0000-1000-8000-00805F9B34FB
服务名称:Local Time Information
服务编码:00002A0F-0000-1000-8000-00805F9B34FB
服务名称:Secondary Time Zone
服务编码:00002A10-0000-1000-8000-00805F9B34FB
服务名称:Time with DST
服务编码:00002A11-0000-1000-8000-00805F9B34FB
服务名称:Time Accuracy
服务编码:00002A12-0000-1000-8000-00805F9B34FB
服务名称:Time Source
服务编码:00002A13-0000-1000-8000-00805F9B34FB
服务名称:Reference Time Information
服务编码:00002A14-0000-1000-8000-00805F9B34FB
服务名称:Time Broadcast
服务编码:00002A15-0000-1000-8000-00805F9B34FB
服务名称:Time Update Control Point
服务编码:00002A16-0000-1000-8000-00805F9B34FB
服务名称:Time Update State
服务编码:00002A17-0000-1000-8000-00805F9B34FB
服务名称:Glucose Measurement
服务编码:00002A18-0000-1000-8000-00805F9B34FB
服务名称:Battery Level
服务编码:00002A19-0000-1000-8000-00805F9B34FB
服务名称:Battery Power State
服务编码:00002A1A-0000-1000-8000-00805F9B34FB
服务名称:Battery Level State
服务编码:00002A1B-0000-1000-8000-00805F9B34FB
服务名称:Key Service
服务编码:0000FFE0-0000-1000-8000-00805F9B34FB
服务名称:Key Service Characteristic
服务编码:0000FFE1-0000-1000-8000-00805F9B34FB
// TI Sensor TAG Device
服务名称:UUID_IRT_SERV
服务编码:F000AA00-0451-4000-B000-000000000000
服务名称:UUID_IRT_DATA
服务编码:F000AA01-0451-4000-B000-000000000000 // ObjectLSB:ObjectMSB:AmbientLSB:AmbientMSB
服务名称:UUID_IRT_CONF
服务编码:F000AA02-0451-4000-B000-000000000000 // 0: disable, 1: enable
服务名称:UUID_IRT_PERI
服务编码:F000AA03-0451-4000-B000-000000000000 // Period in tens of milliseconds
服务名称:UUID_ACC_SERV
服务编码:F000AA10-0451-4000-B000-000000000000
服务名称:UUID_ACC_DATA
服务编码:F000AA11-0451-4000-B000-000000000000
服务名称:UUID_ACC_CONF
服务编码:F000AA12-0451-4000-B000-000000000000 // 0: disable, 1: enable
服务名称:UUID_ACC_PERI
服务编码:F000AA13-0451-4000-B000-000000000000 // Period in tens of milliseconds
服务名称:UUID_HUM_SERV
服务编码:F000AA20-0451-4000-B000-000000000000
服务名称:UUID_HUM_DATA
服务编码:F000AA21-0451-4000-B000-000000000000
服务名称:UUID_HUM_CONF
服务编码:F000AA22-0451-4000-B000-000000000000 // 0: disable, 1: enable
服务名称:UUID_HUM_PERI
服务编码:F000AA23-0451-4000-B000-000000000000 // Period in tens of milliseconds
服务名称:UUID_MAG_SERV
服务编码:F000AA30-0451-4000-B000-000000000000
服务名称:UUID_MAG_DATA
服务编码:F000AA31-0451-4000-B000-000000000000
服务名称:UUID_MAG_CONF
服务编码:F000AA32-0451-4000-B000-000000000000 // 0: disable, 1: enable
服务名称:UUID_MAG_PERI
服务编码:F000AA33-0451-4000-B000-000000000000 // Period in tens of milliseconds
服务名称:UUID_BAR_SERV
服务编码:F000AA40-0451-4000-B000-000000000000
服务名称:UUID_BAR_DATA
服务编码:F000AA41-0451-4000-B000-000000000000
服务名称:UUID_BAR_CONF
服务编码:F000AA42-0451-4000-B000-000000000000 // 0: disable, 1: enable
服务名称:UUID_BAR_CALI
服务编码:F000AA43-0451-4000-B000-000000000000 // Calibration characteristic
服务名称:UUID_BAR_PERI
服务编码:F000AA44-0451-4000-B000-000000000000 // Period in tens of milliseconds
服务名称:UUID_GYR_SERV
服务编码:F000AA50-0451-4000-B000-000000000000
服务名称:UUID_GYR_DATA
服务编码:F000AA51-0451-4000-B000-000000000000
服务名称:UUID_GYR_CONF
服务编码:F000AA52-0451-4000-B000-000000000000 // 0: disable, bit 0: enable x, bit 1: enable y, bit 2: enable z
服务名称:UUID_GYR_PERI
服务编码:F000AA53-0451-4000-B000-000000000000 // Period in tens of milliseconds
服务名称:TEST_SERVICE
服务编码:F000AA60-0451-4000-B000-000000000000
服务名称:TEST_DATA
服务编码:F000AA61-0451-4000-B000-000000000000
服务名称:TEST_CONFIG
服务编码:F000AA62-0451-4000-B000-000000000000 // Bit 7: Enable Test Mode; Bit 0-1 LED BitMask
服务名称:Connection Control Service
服务编码:F000CCC0-0451-4000-B000-000000000000
服务名称:Connection Parameters
服务编码:F000CCC1-0451-4000-B000-000000000000
服务名称:Request Connection Parameters
服务编码:F000CCC2-0451-4000-B000-000000000000
服务名称:Disconnect Request
服务编码:F000CCC3-0451-4000-B000-000000000000
服务名称:OAD Service
服务编码:F000FFC0-0451-4000-B000-000000000000
服务名称:OAD Image Identify
服务编码:F000FFC1-0451-4000-B000-000000000000
服务名称:OAD Image Block
服务编码:F000FFC2-0451-4000-B000-000000000000’)

转自 https://blog.csdn.net/chy555chy/article/details/52230651?locationNum=5

低功耗蓝牙Ble的详细使用流程

参考技术A 中心设备 :判断蓝牙是否可用->打开蓝牙->开始扫描->获取被扫描到的设备->连接设备->发现服务->获取到指定特征->写入特征值
外围设备 :判断蓝牙是否可用->打开蓝牙->创建广播数据->发送广播->添加服务至广播->根据监听获取写入的数据
下图是中心设备的使用流程图 来源

不是任何设备都支持BLE,最开始要确定设备是否支持,还要确定蓝牙已经打开。

02 01 06 是一个AD Structure:Data的长度是02;Data是01 06;AD Type是01(Flags);AD Data是06,表明支持General Discoverable Mode、不支持BR/EDR。
03 03 aa fe 是一个AD Structure:Data的长度是03;Data是03 aa fe;AD Type是03(16 bits的Service UUID);AD Data是aa fe,是Eddystone profile的Service UUID。 AD Type查询

以上是关于蓝牙设备的特征值及其编码的主要内容,如果未能解决你的问题,请参考以下文章

iOS 蓝牙连接获取MAC地址的方法

微信小程序使用蓝牙通信协议连接硬件整理总结(蓝牙连接获取设备UUID开水器notify及关闭蓝牙)

使用核心蓝牙 ios 扫描外围设备时如何更改特征顺序

蓝牙 GATT 向 BLE 设备发送数据

微信小程序蓝牙(BLE)开发与蓝牙设备数据交互开发总结

核心蓝牙特征值写入错误