Parallelport Rückmeldung ?
-
Hallo,
ich bin es noch von QBASIC gewohnt, das wenn ich einen LPRINT
auf den LPT Port mache, das die Zeichen geschickt werden, und dann solange
gewartet wird, bis der Drucker seine Bestätigung geschickt hat.
(Glaube das wird über einen Pin erledigt, der auf 0 gezogen wird ??)Nun mache ich dasselbe mit Createfile, aber es wird nicht diese wichtige
Rückmeldung abgewartet.HANDLE lpt = CreateFile( "LPT1", GENERIC_READ | GENERIC_WRITE,0,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); CHAR text[4]="jo\n"; DWORD byteswritten; WriteFile( lpt, text, 4, &byteswritten,NULL)
Kann mir jemand sagen, wie man das machen kann ?
Gruß
thenoname
-
Was willst Du denn "drucken"?
Siehe auch:
http://www.lvr.com/parport.htm
-
Es handelt sich um die Ansteuerung eines Plotters.
Ich schildere mal die beiden Abläufe:LPrint:
LPrint "MO 3"
Lprint startet -> LPrint schreibt -> Lprint wartet, bis Plotter fertig ist und kehrt ins Programm zurück
Pause 20 -> ein wenig warten, da dieser alte Plotter nicht so schnell ist
Lprint "MO 4"
Lprint startet -> LPrint schreibt -> Lprint wartet, bis Plotter fertig ist und kehrt ins Programm zurückWriteFile:
WriteFile( lpt, "MO3", 4, &byteswritten,NULL)
WriteFile startet -> Writefile sendet und kehrt zurück
Plotter ist nicht fertig !
nächstet Writefile wird ausgeführt -> Plotter hält an und sagt Fehler.Nun hab ich das mit Overlapped Transfere versucht.
Dummerweise wird hier zwar gewartet, aber erst bei einem neuen Befehl,
da dieser nicht geschrieben werden kann. Und da der nächste Writefile
dann gleich gesendet wird, hält der Plotter mit Fehler an, da die Pause fehlt.Ich war jetzt sogar so weit, die Statusflags des Parallelportes einzeln abzufragen,
um das "Bin Fertig" zu erkennen. Leider kommt dies anscheinend zu kurz.Irgendeine Idee, wie man das Writefile dazu bringen kann zu warten bis
wirklich die Rückmeldung da ist ?Gruß
thenoname