首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是tlv (tag-length-value)?

什么是tlv (tag-length-value)?
EN

Stack Overflow用户
提问于 2010-12-11 04:36:07
回答 7查看 59.9K关注 0票数 26

什么是tlv?

将钩子(函数)放在代码中而不是if/else?

如果我有一段代码运行在不同的平台上,在代码中的不同位置,我可以放置tlv函数钩子来识别我在哪个平台上,并相应地执行?或者类似的东西?

好处可以是更干净的代码吗?易于维护?当添加新的平台时,只需要更改tlv代码,而不需要更改源代码?

在这一点上我可能完全错了。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-12-11 04:59:41

TLV是标记-长度-值编码。通常,最好使用它的原始名称type-length-value来引用它。

第一个字段是正在处理的数据的“类型”,第二个字段指定值的“长度”,第三个字段包含表示“类型”值的“长度”数据量。

通过将更多的三元组附加到先前存在的消息,可以在同一消息中传输多条数据。

There's a page on wikipedia covering it in just a little more detail。但是请不要混淆,每个三元组都是一个“顶层”描述,在TLV中通常没有项的嵌套(尽管您可以通过在另一个标签的V中编码TLV三元组来实现这一点)。

票数 35
EN

Stack Overflow用户

发布于 2010-12-11 04:53:56

TLV是一种存储数据的方式,以便于快速解析该数据。

通常,您读取类型(标记)、长度和值,然后将这些数据发送到处理器函数。这个处理器函数的唯一功能是处理类型X。然后,你读取下一个类型,它的长度和值,并将其发送到适当的处理器。

它通常被用作一种简单的方法来处理数据,而不需要太多额外的开销。

票数 14
EN

Stack Overflow用户

发布于 2014-11-07 15:32:50

我们仍然使用TLV进行数据格式化。如果我们想要发送数据到接收器,我们准备一个包含标签-长度-值数据的TLV包。例如:

代码语言:javascript
复制
Data Tag = DF 82 0A   
Data Length = 03  
Data Value =  30 31 32. 

当我们想要发送它时,我们连接这3行数据,如DF820A033031332。数据包可以包含大量这样的数据。

当接收方获得它时,解析包是非常容易的,并且接收方可以流畅地解析所有数据。

数据解析;

数据: DF 82 0A 03 30 31 32 DF 82 0B 04 01 12 22 33

DF 82 0A和DF 82 0B是预定义的(值类型(BCD、HEX、ASCII))标签。当数据到达时,在循环中,首先解析器将查找标签(即。DF820A)和另一个字节(数据len)。它还将读取高达len的数据字节。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4413080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档