0

我正在尝试读取 Zebra RZ400(运行最新固件 V53.17.22Z)打印头下方的当前(第 1 类第 2 代)RFID 标签的 TID 库。我是通过 USB 连接的。

我正在使用 Zebra Setup Utilities 工具中的“直接通信”程序。

这是我的程序,注释:

^XA             Start program
^RS8            Set RFID mode to Class 1 Gen 2
^RFR,H,0,8,2    Read the first 8 bytes of the TID bank as a Hexadecimal string
^FN1            Store the data into Memory Field #1
^FS             End Field
^HV1,,Foo       Transfer the contents of Memory Field #2 to the Host PC
^FS             End Field
^XZ             End program

当我运行它时,我在“收到的数据”窗口中没有得到任何输出。

但是,如果我^HH在末尾附加一个命令(在 之后^XZ)并重新运行程序,则会出现之前的预期输出(后面是 的输出^HH)。我需要继续重新运行命令以获取先前的输出,从而无法看到当前的 TID 值。

就好像打印机在我运行之前不会刷新其输出缓冲区^HH- 其他命令会临时工作。该^HH命令不适合我的应用程序,因为它产生的数据量很大。

是否有一些命令强制刷新?

4

1 回答 1

1

我需要学习阅读文档。

^HV命令有 5 个参数。我基于我的程序的示例代码只提供了前 3 个参数,我认为其他参数不相关 - 主要是因为 Zebra 为关键参数提供了一个不明显的名称“ command applies to”:

^HV(fieldNumber),(byteCount),(header),(terminator),(commandAppliesTo)

虽然我设置了fieldNumber,byteCountheader正确(我忽略terminator了 ),但我完全忽略了commandAppliesTo参数,它指出:

^PQ大于1或如果出现无效标签,则针对标签格式发送一个响应,或者针对每个打印的标签发送一个响应。

接受的值:

  • F= 格式
  • L= 标签

默认值:F

因此,当您未指定默认值时,F这意味着只有在整个作业完成后才会返回数据,通过将其更改为LI get a response for each label that is printed。

这是我的最终工作命令:

^XA
^RS8
^RFR,H,0,8,2
^FN1
^FS
^HV1,256,HEADER,TERMINATOR,L
^FS
^XZ

这让我得到这样的输出:

HEADERE28011302000240CTERMINATORHEADERE28011302000241CTERMINATORHEADERE28011302000242CTERMINATOR

排序:)

于 2016-04-22T21:10:10.357 回答