我正在为一个个人项目使用“摩托罗拉emdk”。我看到TagData.TagID
和TagData.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
财产。
我确实想知道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 冲突的情况下会发生什么?