【问题标题】:How to access both EPC and USER memory banks in RFID tag (Motorola EMDK + .NET)如何访问 RFID 标签中的 EPC 和 USER 内存库(摩托罗拉 EMDK + .NET)
【发布时间】:2014-01-20 20:10:30
【问题描述】:

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

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

现在,我们被要求同时读取两个字段(在一种情况下是 EPC 标签 ID,在另一种情况下是 USER memorybank)。也就是说,如果相关数据被标记在 USER memorybank 中,则 Tag ID 包含不相关的十六进制数字,如果使用 EPC Tag ID,则 USER memorybank 为空白或填充零。

现在,如果用户不停止读取和切换库(在软件中),我们无法找到同时读取两个库的方法,所以我们想知道它是否可能首先出现。

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

如果我们使用 库存.执行 ...它不读取 USER 内存库,而且它似乎没有使用访问过滤器

如果我们使用 OperationSequence.PerformSequence ...它会强制您指定内存库。

感谢您的宝贵时间。

【问题讨论】:

  • 你有没有找到解决这个问题的方法?
  • 我找到了另一种方法,我不得不停止使用触发器来自动启动库存,而是必须捕获触发器事件,启动计时器,在 EPC 银行启动库存,然后计时器将停止库存,切换到用户银行,然后每 0.3 毫秒左右重新启动库存,同时按下触发器。骇人听闻的骇客,但效果足够好。不为此感到自豪。

标签: .net rfid motorola-emdk


【解决方案1】:

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

使用OperationSequence.PerformSequence,但诀窍是先添加多个操作。所以添加一个读取 USER bank 的操作,然后添加另一个读取 EPC bank 的操作,如下所示:

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 事件,只要标签在扫描仪的可读距离内。

【讨论】:

  • 您对此进行了测试并且对您有用吗?因为当我遇到这个问题时我尝试了不同的版本,我没有使用 foreach 我定义了两个 Operation 对象,每个对象都有自己的 MEMORY_BANK,然后将它们添加到序列中,它没有工作......跨度>
  • @KalaNag 是的,我测试了它,它对我有用——我能够从我的标签中的所有银行获取数据。 “没有工作”是什么意思?您是否指定了 Reader 选项/配置以在每个 Read 事件中返回标签数据?
【解决方案2】:

您需要在需要设置内存条的标签盘点之前执行操作序列。之后,无论何时开始盘点,您都会在tagID属性中获取EPC,在MemoryBankData属性中获取内存条数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    相关资源
    最近更新 更多