Parallelport lesen/schreiben
-
Hi,
ich würde gerne den Parallelport lesen und schreiben, d.h. den ganz normalen Modus, bei dem auf D0..D7 geschrieben und die 5 Statusbits gelesen werden.
Die Beispielcodes, die sich im Internet finden, sind allesamt recht unbrauchbar, da sie mit direkter Portaddressierung (inp() / outp()) arbeiten, die auf Systemen >WinME ganz gewiss nicht mehr funktioniert.
Aber wie geht es dann?
-
-
Danke - ist nur völlig am Thema vorbei.
Diese DLL kapselt die direkten Portzugriffe nur - d.h. sie hilft spätestens dann gar nix, wenn ein USB->Parallel-Konverter angeschlossen ist, der über seinen Devicenamen (z.B. "LPT1") angesprochen werden muss.
-
Was Du hast, ist ein viruteller LPT-Port. Das wird nicht funktionieren.
Unter Win2K/XP lassen sich die Ports nicht mehr direkt ansprechen, das geht nur auf DOS-basierten Sytemen (Win98/ME und älter). Die InPout32.dll stellt einen Treiber zur bereit, der den Direktuzgriff mit inp()/ outp() ermöglicht. Allerdings nur für den LPT-Port, USB nicht.
Für USB-Konverter braucht man extra Treiber. Vom Francis-Verlag gibt es ein Handbuch für Basteleien/ Porgrammierung eines USB-Seriell- oder USB-8-Bit-Parallel-Konverters. Ist aber kein LPT-Port.
-
Ja, das ist mir schon klar. Allerdings hängt so ein virtueller Parallelport auch nur als "LPTx" im System - und kann von beliebiger Software, die auch nichts davon weiß, dass dies nur ein virtueller Port ist dennoch angesprochen werden.
D.h. es gibt einen Weg, der nicht über irgend eine direkte Adressierung möglicherweise nicht vorhandener Hardware geht, sondern über den Devicenamen selber...
-
Darkson schrieb:
Ja, das ist mir schon klar. Allerdings hängt so ein virtueller Parallelport auch nur als "LPTx" im System - und kann von beliebiger Software, die auch nichts davon weiß, dass dies nur ein virtueller Port ist dennoch angesprochen werden.
Dann aber nur als Drucker-Ausgabe o. ä.. Die Druckertreiber funktionieren anders, und die USB-LPT-Konverter(-Treiber) sind dafür ausgerichtet. Für Direktzugriff leider nicht.
Ich kenne Dein Problem. Ich habe vor ca. 2 Jahren einen Lapi gesucht, der noch einen "originalen" LPT-Port hatte. War gar nicht so einfach.
-
Schau mal hier:
-
Hi,
was bei einem USB-nach-Seriell/RS232 Konverter funktioniert, ist bei USB-nach-Parallel/LPT Konverter leider nicht üblich.Denn die meisten USB-nach-LPT Konverter sind ja dafür konstruiert, vorrangig einen LPT-Drucker und/oder einen LPT-Scanner über USB dem Windows-User verfügbar zu machen. Nicht weniger, aber auch nicht mehr!
Schaut man sich die Treiber Unterschiede zwischen diesen beiden Typen an, wird klar warum:
-seriell: ein USB-(Hardware-)Treiber plus virtuellem COM-Port-Treiber. Der COM-Port wird über Win32-API Funktionen bedient (kann also von Applikationen direkt genutzt werden).
-parallel: ein USB-(Hardware-)Treiber plus virtuellem Drucker-Treiber. Der Drucker wird über Drucker-Funktionen von Windows bedient (kann also nicht direkt von Applikationen genutzt werden)Was Ihr benötigt wäre der folgende "USB-zu-Parallel-Umsetzer USB2LPT" http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund um den PC/USB2LPT/index.html
Diese (günstige) Speziallösung ist vorrangig dazu gedacht, die einzelnen Portleitungen zu setzen und/oder abzufragen. Und natürlich auch einen Drucker als solchen über LPT anzusprechen!
"Die API zum USB2LPT" http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund um den PC/USB2LPT/API.htmIch denke mal, die beiden Links sagen alles aus...
Martin