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ück

    WriteFile:

    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


Anmelden zum Antworten