![]() |
ecape-sequenz zum drucker
hallo zusammen,
ich möchte aus lazarus heraus die esc-seq. zum Öffnen der Kassenschublade an den Drucker schicken. mit:
Code:
schicke ich "normalen" Text (in mytext)zum Drucker, der dort auch brav gedruckt wird :-)
stream := tfilestream.create(printerport,fmOpenWrite);
stream.Write(pchar(myText)^,length(myText)); wie aber bekomme ich die esc-seq zum Drucker. lt Manual soll folgende Sequenz geschickt werden: Die ESC-Sequenzen "Geldlade öffnen" 1) Schubladen Öffnung: ESC p m t1 t2; z. B. Chr(&H1B) + "p" + Chr(&H0) + Chr(&H64) + Chr(&H64) Aus QBASIC heraus: PRINT#1,CHR$(27);CHR$(112);CHR$(0);CHR$(50);CHR$(1 50); wie funkt das in pascal? ichdanke euch gewaltig für eure Ideen. Gruss KHH |
AW: ecape-sequenz zum drucker
Vorab 1), z.B., QBASIC das passt hinten und vorne nicht zusammen. 8-)
allgemein würde das so gehen :
Delphi-Quellcode:
var t : Textfile;
begin AssignFile (t,'LPT1'); rewrite (t); write (t,chr (27)+ richtige ESC-Sequenz); close (t); |
AW: ecape-sequenz zum drucker
mh, ich danke dir, aber das funktioniert wohl nicht mit ner seriellen Schnittstelle :-(
|
AW: ecape-sequenz zum drucker
Dann ersetzt doch einfach
Delphi-Quellcode:
durch
AssignFile (t,'LPT1');
Delphi-Quellcode:
oder statt COM1 den seriellen Port, den du benutzt.
AssignFile (t,'COM1');
|
AW: ecape-sequenz zum drucker
Also wenn schon AsignFile dann auch CloseFile.
Delphi-Quellcode:
var t : Textfile;
begin try AssignFile(t, 'LPT1'); Rewrite(t); Write(t, chr(27) + richtige ESC-Sequenz); finally CloseFile(t); end; end; |
AW: ecape-sequenz zum drucker
Zitat:
aber es kommt nix beim drucker an :-( wie wird denn Write(t, chr(27) + richtige ESC-Sequenz); für die genannten seqenzen definiert? danke gruss KH |
AW: ecape-sequenz zum drucker
Zitat:
Zitat:
- H = Hexadezimal (und wie gibt man das in Delphi an?) - genau, mit einem $, also $1B - und statt über CHR kann man es auch direkt als CHAR-Konstante deklarieren, oder man läßt es so Chr(&H1B) = Chr($1B) = #$1B - und das " in Pascal ein ' sein soll, braucht man keinem zu sagen, oder? "p" = 'p' = #$70 = #112 = CHR(112) PS: #27 = #$1B = Escape Zitat:
$64 (Hexadezimal) = 100 (Dezimal)
Delphi-Quellcode:
(laut dem ersten Code)
#27'p'#0#100#100
|
AW: ecape-sequenz zum drucker
Ich glaube das Thema wird "etwas" unterschätzt. Siehe das :
Zitat:
@roter Kasten : schön, dass du da bist. :lol: Kein einziger Beitrag ist zu sehen. Nur das was momentan noch editiert wird. :shock: |
AW: ecape-sequenz zum drucker
Himitsu hat ja den Hex-Kram quasi übersetzt. Was für solche Fälle immer nützlich ist, das ist das :
![]() Na gut, da Ami mich warten lässt, und die Glaskugel heute neu poliert wurde noch hierzu was : 1) Schubladen Öffnung: ESC p m t1 t2 Diese Sequenz kommt mir sowieso bekannt vor. ESC ist klar, p könnte für "pay" stehen, also Kasse öffnen. Was soll das m ? Zunächst mal t1 und t2 (auch klar). Die zwei Zahlen stehen für ein Zeitintervall. Dieses bestimmt, wie lange der Schubladenstrom fliesst, damit der Öffnungsmechanismus das Ding aufmachen kann. Wenn ich mich recht entsinne ist in der ESC-Sequenz noch eine Schubladennummer vorgesehen. Das kann nur das m sein. Also hätten wie z.B. so etwas :
Delphi-Quellcode:
Das wäre eine gültige ESC-Sequenz für die Schublade. Hinter 'p' steht die erste #0 für erste Schublade, weil vermutlich nur eine da ist. t1 steht auf 0, t2 auf 150, d.h. der Schubladenstrom fliesst für 150 ms. Gewähr wird sowieso keine übernommen, aber wenn das so richtig ist, dann geht das Teil auf. Ansonsten die 150 erhöhen. Kommt kein "Klack", dann ist Kabel falsch, Drucker aus oder die serielle Verbindung ist falsch eingestellt.
write (t,chr(27)+'p'+chr(0)+chr(0)+chr(150));
Sieht jetzt so aus, als bräuchte man den m und t1 Wert nicht, aber t1 ist sicherheitshalber und 2 Schubladen braucht man schon in Grenzgebieten, selbst im EUR-Zeitalter. Vielleicht gibts ja bald sogar wieder Engpass an Kassenschubladen. :lol: |
AW: ecape-sequenz zum drucker
Was ist es denn für eine Kasse ? Eine Bezeichnung wäre hilfreich und wie ist diese angeschlossen ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz