В чем разница между TagData.TagID и MEMORY_BANK.TID?

Я использую "Motorola EMDK для.NET" для личного проекта, и я вижу TagData.TagID а также TagData.MemoryBankData отличаются (когда MEMORY_BANK.TID выбран).

Документация.NET не информативна, она просто заявляет:

Свойство TagData.TagID

Получает идентификатор тега

Я копался в API-интерфейсе "Motorola EMDK for C", который является низкоуровневым интерфейсом, в который обернут.NET SDK, и предоставил более подробную информацию:

UNIT8 * pTagID

ID тега, для C1G2 это поле относится к EPC Data.

... это проясняет ситуацию, за исключением того, что значение для 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 имущество.

Я задавался вопросом, если TagData.TagID это какое-то произвольное непрозрачное значение, сгенерированное SDK как средство уникальной идентификации каждого тега, но я заметил, что одни и те же значения используются в разных сеансах, так что это определенно детерминировано, но что это значит?

Я написал программу, которая сбрасывает все банки памяти тегов и 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?

1 ответ

Решение

Невозможно гарантировать, что любое из этих полей является уникальным. Все они могут быть обновлены принтером или читателем. Поэтому вам следует довериться поставщику меток RFID или распечатать их самостоятельно. EPC столкновение не является проблемой для читателя, только для вашего программного обеспечения.

Другие вопросы по тегам