Hallo,
ich hätte gerne meinen alten Stift-Plotter wieder verwendet. Dieser hat sowohl eine parallele als auch eine serielle Schnittstelle. Das Datenformat ist HPGL, also reiner Text.
Nun habe ich zum Test ein kleines Programm geschrieben (mit Borland-C++Builder), mit dem ich in ein Edit-Feld die HPGL-Befehle schreibe und diese dann an den Plotter übertrage.
Zuerst wollte ich es mir einfach machen und die parallele Schnittstelle verwenden. Für den Schnittstellentest habe ich meinen Nadeldrucker verwendet, der normalerweise angeschlossen ist und der damit einwandfrei funktioniert. Das hatte ich mir so
vorgestellt:
char Text[]={'T','e','s','t',0xD,0xA};
// int iFileHandle = FileCreate("PRN"); //auch probiert
int iFileHandle = FileOpen("LPT1:", fmOpenWrite);
if(iFileHandle<0){ShowMessage("Drucker nicht bereit"); return;}
x=FileWrite(iFileHandle, Text, 6);
if(x!=6)ShowMessage("Fehler");
FileClose(iFileHandle);
Diese Funktion wird klaglos ausgeführt, bloss am Drucker kommt nichts an.
Weiss jemand, warum das nicht geht?
Es bleibt mir ansonsten wohl nichts anderes übrig, als die Ports direkt anzusprechen. Dafür habe ich schon mal das Modul "DlportIO" verwendet. Das funktioniert. Dazu muss man aber die Portadresse kennen. Natürlich kann ich diese ermitteln und dann
eintragen. Lieber wäre mir aber eine automatische Erkennung. Ich nehme an, dass das irgendwo in der Registry steht.
Weiss jemand wo?
Vielen Dank im Voraus.
Kyriako.
ich hätte gerne meinen alten Stift-Plotter wieder verwendet. Dieser hat sowohl eine parallele als auch eine serielle Schnittstelle. Das Datenformat ist HPGL, also reiner Text.
Nun habe ich zum Test ein kleines Programm geschrieben (mit Borland-C++Builder), mit dem ich in ein Edit-Feld die HPGL-Befehle schreibe und diese dann an den Plotter übertrage.
Zuerst wollte ich es mir einfach machen und die parallele Schnittstelle verwenden. Für den Schnittstellentest habe ich meinen Nadeldrucker verwendet, der normalerweise angeschlossen ist und der damit einwandfrei funktioniert. Das hatte ich mir so
vorgestellt:
char Text[]={'T','e','s','t',0xD,0xA};
// int iFileHandle = FileCreate("PRN"); //auch probiert
int iFileHandle = FileOpen("LPT1:", fmOpenWrite);
if(iFileHandle<0){ShowMessage("Drucker nicht bereit"); return;}
x=FileWrite(iFileHandle, Text, 6);
if(x!=6)ShowMessage("Fehler");
FileClose(iFileHandle);
Diese Funktion wird klaglos ausgeführt, bloss am Drucker kommt nichts an.
Weiss jemand, warum das nicht geht?
Es bleibt mir ansonsten wohl nichts anderes übrig, als die Ports direkt anzusprechen. Dafür habe ich schon mal das Modul "DlportIO" verwendet. Das funktioniert. Dazu muss man aber die Portadresse kennen. Natürlich kann ich diese ermitteln und dann
eintragen. Lieber wäre mir aber eine automatische Erkennung. Ich nehme an, dass das irgendwo in der Registry steht.
Weiss jemand wo?
Vielen Dank im Voraus.
Kyriako.
Comment