В чем разница между 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 столкновение не является проблемой для читателя, только для вашего программного обеспечения.