Wenn Sie die Druckerverbindungen bestätigt haben und Ihre Etiketten wie erwartet ausgedruckt werden, können Sie zum TCP/IP-Socket-Interface wechseln. Das TCP/IP-Socket-Interface ist ein synchrones Interface des LPS, das die Eingabe eines Druckauftrags, Bestätigung eines Druckauftrags und jegliche auf einen Druckauftrag bezogene Verzögerungen oder Fehler erlaubt. Es ist zuverlässiger und informativer als Dateiübertragungs- oder ‘Einfügungs’-Lösungen und gibt Ihnen mehr Kontrolle im Anpassungsverfahren.
Das TCP/IP-Socket wurde für diejenigen Rechnerumgebungen entwickelt, die die ActiveX- oder Datei-Interfaces nicht verwenden können. Beispiel: Wenn sich Ihre Anwendung auf einer UNIX- oder AS400-Plattform auf Ihrem Netzwerk befindet, aber Sie möchten nicht die Dateiübertragungsprotokollmethode oder freigegebene Verzeichnismethode verwenden, können Sie wahlweise direkt mit dem LPS über sein Socket-Interface kommunizieren. Der LPS wird mit einem in Berkley-konformem ‘C’ geschriebenen Beispielprogramm geliefert, das dies demonstriert.
LPSSend
Das oben beschriebene Beispielprogramm heißt LPSSend. Es zeigt, wie man über ein Socket mit dem LPS verbindet und wird mit komplettem Quellcode geliefert. Um etwas über Socketverbindungen zu erfahren, führt man am Besten dieses Beispielprogramm aus. Anmerkung: Dieser Abschnitt ist für fortgeschrittene Benutzer und setzt Kenntnisse der Terminologie und Verwendung von Befehlseingaben und Programmieren voraus. Ein LPSSend_AD.doc benanntes Dokument enthält zusätzliche Beispiele und Beispielcodeinformationen und befindet sich im unten genannten Verzeichnis.
LPSSend.exe und seine Quelldateien befinden sich im Verzeichnis: C:\Programme\Loftware Labeling\Sample Programs\TCPIPtoLPS_Request.
LPSSend-Dateien
lpssend.cpp ist der eigentliche Code und die Ausführung von lpssend. Es ist in Berkley-konformem C kodiert, obwohl es eine .cpp-Erweiterung hat. Wenn Sie den Code hinter lpssend sehen möchten, öffnen Sie sie in Microsoft Visual Studio v6© oder einem anderen Code-Compiler. Anmerkung: Wenn Sie Visual Studio 6 nicht besitzen, können Sie die .cpp- und .h-Dateien in einer Umgebung Ihrer Wahl verwenden.
Die drei .h-Dateien - sind die Header-Dateien für das lpssend-Projekt. Sie sind erforderlich zum erfolgreichen Bau von lpssend.
Die .dsp-Datei - ist die lpssend-Projektdatei zur Verwendung mit Microsoft Visual Studio.
Die .dsw-Datei - ist der lpssend-Arbeitsbereich zur Verwendung mit Microsoft Visual Studio, die sowohl den lps .dsp-Schutz, als auch die externen Abhängigkeiten (.h-Dateien) enthält
Die .exe-Datei - ist die lpssend-Ausführung.
Die folgenden Schritte wurden erstellt, um Ihnen einen Einblick in die Arbeitsweise von LPSSend zu geben. Ein großer Teil des Codes in LPSSend kann von Ihrer eigenen Anwendung wiederverwendet werden. Nehmen Sie sich bitte etwas Zeit um zu verstehen, wie LPSSend funktioniert. Nachdem Sie die Schritte vollständig verstanden haben, können Sie die Teile, die Sie brauchen ” ausschneiden” und sie in Ihren eigenen Code “einfügen”.
Wichtige Anmerkung: Denken Sie daran, dass das Socket-Interface des LPS synchron ist. Ihr Programm MUSS IMMER auf eine Bestätigungsantwort vom LPS WARTEN bevor es fortfährt! Dies gilt für An- und Abmeldung und Druckanfragen
Schritt 1.LPS-Adresse erhalten
Der
erste Schritt von LPSSend ist es, die Argumente oder Parameter der
Befehlseingabeaufforderung zu lesen. Sobald die Parameter gelesen wurden,
verwendet LPSSend die gelieferte IP-Adresse und Schnittstelle um eine
Socket-Verbindung mit dem LPS herzustellen. In Ihrem Programm können diese Werte
aus Hard-Code bestehen oder es bezieht sie von einer anderen Stelle.
Schritt 2. Melden Sie sich bei LPS
an
Sobald LPSSend bestimmt, dass es eine Socketverbindung geöffnet
hat, wird eine Anmeldungsanfrage geschickt. LPSSend schickt den Computernamen,
Benutzernamen und Versionsnummer an den LPS der eine Anmeldung anfordert. Das
eigentliche Protokoll, das zur Anfrage dieser Anmeldung verwendet wird, wird
auch geschickt. Der Code ist: REQ_LPSLOGIN.
Schritt 3. Warten Sie auf
Anmeldebestätigung
Nachdem die Anmeldeanfrage geschickt wurde,
wartet LPSSend auf eine Antwort vom LPS. Der LPS sendet einen anderen
Protokollbefehl zurück zum LPSSend-Clienten: RSP_LPSLOGIN. LPSSend wurde
erfolgreich am LPS angemeldet.
Schritt 4. Druckanfrage
vorbereiten
Wenn LPSSend angemeldet ist, bereitet er die
Druckauftragsanfrage vor. LPSSend erstellt einen Puffer, der groß genug ist, die
in den Befehlseingabeaufforderungsparametern angegebene pas- ,csv- oder
xml-Datei zu speichern. Die Datei wird in den Puffer eingelesen und mit der
Druckernummer oder dem Druckeralias, Auftragstypen (pas, csv or xml),
Auftragsnamen (falls angegeben) und dem Protokollsbefehl: REQ_SNDJOB
verpackt.
Schritt 5. Druckanfrage senden, Antwort
abwarten
Wenn ein Druckauftrag an den LPS geschickt wurde, wartet
LPSSend darauf, dass der LPS die Ausführung des Auftrag beendet und eine Antwort
zurückschickt. Der LPS schickt den Protokollbefehl RSP_JOBUPDATES zusammen mit
extra Daten über den Auftrag. Die vier möglichen Antworten auf einen Auftrag
sind: 1.) Kritische Fehler, 2.) Gedruckt, 3.)
Gedruckt mit Fehlern und 4.) Druckerfehler. LPSSend zeigt diese
Information an, damit der Benutzer den Status des geschickten Auftrags
bestätigen kann. Ihr Programm sollte die Antworten in einer angemessenen Weise
handhaben.Anmerkung: Wiederholen Sie Schritte 4 und 5 sooft wie nötig
ohne sich abzumelden.
Schritt 6. Abmeldeanfrage.
Sobald der
LPSSend-Auftrag gesendet und bearbeitet wurde, meldet sich LPSSend vom LPS ab,
indem es den Protokollbefehl: REQ_LOGOUT verwendet.
Schritt 7. Warten Sie auf
Abmeldebestätigung
Nachdem die Abmeldeanfrage geschickt
wurde, wartet LPSSend auf eine Antwort vom LPS. LPSSend schickt den
Protokollbefehl RSP_LOGOUT zurück.
Schritt 8. Ende
Sobald LPSSend die
Antwort auf die Abmeldeanfrage erhalten hat, schließt LPSSend die
Socket-Verbindung und gibt den Puffer, der für die Druckauftragsanfrage
zugewiesen war, frei.
Verwendung von LPSSend
LPSSend.exe ist ein
Musterprogramm, das alle für TCP/IP-Verbindungen benötigten Dokumentationen
enthält.Sie können LPSSend dazu verwenden, über Socket-Verbindungen zu
lernen.Die Ausführung von LPSSend ist eine gute Methode, die Verbindungen zu
testen; Loftware empfiehlt dringend, dass Sie eine einfache Datei erstellen um
dies zu tun.
Führen Sie LPSSend von einem Befehlsfenster mit den folgenden
Informationen als Argumente aus:
LPSSend Adresse
-pSchnittstelle [2723] -tAuftragstyp [0]
-nDruckernummer |-aDruckeralias
-jAuftragsname –fAuftragsdatei
(Die Zahlen in eckigen Klammern [] sind
Standardwerte.)
|
Optionen: | |
|
Adresse |
Geben Sie die LPSSend-IP-Adresse an |
|
-p |
Geben Sie die Schnittstelle an (Standardeinstellung: 2723) |
|
-t: |
Auftragstyp |
|
-t0 |
Pass-Datei (Standardeinstellung) |
|
-t1 |
CSV-Datei |
|
-t2 |
XML-Datei |
|
-n |
Loftware-Druckernummer |
|
-a |
Loftware-Druckeralias (Entweder Nummer oder Alias wird geschickt) |
|
-j |
Auftragsname Name des Auftrags |
|
-f |
Dateiname des zu schickenden Auftrags (mit Pfad) |
|
-r |
(An sich) Zeigt ein Diagramm der Return-Code-Werte an |
|
-h |
(An sich) Zeigt diese Hilfe an (auch durch -? angezeigt) |
|
-l |
Anmeldetyp [0] Standardeinstellung - nur angemeldet, noch keine Anfrage erstellt |
|
|
-l1 - Anmeldung, Auftragsanfrage schicken, auf Status warten |
|
|
-l2 - - Anmeldung, Auftragsanfrage schicken, nicht auf Status warten |
Verwendungsbeispiel von LPSSend
Beispiel 1: lpssend 172.16.0.64 -n1 –fTest_Label.pas
-
Dieses Beispiel schickt die Datei Test-Etikett.pas, die sich
in demselben Verzeichnis befindet wie lpssend.exe, an die IP-Adresse 172.16.0.64
mit der Standardschnittstelle 2723 und dem Standardauftragstyp 0 (.pas file) auf Drucker 1 gedruckt.
Beispiel 2: lpssend 172.16.0.64 -t1 -n2 –f “C:\Programme\Loftware Labeling\Batch\Test-Etikett.csv” - Das oben genannte Beispiel schickt die Datei Test-Etikett.csv file, die sich im Stapelverzeichnis Loftware Labeling befindet, an die IP-Adresse 172.16.0.64 mit der Standardschnittstelle 2723 und einem Auftragstyp 1 (.csv file) auf Drucker 2 gedruckt.
LPSSend-Etikettenbeispiel
Für dieses Beispiel wird die Test-Etikett.pas (oben in dieser Lernhilfe erstellt) genannte .pas-Datei in dem Verzeichnis TCPIPtoLPS_Request gespeichert. (Wenn Ihr Programm eine .pas-Datei im Speicher erstellt, vergessen Sie nicht das <CR> <LF> am Ende jeder Zeile!)
*FORMAT,Test-Etikett.lwl
*JOBNAME,SampleJob001
*QUANTITY,1
*PRINTERNUMBER,1
FIRMENNAME,Amicale Amateurs d’ Alpine
ADRESSE_1,le Grand Bleu
ADRESSE_2,182 rte St. Antoine de Ginestière
STADT,Nice
BUNDESLAND_PROVINZ,Alsace
POSTLEITZAHL,06200
LAND,FRA
TEILENUMMER,52D-400
*PRINTLABEL
Anmerkung: Wenn sich die Datei in einem anderen Verzeichnis als TCPIPtoLPS_Request befindet, müssen Sie den vollständigen Pfad zu dem Verzeichnis angeben. (Beispiel: C:\Programme\Loftware Labeling\Batch\lwlabel.pas)
Das Befehlsfenster zeigt die Ergebnisse des LPSSend-Beispiels an.
Das oben angeforderte Etikett wird wie unten gezeigt ausgedruckt:

