0

私は個人的なプロジェクトに「Motorola EMDK for .NET」を使用していますが、(が選択されている場合)TagData.TagIDTagData.MemoryBankData異なります。MEMORY_BANK.TID

.NET のドキュメントは有益ではなく、単に次のように述べています。

TagData.TagID プロパティ

タグ ID を取得します

私は「Motorola EMDK for C」API を掘り下げました。これは、.NET SDK がラップする低レベルのインターフェイスであり、詳細が提供されました。

UNIT8* pTagID

タグ ID。C1G2 の場合、このフィールドは EPC データを参照します。

...これで問題は解決しましたが、 の値も一致MEMORY_BANK.EPCしませんTagData.TagID!

Class 1 Gen 2 仕様 ( http://www.gs1.org/sites/default/files/docs/uhfc1g2/uhfc1g2_2_0_0_standard_20131101.pdf ) を確認しましたが、タグのデータ構造に記述されているフィールドはどれもこれに対応していないようですTagID財産。

各タグを一意に識別する手段として SDK によって生成される任意の不透明な値ではないかと思いTagData.TagIDましたが、同じ値が異なるセッションで使用されていることに気付きました。これは間違いなく決定論的ですが、それはどういう意味ですか?

TagIDタグとプロパティのすべてのメモリ バンクをダンプするプログラムを作成しました。これが得られたものです。

TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_EPC     , BankData: "743E30000000000000000000000C7D16"
TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000"
TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_TID     , BankData: "E20060031A8A034E"
TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_USER    , BankData: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_EPC     , BankData: "EB1728003330323135385F303031"
TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000030004180CFA"
TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_TID     , BankData: "E2801130200029431C9701C2"
TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_USER    , BankData: "00000000"

TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_EPC     , BankData: "B63E280054573630354C5F303037"
TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000030004190CFA"
TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_TID     , BankData: "E2801130200021A11D4501C2"
TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_USER    , BankData: "00000000"

TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_EPC     , BankData: "D5AA280054573630354C5F303132"
TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000030004190CFA"
TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_TID     , BankData: "E2801130200021F11D4501C2"
TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_USER    , BankData: "00000000"

アップデート

よく見てなかったようです!

TagData.TagIDは に含まれています。次にEPC例を示します。

TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_EPC     , BankData: "EB1728003330323135385F303031"

EPC:  "EB1728003330323135385F303031"
TagID:        "3330323135385F303031"

C1G2 仕様によると、EPC の先頭は次のように予約されています。

0x0000 to 0x000F - StoredCRC         - 0xEB17
0x0010 to 0x001F - StoredPC          - 0x2800
0x0020 to 0x020F - Actual EPC value  - 0x3330323135385F303031
0x0210 to 0x021F - XPC_W1 (Optional) - null
0x0220 to 0x022F - XPC_W2 (Optional) - null

それはそれでそれをクリアします!

しかし、私の質問は次のとおりです。TagIDグローバルにユニークであると信頼できますTIDか? 私の理解ではEPC、一意である必要はありません。これは単なる任意の文字列であり、シリアル番号ではありません。この場合、EPC 衝突の場合はどうなりますか?

4

1 に答える 1