在 TLV8 中准备数据
Preparing data in TLV8
我正在编写 TLV8 格式的 HomeKit(也许是蓝牙)特性。 Apple 文档说
The value is an NSData object containing a set of one or more TLV8's,
which are packed type-length-value items with an 8-bit type, 8-bit
length, and N-byte value.
根据维基百科,类型长度值为
Type
A binary code, often simply alphanumeric, which indicates the kind of field that this part of the message represents;
Length
The size of the value field (typically in bytes);
Value
Variable-sized series of bytes which contains data for this part of the message.
我不知道怎么打包。我想我可以将原始字节写入 NSData,但是如果我需要任何填充等,我应该为 pad 写什么。那么有一个如何做到这一点的例子吗?
哦,我明白了。
TLV8 由三个部分组成:"Tag"、"Length" 和"Value"。我不知道8是什么意思
标签和长度都是UInt8。我相信标签可能取决于 TLV8 的使用位置。 Length 是值的长度。价值是它自己的内容。
所以当我想发送一个简单的 1 作为值时,我使用:
let tag = 0x02 // For example
let length = 0x01
let value = 0x01
let data = Data(bytes: [tag, length, value]) // NSData
我正在编写 TLV8 格式的 HomeKit(也许是蓝牙)特性。 Apple 文档说
The value is an NSData object containing a set of one or more TLV8's, which are packed type-length-value items with an 8-bit type, 8-bit length, and N-byte value.
根据维基百科,类型长度值为
Type
A binary code, often simply alphanumeric, which indicates the kind of field that this part of the message represents;
Length
The size of the value field (typically in bytes);
Value
Variable-sized series of bytes which contains data for this part of the message.
我不知道怎么打包。我想我可以将原始字节写入 NSData,但是如果我需要任何填充等,我应该为 pad 写什么。那么有一个如何做到这一点的例子吗?
哦,我明白了。 TLV8 由三个部分组成:"Tag"、"Length" 和"Value"。我不知道8是什么意思
标签和长度都是UInt8。我相信标签可能取决于 TLV8 的使用位置。 Length 是值的长度。价值是它自己的内容。
所以当我想发送一个简单的 1 作为值时,我使用:
let tag = 0x02 // For example
let length = 0x01
let value = 0x01
let data = Data(bytes: [tag, length, value]) // NSData