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

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

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

特征格式类型

格式短名称说明指数值
0x00rfu留待将来使用
0x01布尔值无符号 1 位;0=假,1=真
0x022bit无符号 2 位整数
0x03nibble无符号 4 位整数
0x04uint8无符号 8 位整数
​0x05uint12无符号 12 位整数
​0x06uint16无符号 16 位整数
0x07uint24无符号 24 位整数
​0x08uint32无符号 32 位整数
​0x09uint48无符号 48 位整数
​0x0Auint64无符号 64 位整数
​0x0Buint128无符号 128 位整数
​0x0Csint8有符号 8 位整数
​0x0Dsint12有符号 12 位整数
​0x0Esint16有符号 16 位整数
​0x0Fsint24有符号 24 位整数
​0x10sint32有符号 32 位整数
​0x11sint48有符号 48 位整数
​0x12sint64有符号 64 位整数
​0x13sint128有符号 128 位整数
​0x14float32IEEE-754 32 位浮点
​0x15float64IEEE-754 64 位浮点
​0x16SFLOATIEEE-11073 16 位 SFLOAT
​​0x17FLOATIEEE-11073 32 位 FLOAT
​​0x18duint16IEEE-20601 格式
​​0x19utf8sUTF-8 字符串
​0x1Autf16sUTF-16 字符串
​​0x1BstructOpaque 结构
​​0x1C-0xFFrfu留待将来使用

其他格式注意事项

  • 对 IPv4 地址编码时,应使用 uint32 格式类型。
  • 对 IPv6 地址编码时,应使用 uint128 格式类型。
  • 对蓝牙 BD_ADDR 编码时,应使用 uint48 格式类型。
  • duint16 是串接在一起的两个 uint16 值。
FormatShort NameDescriptionExponent Value
0x00rfuReserved for future useNo
0x01booleanunsigned 1-bit; 0=false, 1=trueNo
0x022bitunsigned 2-bit integerNo
0x03nibbleunsigned 4-bit integerNo
0x04uint8unsigned 8-bit integerYes
​0x05uint12unsigned 12-bit integerYes
​0x06uint16unsigned 16-bit integerYes
0x07uint24unsigned 24-bit integerYes
​0x08uint32unsigned 32-bit integerYes
​0x09uint48unsigned 48-bit integerYes
​0x0Auint64unsigned 64-bit integerYes
​0x0Buint128unsigned 128-bit integerYes
​0x0Csint8signed 8-bit integerYes
​0x0Dsint12signed 12-bit integerYes
​0x0Esint16signed 16-bit integerYes
​0x0Fsint24signed 24-bit integerYes
​0x10sint32signed 32-bit integerYes
​0x11sint48signed 48-bit integerYes
​0x12sint64signed 64-bit integerYes
​0x13sint128signed 128-bit integerYes
​0x14float32IEEE-754 32-bit floating pointNo
​0x15float64IEEE-754 64-bit floating pointNo
​0x16SFLOATIEEE-11073 16-bit SFLOATNo
​​0x17FLOATIEEE-11073 32-bit FLOATNo
​​0x18duint16IEEE-20601 formatNo
​​0x19utf8sUTF-8 stringNo
​0x1Autf16sUTF-16 stringNo
​​0x1BstructOpaque structureNo
​​0x1C-0xFFrfuReserved for Future UseNo

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.