Abbildung 6-E: Vollständiges Etikett unter Verwendung von LPSSend
LPSSend-Return-Codes
LPSSend schickt am Ende der Ausführung einen Code zurück. Das folgende Diagramm erklärt ihre Bedeutung:
|
Return-Codes für Main: | |
|
100's: ALLGEMEINE MAIN-EXITS | |
|
101: Return-Codes anzeigen | |
|
102: Argumente anzeigen | |
|
103: Ungültige Argumente | |
|
104: Fehlende Argumente | |
|
105: Dateiname oder Pfad wurden nicht gefunden | |
|
200's: SOCKET-FEHLER | |
|
201: Fehler beim Senden der Anmeldeanfrage | |
|
202: Fehler beim Empfangen der Anmeldeantwort | |
|
203: Fehler beim Senden der Druckauftragsanfrage | |
|
204: Fehler beim Empfangen der Druckauftragsantwort | |
|
205: Fehler beim Senden der Abmeldeanfrage | |
|
206: Fehler beim Empfangen der Abmeldeantwort | |
|
300's: DATEN AUSSERHALB DES RAHMENS EMPFANGEN ("MAGIC NUMBER") | |
|
301: Anmeldeantwort empfangen | |
|
302: Druckauftragsantwort empfangen | |
|
303: Abmeldeantwort empfangen | |
|
400's: FEHLER | |
|
401: Öffnen des Servers war fehlerhaft | |
|
402: Anmeldung fehlerhaft | |
|
403: Druckauftrag fehlerhaft | |
|
404: Abmeldung fehlerhaft | |
|
500's: ENDE VON HAUPT (STATUS DES AUFTRAGS) | |
|
501 Kritischer Fehler | |
|
502: Gedruckt | |
|
503: Mit Fehlern gedruckt | |
|
504: Druckerfehler | |
|
Ende der Hauptrücksendungen 0 (sollte niemals vorkommen) |
|