我正在使用“Motorola EMDK for .NET”作为个人项目,我看到TagData.TagID
和TagData.MemoryBankData
不同(选择MEMORY_BANK.TID
时)。
.NET文档不提供信息,它只是声明:
TagData.TagID属性
获取标签ID
我深入研究了“摩托罗拉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
属性。
我确实想知道TagData.TagID
是否是由SDK生成的任意,不透明的值,作为唯一标识每个标记的方法,但我注意到在不同的会话中使用相同的值,所以它绝对是确定性的,< em>但这是什么意思?
我编写了一个程序来转储标签的所有内存库和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碰撞的情况下会发生什么?
答案 0 :(得分:1)
无法保证任何这些字段都是唯一的。所有这些都可以由打印机或阅读器更新。因此,您应该信任您的RFID标签供应商或自己打印。 EPC碰撞不是读者的问题,只适用于您的软件。