格式类型

格式字段决定了特征值中包含的单个值的格式。

本页所含信息在“蓝牙核心规格”第 3 卷 G 部分第 3.3.3.5.2 节中引用。

如果格式不是完整的八位字节数字,则数据应包含在值的最低有效位中,而且其他位应在传输时设置为零,并在接收时忽略。如果特征值少于八位字节,它将占用整个字节。定义了以下格式值:

特征格式类型

格式 短名称 说明 指数值
0x00 rfu 留待将来使用
0x01 布尔值 无符号 1 位;0=假,1=真
0x02 2bit 无符号 2 位整数
0x03 nibble 无符号 4 位整数
0x04 uint8 无符号 8 位整数
​0x05 uint12 无符号 12 位整数
​0x06 uint16 无符号 16 位整数
0x07 uint24 无符号 24 位整数
​0x08 uint32 无符号 32 位整数
​0x09 uint48 无符号 48 位整数
​0x0A uint64 无符号 64 位整数
​0x0B uint128 无符号 128 位整数
​0x0C sint8 有符号 8 位整数
​0x0D sint12 有符号 12 位整数
​0x0E sint16 有符号 16 位整数
​0x0F sint24 有符号 24 位整数
​0x10 sint32 有符号 32 位整数
​0x11 sint48 有符号 48 位整数
​0x12 sint64 有符号 64 位整数
​0x13 sint128 有符号 128 位整数
​0x14 float32 IEEE-754 32 位浮点
​0x15 float64 IEEE-754 64 位浮点
​0x16 SFLOAT IEEE-11073 16 位 SFLOAT
​​0x17 FLOAT IEEE-11073 32 位 FLOAT
​​0x18 duint16 IEEE-20601 格式
​​0x19 utf8s UTF-8 字符串
​0x1A utf16s UTF-16 字符串
​​0x1B struct Opaque 结构
​​0x1C-0xFF rfu 留待将来使用

其他格式注意事项

  • 对 IPv4 地址编码时,应使用 uint32 格式类型。
  • 对 IPv6 地址编码时,应使用 uint128 格式类型。
  • 对蓝牙 BD_ADDR 编码时,应使用 uint48 格式类型。
  • duint16 是串接在一起的两个 uint16 值。

Additional Formatting Notes

  • When encoding an IPv4 address, the uint32 Format type shall be used.
  • When encoding an IPv6 address, the uint128 Format type shall be used.
  • When encoding a Bluetooth BD_ADDR, the uint48 Format type shall be used.
  • A duint16 is two uint16 values concatenated together.