Вопрос
Что такое TLV?
Поставить крючки (функции) в код вместо того, чтобы / else?
Если у меня есть один кусок кода, работающий на разных платформах, в разных местах в коде я могу поставить функциональные крюки TLV, чтобы определить, какую платформу я нахожусь и делаю соответственно? Или что-то подобное?
Преимущества могут быть более чистым кодом? Легко поддерживать? Когда добавляется новая платформа, только код TLV должен изменить, а не исходный код?
Я могу быть совершенно неправильным здесь.
Решение
TLV - это кодировка длины метки. Часто лучше упоминается это оригинальное имя, значение типа типа.
Первое поле - это «тип» обработки данных, второе поле указывает «длину» значения, третье поле содержит «длину» объема данных, представляющих значение для «типа».
Несколько кусков данных могут быть переданы в одном сообщении, добавив больше триплетов в ранее существующее сообщение.
Там страница на Википедии, покрывающая ее чуть более подробно. Отказ Не путайтесь, хотя каждый триплет - это описание «верхнего уровня», обычно нет вложенности элементов в TLV (хотя вы можете придумать способ сделать это, кодируя триплеты TLV в V другого тега).
Другие советы
TLV - это способ хранения данных для облегчения быстрого анализа этих данных.
Как правило, вы читаете тип (тег), длину и значение, а затем отправляете эти данные на функцию процессора. Эта функция процессора только функции будет обработать тип X. Затем вы прочитали следующий тип, это длина и значение и отправьте его в соответствующий процессор.
Обычно используется в качестве простого способа обработки данных без много дополнительных накладных расходов.
Мы все еще используем TLV для форматирования данных. И если мы хотим отправлять данные в приемник, мы готовим пакет TLV, который содержит значения длины тегов. Например;
Data Tag = DF 82 0A
Data Length = 03
Data Value = 30 31 32.
Когда мы хотим отправить его, мы объединяем это 3 строки, такие как DF 82 0A 03 30 31 32. Пакеты данных могут содержать множество таких данных.
Когда приемник получит его, пакет анализа очень прост, а приемник может плавно разбирать все данные.
Разбор данных;
Данные: DF 82 0A 03 30 31 32 DF 82 0B 04 01 12 22 33
DF 82 0A и DF 82 0B предварительно определены (тип значения (BCD, Hex, Ascii)). Когда данные прибыли, в цикле, во-первых, анализатор будет искать тег (т. Е. DF 82 0A) и еще один байт (данные Len). Он также будет читать байты данных до Len.
TLV относится к кодированию значений в Trio Trio, и это Более общая форма документирована на Википедии.
В некоторых контексте (например, EMV) TLV относится к Более конкретный X.690, который также задокументирован на Википедии.
TLV имеет следующие преимущества:
- Относительно компактный формат кодирования
- Относительно просто разбираться (я написал базовый анализатор X.690 через пару часов)
- TLV X.690 имеет поддержку вложенных типов (эта часть немного сложнее разбираться, но из того, что я могу сказать, не требуется для EMV)
Самым большим недостатком TLV является то, что он не читается непосредственно человеком. Обратите внимание, однако, если данные преобразуются в Hex, это только умеренно трудно прочитать.
Я думаю, что вы ссылаетесь, называется Тип Длина Стоимость, и есть википедия страница для этого. Надеюсь, это поможет.
TLV: тег - длина - значение
Пример: 045002124354.
Если бы мы взяли, как пример, что в конфигурации: 045 является значением
Завоевая номер в телешоу так: значение выигрышного номера: 12
- ЯРЛЫК : Поиск тега, который: 045
- ДЛИНА : длина, например, находится на 3 положении так: 002
- СТОИМОСТЬ : Теперь значение: 12 (на 2 позиции)
TLV полезен для создания коммуникационных протоколов. Ты используешь Теги, длина, значение хранить информацию. Вы можете увидеть очень красивый внедрение (я думаю, что лучше) на Github..