带有 llrpjs 的 Zebra FX7500 的 LLRP 无法读取标签

问题描述 投票:0回答:2

使用 Node.js 的 llrpjs 库,我们尝试从 Zebra FX7500(摩托罗拉?)读取标签。 此讨论指向 RFID 读取器软件接口控制指南第 142-144 页,但不表明设置设备的潜在值。

根据我们收集到的信息,我们应该发出带有自定义参数 (

SET_READER_CONFIG
) 的
MotoDefaultSpec = VendorIdentifier: 161, ParameterSubtype: 102, UseDefaultSpecForAutoMode: true
。 我们是否还需要包含
ROSpec
和/或
AccessSpec
值(是否必需)? 发送
SET_READER_CONFIG
消息后,我们还需要发送常规 LLRP 消息(
ADD_ROSPEC
ENABLE_ROSPEC
START_ROSPEC
)吗? 如果没有
MotoDefaultSpec
,即使发送常规 LLRP 消息后,发送
GET_REPORT
也不会检索标签,使用
MOTO_GET_TAG_EVENT_REPORT
的自定义消息也不会检索标签。 它们都会触发
RO_ACCESS_REPORT
事件消息,但
tagReportData
为空。

llrpjs 的 README 文件将“供应商定义支持”列为 TODO 项。 虽然这有点模糊,但该库是否可能尚未实现自定义 LLRP 扩展(消息/参数)支持,这就是为什么我们的尝试都不起作用的原因?

MotoDefaultSpec
参数和
MOTO_GET_TAG_EVENT_REPORT
是供应商/芯片组自定义的。
MOTO_GET_TAG_EVENT_REPORT
自定义消息似乎会触发类似于基本 LLRP
RO_ACCESS_REPORT
消息的
GET_REPORT
,因此我们假设该部分正在工作。

值得注意的是,Zebra 的 123RFID Desktop 设置和优化工具 按预期连接并读取标签,因此设备和天线正在工作(读取标签)。

这些问题是否与我们正在使用的 ROSPEC 文件有关(见下文)?

{
  "$schema": "https://llrpjs.github.io/schema/core/encoding/json/1.0/llrp-1x0.schema.json",
  "id": 1,
  "type": "ADD_ROSPEC",
  "data": {
    "ROSpec": {
      "ROSpecID": 123,
      "Priority": 1,
      "CurrentState": "Disabled",
      "ROBoundarySpec": {
        "ROSpecStartTrigger": {
          "ROSpecStartTriggerType": "Immediate"
        },
        "ROSpecStopTrigger": {
          "ROSpecStopTriggerType": "Null",
          "DurationTriggerValue": 0
        }
      },
      "AISpec": {
        "AntennaIDs": [1, 2, 3, 4],
        "AISpecStopTrigger": {
          "AISpecStopTriggerType": "Null",
          "DurationTrigger": 0
        },
        "InventoryParameterSpec": {
          "InventoryParameterSpecID": 1234,
          "ProtocolID": "EPCGlobalClass1Gen2"
        }
      },
      "ROReportSpec": {
        "ROReportTrigger": "Upon_N_Tags_Or_End_Of_ROSpec",
        "N": 1,
        "TagReportContentSelector": {
          "EnableROSpecID": true,
          "EnableAntennaID": true,
          "EnableFirstSeenTimestamp": true,
          "EnableLastSeenTimestamp": true,
          "EnableSpecIndex": false,
          "EnableInventoryParameterSpecID": false,
          "EnableChannelIndex": false,
          "EnablePeakRSSI": false,
          "EnableTagSeenCount": true,
          "EnableAccessSpecID": false
        }
      }
    }
  }
}
node.js iot rfid llrp zebra-scanners
2个回答
2
投票

对于遇到类似问题的任何人,我们发现尝试配置比 Zebra 设备连接的天线数量更多的天线会导致整个规范失败。 在我们的例子中,我们连接了两个天线,因此在规格中包含天线 3 和 4 会导致问题。

请参阅下面的工作 ROSPEC。

data.AISpec.AntennaIDs
属性中的额外天线已被移除,并允许我们的应用程序连接和读取标签。

在尝试

STOP_ROSPEC
时,我们仍然遇到 llrpjs 的一些问题,因为它发送了没有
RO_ACCESS_REPORT
值的
resName
响应。 请参阅 GitHub 上的问题了解更多信息。

也就是说,我们的应用程序无需发送

STOP_ROSPEC
命令即可运行。

{
  "$schema": "https://llrpjs.github.io/schema/core/encoding/json/1.0/llrp-1x0.schema.json",
  "id": 1,
  "type": "ADD_ROSPEC",
  "data": {
    "ROSpec": {
      "ROSpecID": 123,
      "Priority": 1,
      "CurrentState": "Disabled",
      "ROBoundarySpec": {
        "ROSpecStartTrigger": {
          "ROSpecStartTriggerType": "Null"
        },
        "ROSpecStopTrigger": {
          "ROSpecStopTriggerType": "Null",
          "DurationTriggerValue": 0
        }
      },
      "AISpec": {
        "AntennaIDs": [1, 2],
        "AISpecStopTrigger": {
          "AISpecStopTriggerType": "Null",
          "DurationTrigger": 0
        },
        "InventoryParameterSpec": {
          "InventoryParameterSpecID": 1234,
          "ProtocolID": "EPCGlobalClass1Gen2",
          "AntennaConfiguration": {
            "AntennaID": 1,
            "RFReceiver": {
              "ReceiverSensitivity": 0
            },
            "RFTransmitter": {
              "HopTableID": 1,
              "ChannelIndex": 1,
              "TransmitPower": 170
            },
            "C1G2InventoryCommand": {
              "TagInventoryStateAware": false,
              "C1G2RFControl": {
                "ModeIndex": 23,
                "Tari": 0
              },
              "C1G2SingulationControl": {
                "Session": 1,
                "TagPopulation": 32,
                "TagTransitTime": 0,
                "C1G2TagInventoryStateAwareSingulationAction": {
                  "I": "State_A",
                  "S": "SL"
                }
              }
            }
          }
        }
      },
      "ROReportSpec": {
        "ROReportTrigger": "Upon_N_Tags_Or_End_Of_AISpec",
        "N": 1,
        "TagReportContentSelector": {
          "EnableROSpecID": true,
          "EnableAntennaID": true,
          "EnableFirstSeenTimestamp": true,
          "EnableLastSeenTimestamp": true,
          "EnableTagSeenCount": true,
          "EnableSpecIndex": false,
          "EnableInventoryParameterSpecID": false,
          "EnableChannelIndex": false,
          "EnablePeakRSSI": false,
          "EnableAccessSpecID": false
        }
      }
    }
  }
}

0
投票

Llprjs 与 Zebra 阅读器配合得很好吗?我在哪里可以找到有关 Nodejs 的 ROSpec、llpr 等信息?现在,我有一个中国品牌的阅读器,我打算换成斑马的。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.