Seite 1 von 1

Escape-Sequenzen an Bondrucker

Verfasst: So, 30. Aug 2020 17:42
von miwe-pos
Windows- und Gui-Druck ist ja sehr schön, doch hilft es nicht einen normalen Bondrucker (EPSON-kompatibel) anzusteuern!
Sicher der reine Text geht mit XbpPrinter() oder DCPRINT, doch Steuerzeichen mit denen der Drucker voll ausgereizt wird, können damit nicht übertragen werden. Roger Donnay und auch Jan haben eine Version mit ?/??-Befehlen kreiert. Geht aber nur sauber im CRT-Fenster. Bei mir habe ich mit Set Printer to ...-on und set console off sowie set device to Printer gearbeitet. Das geht selbst in einer GUI-Anwendung etliche Male gut. Doch dann kommt die Fehlermeldung einer unerlaubten Operation Qout() nicht erlaubt.
Meine Drucke laufen in einem extra Thread, daneben laufen noch etliche andere Threads für verschiedene Bildschirmanzeigen. Offensichtlich funken diese manchmal dazwischen, und dann kommt der Fehler!
Der Druckerthread überwacht auch im Mehrplatzsystem ob Druckjobs, die von anderen Stationen geschickt werden, vorhanden sind; um sie dann zu drucken.
Nun kann jemand fragen, muss das mit den Druckersteuerzeichen denn sein? Ja es muss, sonst könnte keine Kassenlade vom Program geöffnet werden!

Beste Grüße
Michael

Re: Escape-Sequenzen an Bondrucker

Verfasst: So, 30. Aug 2020 19:47
von brandelh
Wie ist denn der Anschluss?

Eventuell macht es Sinn alle Texte und Steuerzeichen in einen String zu packen und auf einen Schlag zu senden.
Ein CRT Fenster braucht man nicht sichtbar haben, wenn ein QOUT() nicht erlaubt ist, verliert es das CRT Fenster, stimmt SetAppWindow() ?

Re: Escape-Sequenzen an Bondrucker

Verfasst: Mo, 31. Aug 2020 15:28
von ramses
Dafür gibts eine spezielle Funktion in der Windows API sie heisst ExtEscape damit lassen sich beliebige Zeichen an den GUI-Drucker senden.
Also auch ESC-Codes.

Re: Escape-Sequenzen an Bondrucker

Verfasst: Fr, 04. Sep 2020 17:19
von miwe-pos
Hallo Carlo/Ramses,

war eiene Woche verreist, deshalb erst jetzt meine Frage.
Wo finde ich ExtEscape? In den Alaska-Hilfetexten habe es nicht gefunden!

Gruß

Michael /miwe-pos

Re: Escape-Sequenzen an Bondrucker

Verfasst: Fr, 04. Sep 2020 17:31
von miwe-pos
Hallo Brandelh,

ich habe den ganzen Druckjob(Dateiinhalt) in einem String einschließlich aller Steuerzeichen und dann mit ?? cstring zum Drucker
gesendet. Klappt ja auch ca. 99 Mal von 100, doch dann Fehlermeldung.
Der Drucker ist als Windows-Drucker entweder mit Schnittstelle USB001 oder COM-Schnittstelle installiert.
Von früher her Kann ich die Com[n] oder LPT[n] direkt ansteuern, da lief ja auch alles, wollte einfach moderner werden und Windows das Drucken
überlassen; hinzu kommt, dass RS232 bzw. LPT immer weniger bei modernen PC's anzutreffen sind.

Gruß

Michael/miwe-pos

Re: Escape-Sequenzen an Bondrucker

Verfasst: Fr, 18. Sep 2020 9:38
von ramses
miwe-pos hat geschrieben: Fr, 04. Sep 2020 17:19
Wo finde ich ExtEscape? In den Alaska-Hilfetexten habe es nicht gefunden!
Das sind Windows-API Funktionen. Damit zu Drucken ist nicht ganz einfach.

Wenn du Bon-Drucker über RS232 angeschlossen hast ist es wesentlich einfacher, schneller und problemlos möglich über den Com-Port zu drucken.
Auch wenn die PC selbst keinen RS-232 Port mehr haben gibt es viele USB to RS232 Konverter die Problemlos funktioneren und die auf dem PC einen COM Port zur verfügung stellen der auf "altbekannte" Art und Weise benutzt werden kann. Ab besten achtest du aber darauf dass der Adapter einen FTDI Chip hat. Andere führen oft zu gröberen Sorgen und Problemen bei der Datenübertragung.

Auf jedenfall, so denke ich musst du die Ausgabe von ? auf com_write() umschreiben ......