![]() |
Epson TM-T70 USB Kassenschublade öffnen
Hallo,
gibt es eine Möglichkeit eine am Epson TM-t70 USB angeschlossenen Kassenlade per button click zu öffnen, ohne dass der Belegdrucker druckt. Vielen dank für die Hilfe schon mal |
AW: Epson TM-T70 USB Kassenschublade öffnen
Verwendest Du einen OPOS-Treiber? Damit sollte das gehen.
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Ja.
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Momentan benutze ich die Win. Treiber und drucke den Beleg ganz einfach über "wrieln"
wie funtioniert das mit dem opos Treiber ? Wie binde ich das in Delphi ein ? |
AW: Epson TM-T70 USB Kassenschublade öffnen
Zitat:
Zitat:
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Zitat:
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Funktioniert das nur über die opos Treiber ober gibt es auch eine andere Möglichkeit ?
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Es wird doch sicherlich eine Virtuelle Serielle Schnittstelle installiert oder?
Dann gehts auch per Serieller Anbindung mit dem passenden ESC Befehl. |
AW: Epson TM-T70 USB Kassenschublade öffnen
Zitat:
Zitat:
Ich habe im Büro zufällig gerade einen TM-295P rumzustehen, dem ich beibringen muss, das Papier zu greifen bzw. freizugeben. ESC-Sequenz zum Freigeben hab ich gefunden, die zum Greifen nicht (trotz Handbuch). Ich habe das OPOS-OCX genommen und damit geht es teilweise. Aber der 'release' klappt nur mit ESC-Sequenz. Bestimmt gibt es hier richtige Programmierer (wie das vagtler z.B.) die innerhalb von 25 Sekunden gegoogeln und ein funktionierendes Beispielprojekt erstellen. Zum Thema: Installiere OPOS, richte den Drucker ein (SetupPOS.EXE starten). Der bekommt einen bestimmten Namen 'TM-170' vermutlich. Dann öffnest Du Delphi und installierst die ActiveX-Komponente (Im Komponenten-Menü, glaube ich). Danach schaust Du dir die Beispielprojekte an, die grauenvoll sind. Du musst mit dem OPOS-Teil deinen Drucker Claimen, aktivieren und enablen (oder öffnen). Hab den Code nicht hier, es sind aber drei aktionen in der richtigen Reihenfolge. Danach solltest Du den Drucker und die Schublade vermutlich kontrollieren können. Ach, drucken geht auch. Ich habe eben im TM-170 Manual geschaut, aber auf die Schnelle auch keine ESC-Sequenz gefunden, aber die wird es geben, keine Frage. So: Und wenn jetzt alle Beteiligten mit dem Klugscheißern aufhören, wird das vielleicht noch was, gell? |
AW: Epson TM-T70 USB Kassenschublade öffnen
Hallo,
ich mache das über den Windows-Druckertreiber so:
Delphi-Quellcode:
Funktioniert - mit teilweise anderen Kommando (acmd) mit eigentlich allen Bondruckern.
function RawDataToPrinter(szPrinterName:PChar; lpData:PByte; dwCount:Word) : Boolean;
Var hPrinter : THandle; DocInfo : DOC_INFO_1; dwJob : Word; dwBytesWritten : Cardinal; Begin Result:=False; if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then Exit; DocInfo.pDocName := 'RAWJOB'; DocInfo.pOutputFile := NIL; DocInfo.pDatatype := 'RAW'; dwJob := StartDocPrinter( hPrinter, 1, @DocInfo ); if (dwJob = 0 ) Then begin ClosePrinter( hPrinter ); Exit; end; if not StartPagePrinter( hPrinter ) then begin EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); Exit; end; if not WritePrinter( hPrinter, lpData, dwCount, dwBytesWritten ) then begin EndPagePrinter( hPrinter ); EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); Exit; end; if not EndPagePrinter( hPrinter ) then begin EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); Exit; end; if not EndDocPrinter( hPrinter ) then begin ClosePrinter( hPrinter ); Exit; end; ClosePrinter( hPrinter ); Result:=dwBytesWritten = dwCount; End; function SwitchPrinter(const APrtName : string):string; var Device, Driver, Port: array[0..255] of Char; DevMode: THandle; begin with Printer do begin PrinterIndex := Printers.IndexOf(APrtName); GetPrinter(Device, Driver, Port, DevMode); SetPrinter(Device, Driver, Port, 0); result:=Printers[printerindex]; end; end; procedure Tfrmmain.opendrawer(nr:integer); Var FH:THandle; Buff: array[0..5] of char; RetW:DWORD; port:string; cmd:string; acmd:ansistring; p:pansichar; begin // Anderer Code acmd:=#27#112#48#250#250; if dm.steuertext='Epson2' then // 2. Schubladenanschluss acmd:=#27#112#49#250#250; p:=AnsiStrAlloc(length(acmd)); p:=StrPCopy(p,acmd); switchprinter(dm.Steuertextdrucker); //Druckername rawdatatoprinter(pwidechar(dm.Steuertextdrucker),pbyte(p),length(acmd)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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