質問

tlvって何ですか?

if/else の代わりにコードにフック (関数) を入れるには?

1 つのコードがさまざまなプラットフォームで、コード内のさまざまな場所で実行されている場合、tlv 関数フックを配置して、どのプラットフォームを使用しているかを識別し、それに応じて実行できますか?それともそのようなものですか?

コードがきれいになるメリットはあるでしょうか?メンテナンスが簡単ですか?新しいプラットフォームが追加された場合、ソース コードではなく tlv コードのみを変更する必要がありますか?

ここで私は完全に間違っているかもしれません。

役に立ちましたか?

解決

TLV はタグ長値エンコーディングです。多くの場合、元の名前である type-length-value で参照する方が適切です。

最初のフィールドは処理されるデータの「タイプ」で、2 番目のフィールドは値の「長さ」を指定し、3 番目のフィールドには「タイプ」の値を表すデータの「長さ」量が含まれます。

既存のメッセージにさらにトリプレットを追加することで、複数のデータを同じメッセージで送信できます。

ウィキペディアにもう少し詳しく説明したページがあります. 。ただし、混乱しないでください。各トリプレットは「トップレベル」の説明であり、通常、TLV には項目のネストはありません (ただし、TLV トリプレットを別のタグの V にエンコードすることでネストする方法を思いつくことはできます)。

他のヒント

TLV は、データの迅速な解析を容易にするためにデータを保存する方法です。

通常、タイプ (タグ)、長さ、値を読み取り、それらのデータをプロセッサー関数に送信します。このプロセッサ機能は、タイプ X を処理することのみを目的としています。次に、次の型、その長さと値を読み取り、適切なプロセッサに送信します。

通常、余分なオーバーヘッドをあまりかけずにデータを処理する簡単な方法として使用されます。

データのフォーマットには引き続き TLV を使用します。そして、受信者にデータを送信したい場合は、Tag-Length-Value データを含む 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) ともう 1 バイト (データ長)。また、最大 len までのデータバイトも読み取ります。

TLV は、タイプ、長さ、値のトリオのエンコード値を指します。 より一般的な形式は WikiPedia に記載されています.

一部のコンテキスト (EMV など) では、TLV は より具体的な X.690 については WikiPedia にも記載されています.

TLV には次の利点があります。

  • 比較的コンパクトなエンコード形式
  • 解析が比較的簡単 (私は基本的な X.690 パーサーを数時間で書きました)
  • X.690 TLV はネストされた型をサポートしています (この部分の解析は少し複雑ですが、私の知る限り、EMV には必要ありません)。

TLV の最大の欠点は、人間が直接判読できないことです。ただし、データが 16 進数に変換された場合でも、読み取りが多少困難になるだけであることに注意してください。

あなたが言及しているのはと呼ばれるものだと思います タイプ 長さ 価値, 、ウィキペディアもあります ページ それのための。それが役立つことを願っています。

TLV :タグ - 長さ - 値

例 :045002124354

構成を例にとると、次のようになります。045 の意味は
テレビ番組での当選番号は次のとおりです。当選番号の値は次のとおりです。12

  • 鬼ごっこ :タグの検索:045
  • 長さ :たとえば長さは 3 ポジションなので、次のようになります。002
  • 価値 :現在の値は次のとおりです。 12 (2ポジション上)

TLV は通信プロトコルの作成に役立ちます。あなたが使う タグ、長さ、値 情報を保存します。とても見ることができます 美しい 実装(最善だと思います) github 上で.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top