2016-04-15 13 views
0

Ich versuche, die TID-Bank des aktuellen (Klasse 1 Generation 2) RFID-Tags unter dem Druckkopf in einem Zebra RZ400 (mit dem neuesten Firmware V53.17.22Z). Ich bin über USB verbunden.^RFR,^FN1,^HV1 sendet keine Ausgabe an Computer

Ich verwende das Programm "Direkte Kommunikation" im Dienstprogramm Zebra Setup Utilities.

Das ist mein Programm, kommentierte:

^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 

Als ich das laufen, ich bekomme keine Ausgabe in das Fenster „Daten empfangen“.

Allerdings, wenn ich einen Befehl wie ^HH bis zum Ende (nach den ^XZ) und starten Sie das Programm dann die vorherige erwartete Ausgabe erscheint (gefolgt von der Ausgabe von ^HH) anhängen. Ich muss die Befehle erneut ausführen, um die vorherige Ausgabe zu erhalten, was es unmöglich macht, den aktuellen TID-Wert zu sehen.

Es ist, als ob der Drucker seinen Ausgabepuffer nicht spült, bis ich ^HH laufen lasse - andere Befehle arbeiten temperamental. Der Befehl ^HH ist aufgrund der schiere Menge an Daten, die er erzeugt, nicht für meine Anwendung geeignet.

Gibt es einen Befehl, der einen Flush erzwingt?

Antwort

1

Ich muss lernen, die Dokumentation zu lesen.

Der Befehl ^HV hat 5 Parameter. Der Beispielcode basierte ich mein Programm aus bietet nur die ersten drei Parameter und ich glaube nicht, dass die anderen Parameter relevant waren - vor allem, weil Zebra dem Schlüsselparameter den nicht nahe liegenden Namen „command applies to“ gab:

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

Während ich gesetzt hatte fieldNumber, byteCount und header richtig (I ignoriert terminator) ich die commandAppliesTo Parameter völlig übersehen, in dem es heißt:

wenn ^PQ größer als 1 ist oder wenn eine Leere Label auftritt, senden Sie eine Antwort für ein Etikettenformat oder für jedes gedruckte Etikett.

akzeptierte Werte:

  • F = Format
  • L = Bezeichnung

Standardwert: F

Also, wenn Sie angeben, keinen Wert wird standardmäßig F bedeutet, dass es nur die Daten zurückgibt Wenn der gesamte Job abgeschlossen ist, indem ich ihn in L ändere, bekomme ich eine Antwort für jedes Etikett, das gedruckt wird.

Hier ist mein letzter Arbeits Befehl:

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

Was mir Ausgabe wie folgt erhält:

HEADERE28011302000240CTERMINATORHEADERE28011302000241CTERMINATORHEADERE28011302000242CTERMINATOR 

Sortierte :)

Verwandte Themen