2016-04-15 21 views
0

我試圖讀取位於Zebra RZ400打印頭下的當前(Class 1 Generation 2)RFID標籤的TID庫(運行最新版本固件V53.17.22Z)。我通過USB連接。^RFR,^ FN1,^ HV1不發送輸出到計算機

我在Zebra Setup Utilities工具中使用「Direct Communication」程序。

這是我的計劃,註釋:

^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命令不適合我的應用程序,因爲它產生的數據量很大。

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

回答

1

我需要學習閱讀文檔。

^HV命令有5個參數。示例代碼我根據我的程序關閉只提供前3個參數,我沒想到的是,其它的參數有關 - 主要是因爲斑馬給了關鍵參數的不明顯名「command applies to」:

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

雖然我已成立fieldNumberbyteCountheader正確(我忽略terminator)我完全忽略了commandAppliesTo參數,其中規定:

^PQ大於1或者發生空白標籤,發送一個 標籤格式的響應或打印的每個標籤的響應。

接受的值:

  • F =格式
  • L = LABEL

默認值:F

所以,當你不指定值,則默認爲F這意味着它只會返回數據當整個作業完成後,通過將其更改爲L,我會得到每個打印標籤的響應。

這是我最後的工作命令:

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

這讓我的輸出是這樣的:

HEADERE28011302000240CTERMINATORHEADERE28011302000241CTERMINATORHEADERE28011302000242CTERMINATOR 

排序:)