AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Datenabfrage am parallelen Port - Druckerport - LPT1
Thema durchsuchen
Ansicht
Themen-Optionen

Datenabfrage am parallelen Port - Druckerport - LPT1

Ein Thema von Tazidus · begonnen am 8. Apr 2005
Antwort Antwort
Tazidus

Registriert seit: 29. Mär 2005
Ort: Hilchenbach
44 Beiträge
 
#1

Datenabfrage am parallelen Port - Druckerport - LPT1

  Alt 8. Apr 2005, 15:52
Hallo,

ich habe ein Problem bei meinem Programm. Und zwar will ich den Status an der parallelen Schnittstelle abfragen.

Hierzu ist zwar schon viel in diesem Forum berichtet worden, aber entweder ging es hier nur um eine Abfrage oder es funktionierte bei mir nicht.

Also beschreibe ich mal, was ich will.

Ich habe einen Bondrucker und der steuert eine Kassenlade an. Ich kann drucken, Kassenlade öffnen und so, alles kein Problem.
Jetzt bietet der Drucker die Möglichkeit den Status abzufragen (Papierleer, Drucker offen und das was ich will, Kassenlade geöffnet).

Problem ist jetzt folgendes. Ich müsste eine ESC-Sequent an den Drucker schicken und danach direkt ein Byte lesen und das dritte Bit auswerten ob High oder Low (Null oder eins).

Genauer Vorgang wie folgt:

Code:
  AssignFile(d,'LPT1');
  Rewrite(d);
  Write  (d,#016#004#001); //Mit diesem ESC-Sequenz wird der Status abgefragt.
  CloseFile(d)
genauer gesagt, sieht der Befehl wie folgt aus:
Die Sequenz zum Abfragen des Druckerstatus ist:

ASCII: DLE EOT <n>
Hex: 10 04 <n>
Decimal: 16 4 <n>

n = 1: Transmit printer status
n = 2: Transmit off-line status
n = 3: Transmit error status
n = 4: Transmit paper roll sensor status

Nachdem die Sequenz mit n=1 an den Drucker gesendet wurde, wird von dem Drucker über den üblichen Datankanal der Schnittstelle ein Byte gesendet. Jetzt muss an der Schnittstelle dieses Byte entgegen genommen werden und das 3. Bit ausgewerten.

Ich habe es schon mit Assembler Einbindung versucht und auch schon den Hinweis mit der IO.dll verwertet, aber irgend wie kommt bei mir nur das letzte Zeichen an, was ich an die Schnittstelle sende - in diesem Fall eine "1"

Kann mir einer helfen? Vielleicht eine Lösung anbieten oder einen Denkanstoß liefern.

Betriebssystem ist mir egal. Zurzeit habe ich Win XP Pro, habe aber auch noch einen Rechner mit Win 98 SE. Bin da sehr flexibel. Nur funktionieren sollte es.

Danke
Es gibt nichts Gutes, außer man tut es!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz