首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问电子标签中的EPC和用户存储体(Motorola EMDK + .NET)

如何访问电子标签中的EPC和用户存储体(Motorola EMDK + .NET)
EN

Stack Overflow用户
提问于 2014-01-21 04:10:31
回答 2查看 4K关注 0票数 1

我们正在为使用RFID标签和摩托罗拉919Z手持式读卡器的客户开发一个定制的固定资产解决方案。到目前为止,它一直进展顺利,因为我们基于摩托罗拉的EMDK示例。我们使用的是VB.NET。

问题是,我们有一组无法在打印机中标记的Confidex Steelwave标签,因为它们是硬标签,因此使用示例软件对它们进行标记,将相关数据保存到用户存储库,而另一组不同的可打印Confidex标签使用Zebra RZ400打印机进行标记,并将相关数据写入EPC标签ID字段。

现在,我们需要同时读取这两个字段(一种情况下是EPC标签ID,另一种情况下是用户记忆库)。也就是说,如果在用户存储库中标记了相关数据,则标签ID包含不相关的十六进制数字,并且如果使用了EPC标签ID,则用户存储库为空或零填充。

现在,如果用户不停止读取并切换存储体(在软件中),我们就无法找到同时读取两个存储体的方法,所以我们想知道这是否可能。

我不确定我是否应该发布代码,因为它有点长…也许相关的部分是:

如果我们使用Inventory.Perform,...it不会读取用户内存库,而且它似乎也不会使用访问过滤器

如果我们使用OperationSequence.PerformSequence,...it会强制你指定内存库。

耽误您时间,实在对不起。

EN

回答 2

Stack Overflow用户

发布于 2014-04-19 19:16:57

我也有同样的问题,我找到了解决方案。

使用OperationSequence.PerformSequence,但诀窍是首先添加多个操作。因此,添加一个读取用户库的操作,然后添加另一个读取EPC库的操作,如下所示:

代码语言:javascript
复制
RFIDReader reader = new RFIDReader();
reader.Connect();

MEMORY_BANK[] banks = new MEMORY_BANK[] {
    MEMORY_BANK.MEMORY_BANK_EPC, 
    MEMORY_BANK.MEMORY_BANK_USER, 
    MEMORY_BANK.MEMORY_BANK_RESERVED, 
    MEMORY_BANK.MEMORY_BANK_TID
};
foreach(MEMORY_BANK bank in banks) {
    TagAccess.Sequence.Operation op = new TagAccess.Sequence.Operation();
    op.AccessOperationCode = ACCESS_OPERATION_CODE.ACCESS_OPERATION_READ;
    op.ReadAccessParams.MemoryBank = bank;
    reader.Actions.TagAccess.OperationSequence.Add( op );
}

然后只需调用reader.Actions.TagAccess.OperationSequence.PerformSequence,您就可以获得每个银行、每个标签的Read事件,只要这些标签在扫描仪可读的距离内。

票数 0
EN

Stack Overflow用户

发布于 2014-08-02 20:01:55

您需要在清点标签之前执行操作序列,在这里您必须设置memory bank.After it每当您要开始清点时,您将在tagID属性中获得EPC,在MemoryBankData属性中获得内存块数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21243208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档