^RFR、^FN1、^HV1未将输出发送到计算机



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

我正在使用Zebra设置实用程序工具中的"直接通信"程序。

这是我的程序,注释:

^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命令不适合我的应用程序,因为它产生的数据量太大。

有什么命令可以强制冲水吗?

我需要学习阅读文档。

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

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

虽然我正确设置了fieldNumberbyteCountheader(我忽略了terminator),但我完全忽略了commandAppliesTo参数,该参数表示:

^PQ大于1或出现无效标签时,发送一个标签格式的响应或打印的每个标签的响应。

接受值:

  • F=格式
  • L=标签

默认值:F

因此,当您不指定值时,它默认为F,这意味着它只有在整个作业完成时才会返回数据,通过将其更改为L,我会得到打印的每个标签的响应。

这是我的最后一个工作命令:

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

这让我的输出像这样:

HEADERE28011302000240CTERMINATORHEADERE28011302000241CTERMINATORHEADERE28011302000242CTERMINATOR

排序:)

相关内容

  • 没有找到相关文章

最新更新