Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Einlesen über Druckerschnittstelle

(Anonym) / 1 Antworten / Baumansicht Nickles

Tach Leute!

ich möchte mal gern wissen, ob es möglich ist Daten mit der Druckerschnittstelle einzulesen und zwar egal mit welcher Programmiersprache (nur grundsätzlich halt).

Die Druckerschnittstelle besteht ja aus Datenregister, Statusregister und Steuerregister.
Mit dem Statusregister kann ich 5 Zustände einlesen, jedoch ist es normalerweise für den Hardware-Handshake gedacht.
Steuer- und Datenregister sind dazu da, Daten bzw. Steuerbefehle auszugeben.

Meine Frage ist nun, ob es möglich ist über das Datenregister auch etwelche anliegende Daten einzulesen (z.B. mit InPort).

Was heisst eigentlich der Ausdruck bidirektional im Zusammenhang mit der Druckerschnittstelle?

vielen Dank schonmal...
Phil

bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „Einlesen über Druckerschnittstelle“
Optionen

Hallo Phil

grundsätlich ist es kein Problem über den Druckerport Daten einzulesen. Die Leitungen im Statusregister lassen sich mit _inp unter C++ einlesen und repräsentieren direkt die entsprechenden Steuerleitungen des Druckers (teilweise invertiert). Du bekommst also beim Einlesen des Statusregisters immer den Zustand der Leitungen, die am Port angeschlossen sind.
Unter Dos war es üblich so zu arbeiten. Windows ist allerdings nicht für den direkten Portzugriff konzipiert. Es funktioniert aber unter Win95 -98 immer noch. Wenn Du allerding keine Maßnahmen ergreifst kann z.B. ein Ausdruck der gleichzeitig mit Deinem Programm läuft fehlerhaft ausgeführt werden. Unter NT geht´s nicht und über Win2000 weiß ich noch nichts.
Bidirektional bedeutet, dass der Port, der normalerweise zum Ausgeben von Daten auf dem Drucker da ist, auch auf einlesen geschaltet werden kann. (ich glaube der Schalter war Bit 5 im Steuerregister müsste ich nachsehen). Wenn der Port auf Lesen steht, werden beim Lesen des Datenregisters nicht mehr die vorher reingeschriebenen Werte zurückgegeben, sondern die Werte auf denen sich die Datenleitungen aktuell befinden.

Hoffe das hilft weiter

Gruß Wolf

bei Antwort benachrichtigen