Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen (https://www.delphipraxis.net/121444-epson-tm-t88-roemisch-3-nur-kassenschublade-oeffnen.html)

egon.kaschuba 27. Sep 2008 20:25


Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Hallo,
hilferuf an alle.

Ich möchte NUR die Kassenschublade öffnen.
:wall:
Der Drucker ist ein Laser Epson TM-T88

Das habe ich gemacht ....
Mit (0,0,'P') bewegt sich nur der Drucker
Mit (0,0,'A') Öffnet Schublade und Druckt.

Wer kann mir dabei helfen ??

Gruß
- Egon

Delphi-Quellcode:
with Printer do begin  // Druckt (Image) auf Bon
            Begindoc;

      Printer.Canvas.Font.Name:='control'; // Steuercode für Bondrucker und Schublade
      Printer.Canvas.Font.Size:=10;
      Printer.Canvas.TextOut(0,0,'A');
      EndDoc;  
           end;

omata 27. Sep 2008 20:34

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Vielleicht hilft das hier weiter.

Hansa 27. Sep 2008 20:55

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Geht mit dieser ESC-Sequenz :

Delphi-Quellcode:
(chr (27) + 'p' + chr (0) + chr (50) + chr (50));

egon.kaschuba 27. Sep 2008 21:17

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
:wall:

Leider noch nicht , ich weiß nicht
wo der Fehler liegt.
Wenn das so aussehen soll,bekomme ich die Meldung
Inkompatible Typen Interger u. String.

Delphi-Quellcode:
 Printer.Canvas.TextOut (chr (27) + 'p' + chr (0) + chr (50) + chr (50);

omata 27. Sep 2008 21:18

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Delphi-Quellcode:
Printer.Canvas.TextOut(0, 0, #27 + 'p' + #0 + #50 + #50);

egon.kaschuba 27. Sep 2008 21:23

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Hallo Omata u. alle.

Ne, geht nicht,mit dem Code wird nur Gedruckt.
Aber ich möchte nUR dir Schublade öffnen.

Delphi-Quellcode:
Printer.Canvas.TextOut(0, 0, #27 + 'p' + #0 + #50 + #50);

omata 27. Sep 2008 21:34

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Neuer Versuch...

Delphi-Quellcode:
type
  TPassThroughData = record
    nLen : Integer;
    Data : array[0..255] of byte;
  end;

procedure DirectPrint(s:string);
var PTBlock : TPassThroughData;
begin
  PTBlock.nLen := length(s);
  StrPCopy(@PTBlock.Data, s);
  Escape(Printer.Handle, PASSTHROUGH, 0, @PTBlock, nil);
end;

procedure TForm.ButtonClick(Sender: TObject);
begin
  Printer.BeginDoc;
  DirectPrint(#27 + 'p' + #0 + #50 + #50);
  Printer.EndDoc;
end;

DP-Maintenance 27. Sep 2008 21:55

DP-Maintenance
 
Dieses Thema wurde von "fkerber" von "Open-Source" nach "Sonstige Fragen zu Delphi" verschoben.
Dieser Bereich dient zur Vorstellung eigener OpenSource-Programme.
Da es sich hier um eine Frage handelt, verschiebe ich mal...

Garfield 28. Sep 2008 00:16

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Zitat:

Zitat von Hansa
Geht mit dieser ESC-Sequenz :

Delphi-Quellcode:
(chr (27) + 'p' + chr (0) + chr (50) + chr (50));

:gruebel: In Omatas Link steht:
Zitat:

Geldlade öffnen:
ESC p m t1 t2
z. B. CHR(&H1B) + "p" + CHR(&H0) + CHR(&H64) + CHR(&H64)
Das wäre dann doch:
Delphi-Quellcode:
(chr (27) + 'p' + chr (0) + chr (100) + chr (100));

Hansa 28. Sep 2008 03:37

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Jo, Schlaumeier. Ich habe den Link gar nicht durchgelesen, sondern die Prozedur schneller in funktionierendem Programm gesucht, als das alles zu lesen. 8) Im nachhinein würde ich sagen : Link auf Klartext-Silbertablett und selbst den kriegt er offenbar nicht so einfach hin. Vielleicht liegts ja an der Hex. :mrgreen: Obwohl, Omata hat doch sogar ganze ferige Prozedur geschickt. :shock:

Die Schublade braucht auch wohl kaum Druck-Koordinaten, das Textout aber schon. Schicke meine Sequenz GENAU SO direkt an den Drucker (siehe Omata). Oder zumindest vorerst mit
Delphi-Quellcode:
write (LST,....);
Diese Drucker sind auch nur bedingt grafikfähig. Deshalb besser gleich Finger weg von Canvas etc.

egon.kaschuba 28. Sep 2008 13:03

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
:wall:

Hallo Ihr alle,

konnte mich nicht sofort melden.

Nun habe ich alle Möglichkeiten
Probiert,aber nix geht.

Ich habe eine alte DOS Version gefunden,die ich mal mit
Clipper(DBase 3) geschrieben habe.

Da geht´s so ....

@ Zeile,0 say chr(27) + "p" +chr(0) + chr(100) + chr(100)

Ich stehe vor einem Rätsel ich verstehe die Welt nicht mehr.
Mit dieser möglichkeit " DirectPrint(#27 + 'p' + #0 + #50 + #50); "
Reagiert zwar der Drucker, aber die Schublade geht zum Verrückt werden
nicht auf.

Gruß
- Egon

omata 28. Sep 2008 13:08

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Wie sieht es mit 100 aus?
Delphi-Quellcode:
DirectPrint(#27 + 'p' + #0 + #100 + #100);

Hansa 28. Sep 2008 13:56

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Probiere mal das Programm im Anhang aus. Das sind 2 Arten, den Drucker anzusteuern.

egon.kaschuba 28. Sep 2008 14:18

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Hallo Hansa.
:wall:
Tut mir leid, NIX GEHT.
Auch nicht mit Deiner " Kasseauf.exe"

Wie gesagt , ich bin Kaputt und weiß nicht weiter.
Muss ne kleine Pause einlegen.

Gruß
- Egon

Hansa 28. Sep 2008 14:28

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was ist das eigentlich für eine Schublade ? Könnte auch am falschen Anschlusskabel liegen. Und wo ist der Drucker angeschlossen ? Parallel, USB oder was ?

Als nächstes würde ich alle Fehlerquellen so weit wie möglich ausschalten. Also Delphi, Windows usw. Schreibe ein kleines Programm, das die Sequenz in Textdatei schreibt. Diese dann so ausdrucken :
Code:
type test.txt >lpt1
Die Datei ist hier dabei. Die eine Zeile.... :mrgreen:

egon.kaschuba 28. Sep 2008 19:18

Re: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Hi,
also das ist eine Schublade ohne besonderen Namen.
Die Schublade wird mit einem RJ 45 Kabel
zum EPSON TM [...] Drucker Verbunden.

Leider kann ich mit dem EPSON zur Zeit nicht mehr arbeiten
weil er morgen wieder im Laden gebraucht wird.

Gruß
- Egon

michael.schaefer 28. Apr 2013 13:18

AW: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Hallo Leute

das mit dem Öffnen der Schublade ist nicht wirklich ein Propblem. Das funzt wie hier mehrfach beschrieben. Fehlermeldungen wie der Hinweis
auf string / int Typen sollten doch mit Lesen der Delphi-Hilfe beseitigt werden können.

Ich versuche dagegen schon eine geraume Zeit zu überprüfen, ob die Schublade (noch) geöffnet oder geschlossen ist. Da komme ich keinen Schritt
weiter.

Fällt jemandem etwas dazu was ein? Vielen Dank schon mal vorab ...

Gruß Michael

Nachtrag:

Die TM-XX Epsondrucker verfügen über ein Ausgang der einen definierten Spannungsimpuls an einem speziellen Port zur Verfügung stellt.
Dort kann men alle Schubladen mit der Spezifikation anschliessen. Wenn der Drucker nun die Sequenz (öffnen) erhält, bekommt ein Haltemagnet
in der Schublade einen kurzen Impuls und die Schublade wird von eienr Feder aufgedrückt. Das ist alles auch gut dokumentiert und ist einfach
per ESC-Sequenz zu realisieren.
Der Drucker stellt aber auch die Information über den Öffnungszustand der Schublade bereit. Diese Info auszulesen macht mich gerade wahnsinnig.
Das Wenige an Doku reicht nicht aus. Der deutsche EPSON-Support stellt nur unbrauchbares Zeugs zur Verfügung. Deren Hotline sagt bloß "müsste aber".

Hat jemand von Euch eine Lösung?

Wäre echt dankbar ....

michael.schaefer 28. Apr 2013 16:34

AW: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Nachtrag:

Anbei die Function mit der ich arbeite.

Die Klasse "TioDevice" behandelt alle möglichen Interfaces wie RS232, USB, Lpt1, Ethernet ....


function KassenschubladeOeffnen(): boolean;
var sequenz: string;
Device : TioDevice;
begin

RESULT := False;

sequenz := dmbm.GetStringOfSql('SELECT laden_sequenz FROM barkassen WHERE id = ' + IntToStr(kasse_id));
if length(sequenz) > 0 then begin
sequenz := StrWertBilden(sequenz); // 27,112,48,55,121 StrWertBilden(erzeugt einen String aus der Ziffernkette)

Device := TRs232Device.Create;
(Device as TRs232Device).Stopbits := ONESTOPBIT;
(Device as TRs232Device).SetBaudrate(CBR_38400);
(Device as TRs232Device).Datenbits := DATABITS_8;
(Device as TRs232Device).Parity := NOPARITY;
(Device as TRs232Device).Name := 'COM2';
(Device as TRs232Device).ReadTimeout := 500;
(Device as TRs232Device).WriteTimeout := 500;

try
(Device as TRs232Device).Open;
(Device as TRs232Device).SetDTR;
(Device as TRs232Device).SetRTS;
try
RESULT := schreiben(sequenz,(Device as TRs232Device));
except
chipanmeldung := False;
end;

(Device as TRs232Device).Close;
(Device as TRs232Device).Destroy;

kasse_main.FormTouchKasse.Lladeoffen.Visible := RESULT;

except
RESULT := False;
end;
end;

Das könnt ihr ja mal versuchen. Das funzt definitiv ....

Gruß Michael

sx2008 28. Apr 2013 18:40

AW: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Zitat:

Zitat von michael.schaefer (Beitrag 1213247)
Ich versuche dagegen schon eine geraume Zeit zu überprüfen, ob die Schublade (noch) geöffnet oder geschlossen ist. Da komme ich keinen Schritt weiter.

Ja, weil du im Nebel rumstocherst.

Schritt 1.)
Doku der Schnittstelle für den Drucker besorgen.
Und ganz wichtig: wenn du diese gefunden hast, dann stell' den Link für den Download hier ins Forum.
Weil du das nicht gemacht hast :twisted: ist hier das Ergebnis meiner Suche:
http://www.delfi.com/SupportDL/Epson...05_receipt.pdf
Meine Suche war epson tm-t88 "programming guide"

Schritt 2.) Schauen nach was man im Dokument suchen muss.
Schublade = drawer (english)
Schubladenauslösung = drawer kick-out

Damit findet man auf Seite 288 den Befehl "Transmit real-time status".

Schritt 3.) Doku genau lesen und verstehen
Wenn man dem Drucker den String #16#4#1 schickt, dann antwortet er mit einem Statusbyte (siehe Seite 290)
In diesem Byte gibt es ein Bit für den Drawer kick-out connector pin 3.
Dieses Bit dürfte das sein was dich interessiert

Schritt 4.) eine Datei mit 3 Bytes (16,4,1) erzeugen und mit einem Terminalprogramm an den Drucker schicken (ASCII File upload).
Der Drucker muss mit einem Statusbyte antworten.
Mit offener und geschlossener Schublade testen und auf den Unterschied im Statusbyte achten.

Schritt 5.) das was in Schritt 4 getestet wurde mit Delphi programmieren.

michael.schaefer 29. Apr 2013 15:23

AW: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
Vielen Dank zunächst. Ich werde das versuchen ...

Das Problem dürfte die parallele Schnittstelle sein. Da habe ich keine Erfahrung wie man da eine Antwort ausliest.

Gruß Michael

p80286 29. Apr 2013 15:55

AW: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
hast Du schon mal versucht den "Printerstatus" mit Hilfe von Port_Info_x auszulesen?

Gruß
K-H
Nachtrag:
Durch Zufall gefunden:http://www.delphipraxis.net/8763-ste...bis-winxp.html

arnof 29. Apr 2014 08:29

AW: Epson TM-T88 Römisch 3 NUR Kassenschublade öffnen
 
ich hatte auch gerade einen Kunden dran, bei dem Drucker gehen irgendwie die Standard Epsoncodes nicht!

Komische Sache


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz