0

Zebra RZ400 (最新のファームウェア V53.17.22Z を実行) のプリントヘッドの下にある現在の (クラス 1 ジェネレーション 2) RFID タグの TID バンクを読み取ろうとしています。USB経由で接続しています。

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コマンドは大量のデータを生成するため、私のアプリケーションには適していません。

フラッシュを強制するコマンドはありますか?

4

1 に答える 1

1

ドキュメントを読むことを学ぶ必要があります。

この^HVコマンドには 5 つのパラメーターがあります。私のプログラムの元になったサンプル コードは、最初の 3 つのパラメーターのみを提供し、他のパラメーターが関連しているとは思いませんでした。主な理由は、Zebra が重要なパラメーターに非自明な名前 " command applies to" を付けたためです。

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

fieldNumberbyteCount、および をheader正しく設定しましたが(無視しました)、パラメーターterminatorを完全に見落としていました。commandAppliesTo

^PQより大きい場合、または無効なラベルが発生した場合1は、ラベル形式に対して 1 つの応答を送信するか、印刷されたラベルごとに 1 つの応答を送信します。

受け入れられる値:

  • F= フォーマット
  • L= ラベル

デフォルト値:F

そのため、値を指定しない場合は、デフォルトでF、ジョブ全体が完了したときにのみデータを返すことを意味します。これを変更すると、L印刷されるラベルごとに応答が得られます。

これが私の最終的な作業コマンドです:

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

これにより、次のような出力が得られます。

HEADERE28011302000240CTERMINATORHEADERE28011302000241CTERMINATORHEADERE28011302000242CTERMINATOR

並べ替え:)

于 2016-04-22T21:10:10.357 に答える