AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Job-Börse: Angebote und Gesuche Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Thema durchsuchen
Ansicht
Themen-Optionen

Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

Ein Thema von 4ks3l · begonnen am 13. Jun 2020 · letzter Beitrag vom 18. Jun 2020
Antwort Antwort
4ks3l

Registriert seit: 12. Jun 2020
9 Beiträge
 
#1

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 16. Jun 2020, 15:22
Hallo beisammen,

vielen Dank für eure Unterstützung.

Den Epson TM-88V ist im LAN via einem Printserver eingebuchen.

Wenn ich euch und den Inhalt der gennannten Verlinkungen richtig verstehe,
dann erstelle ich jetzt eine Textdatei (z.B. textdatei.dat) mit dem ESC-Kommando 'p025250' und
'schicke' diese per Befehl 'copy /B textdatei.dat \\server\druckername.

Ich bin gespannt, ob es funktioniert und berichte dann gerne.

Die TSE soll über das Warenwirtschaftssystem gewährleistet werden. So ist zumindest mein Stand heute...

Aksel
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.586 Beiträge
 
Delphi 12 Athens
 
#2

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 16. Jun 2020, 16:53
Ja, klingt so, als wenn copy /B posbefehl.dat \\pos\printername ausreichen könnte.
Zum Erstellen der Datei, mit dem EscapeCode (Steuerzeichen), kannst dich an Hier im Forum suchenHxD wenden.



Wenn der Drucker eh nicht benutzt wird.
Es gibt auch USB-Adapter (eventuell auch für LAN), wo man die Kassenschublade direkt schließen kann, ohne einen Bondrucker dazwischen.
Die haben dann manchmal auch eine recht einfache API, wie z.B. eine URL aufrufen um zu Öffnen.

Sind die Schubladen denn irgendwie kodiert?
Nicht dass da am Ende nur ein Endschalter und ein Öffnerrelais drin stecken (Strom an = Klappe geht auf bzw. Schublade flutscht raus), denn dann könnte man das Ding auch selbst ansteuern.
(gibt z.B. fertige Relais-IO-Geräte, die sich einfach via LAN steuern lassen)



Einen lokalen Druckertreiber habt ihr installiert, der dann via LAN mit dem PosDrucker redet?
Dann kann man via Delphi oder auch z.B. über ein kleines Python-Script den Befehl an den Treiber schicken.
https://pypi.org/project/escposprinter/
https://stackoverflow.com/questions/...thon-in-ubuntu
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jun 2020 um 17:27 Uhr)
  Mit Zitat antworten Zitat
4ks3l

Registriert seit: 12. Jun 2020
9 Beiträge
 
#3

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 09:35
Zitat:
Zum Erstellen der Datei, mit dem EscapeCode (Steuerzeichen), kannst dich an Hier im Forum suchenHxD wenden.
Kann man die Datei mit dem EscapeCode den nicht mit dem normalen Windows-Editor erstellen?

Zitat:
Einen lokalen Druckertreiber habt ihr installiert, der dann via LAN mit dem PosDrucker redet?
Der Bondrucker ist unter \\SRV-DC\Bondrucker erreichbar und an den jeweiligen Clients eingerichtet.

Wie bereits geschrieben, kann ich über an den Clients die Kassenschublade über
Druckereigenschaften -> Einstellungen -> Perip. ger. -> Betriebesprüfung
die Kassenschulade öffnen.

Geändert von 4ks3l (17. Jun 2020 um 09:51 Uhr)
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
548 Beiträge
 
Delphi 12 Athens
 
#4

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 10:20
Eigentlich ist das nicht so schwierig:

Delphi-Quellcode:

procedure Tfrmmain.opendrawer(nr:integer);


Var
     FH:THandle;
     Buff: array[0..5] of char;
     RetW:DWORD;
     port:string;
     cmd:ansistring;
     acmd:ansistring;
     p:pansichar;
     stext,sdrucker:string;
begin
  if dm.Schublade1typ=drawerprinter then // Drucker
  begin
    if nr=2 then
     stext:=dm.Steuertext2 else
     stext:=dm.steuertext;

    sdrucker:=dm.Steuertextdrucker;
    //if (dm.Steuertextoption=2) or (dm.Steuertextoption=1) then
    begin
      if (stext='Epson1') or (stext='Epson') then
      acmd:=#27#112#48#250#250;
      if stext='Epson2then
      acmd:=#27#112#49#250#250;
      if stext='Bixolon SRP350then
      acmd:=#27#112#48#50#250;
      if stext='Star1then
      acmd:=#7;
      if stext='Star2then
      acmd:=#27#7#11#55#7;
      if stext='Wincor1then
       acmd:=#27#48;

      if stext='Bocathen
       acmd:='#$1#$C';

      p:=AnsiStrAlloc(length(acmd));

      p:=StrPCopy(p,acmd);

      rawdatatoprinter(pwidechar(sdrucker),pbyte(p),length(acmd));
      if dm.Schubladedelay>0 then
       sleep(dm.schubladedelay);

    end;
  end;
end;
Die Procedure ist etwas abgekürzt, die anderen Arten der Schubladensteuerung habe ich weggelassen.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.471 Beiträge
 
Delphi 12 Athens
 
#5

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 10:25
Moin...
Zitat:
ich selbst bin nur Anwender...

Ich benötige eine Ausführbare Exe-Datei/Programm (Windows), welche die an unserem Bondrucker
Epson TM-T88V angeschlossene Kassenschublade öffnet.
Es nützen ihm keine Quelltexte...sondern nur eine EXE. Würde sich jemand, der Ahnung hat, sich mal erweichen. (1 Form, 1 Button)
  Mit Zitat antworten Zitat
4ks3l

Registriert seit: 12. Jun 2020
9 Beiträge
 
#6

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 12:28
Moin...
Zitat:
ich selbst bin nur Anwender...

Ich benötige eine Ausführbare Exe-Datei/Programm (Windows), welche die an unserem Bondrucker
Epson TM-T88V angeschlossene Kassenschublade öffnet.
Es nützen ihm keine Quelltexte...sondern nur eine EXE. Würde sich jemand, der Ahnung hat, sich mal erweichen. (1 Form, 1 Button)
Darüber würde ich mich sehr freuen. An einer Aufwandsentschädigung/Trinkgeld soll es nicht scheitern.

Der Drucker Epson TM-88V, an dem die Kassenlade angeschlossen ist, ist in unserem Netzwerk unter \\SRV-DC\Bondrucker bzw. 192.168.115.21 erreichbar und an den jeweiligen Clients eingerichtet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.586 Beiträge
 
Delphi 12 Athens
 
#7

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 12:48
Die erstellte Datei ist auch richtig?
Falls unsicher, an deinen Post anhängen, geht im "erweiterten" Editor. Notfalls als ZIP, weil nicht alles direkt erlaub ist.

Der Copy-Befehl hat keinen Fehler geliefert?
z.B. als kassenlade.bat oder .cmd
Code:
copy /B kassenlade.dat \\SRV-DC\Bondrucker
echo %errorlevel%
pause
Und wenn du mal Testhalber etwas ausdrucken lässt, geht das denn wenigstens?
Code:
print /D:\\SRV-DC\Bondrucker kassenlade.dat
bzw. irgendeine Test-Textdatei


Kann man die Datei mit dem EscapeCode den nicht mit dem normalen Windows-Editor erstellen?
Viele Zeichen lassen sich z.B. aus dem Programm Zeichentabelle (charmap.exe)
oder aus dem Internet (unicode.org, wikipedia, google) kopieren,
aber Steuerzeichen vor dem Leerzeichen sind da nicht drin.

Gut, wenn bzw. da du weißt, wie man solche Zeichen mit der Tastatur eingibt (NUM-Block), dann darfst das gern machen.
https://support.microsoft.com/de-de/...5-972ee12e50e0
Im Notfall kann man mit sowas wie HxD nochmal nachsehen, ob das auch stimmt, was man im normalen Editor eingegeben hatte.

Ansonsten lassen sich Binärdaten natürlich mit einem Binär-Editor recht einfach erstellen/bearbeiten.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
4ks3l

Registriert seit: 12. Jun 2020
9 Beiträge
 
#8

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 15:04
Die erstellte Datei ist auch richtig?
Falls unsicher, an deinen Post anhängen, geht im "erweiterten" Editor. Notfalls als ZIP, weil nicht alles direkt erlaub ist.
Die Datei 'kassenlade.dat' ist im Anhang, die Dateiendung musste ich zum Hochladen von .dat auf .txt ändern.

Der Copy-Befehl hat keinen Fehler geliefert?
Nein, siehe sreenshot in der PDF-Datei 'Details'


Und wenn du mal Testhalber etwas ausdrucken lässt, geht das denn wenigstens?
print /D:\\SRV-DC\Bondrucker kassenlade.dat
bzw. irgendeine Test-Textdatei
Ja, allerdings muss man bei der kurzen Datei den Befehl mehrmals abschicken.
Angehängte Dateien
Dateityp: pdf Details.pdf (337,5 KB, 10x aufgerufen)
Dateityp: txt kassenlade.txt (11 Bytes, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.586 Beiträge
 
Delphi 12 Athens
 
#9

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 15:12
Du hast die Datei als UTF-8 gespeichert, somit sind da am Anfang der Datei noch ein paar zusätzliche Bytes.
Beim Speichern müsstest du unten die Codierung auf ANSI umstellen.

Und dein "Steuerzeichen" ist als richtiges Pfeil-Zeichen drin.
Als ASCII/ANSI wären die ersten 128 "Zeichen" mit UTF-8 eigentlich identisch, aber dieser Peil stammt aus einer höheren Unicoderegion.


Ja, es gibt für alle Steuerzeichen auch Ersatzzeichen, damit Programme sie darstellen können,
aber funktional haben die dann natürlich eine ganz andere Bedeutung, halt nur wie ein normaler "Buchstabe".
https://www.unicode.org/charts/PDF/U2400.pdf

[edit]
Laut der PDF müssten die Werte m/t1/t2 auch als "Char" gespeichert werden, also 100 nicht als "100" sondern als "d".
Das hatte ich im Anhang nicht angepasst. (dort nur das ESC)
Angehängte Grafiken
Dateityp: png Unbenannt.png (20,4 KB, 8x aufgerufen)
Angehängte Dateien
Dateityp: zip kassenlade.zip (170 Bytes, 6x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Jun 2020 um 15:30 Uhr)
  Mit Zitat antworten Zitat
4ks3l

Registriert seit: 12. Jun 2020
9 Beiträge
 
#10

AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN

  Alt 17. Jun 2020, 15:45
Du hast die Datei als UTF-8 gespeichert, somit sind da am Anfang der Datei noch ein paar zusätzliche Bytes.
Beim Speichern müsstest du unten die Codierung auf ANSI umstellen.

Und dein "Steuerzeichen" ist als richtiges Pfeil-Zeichen drin.
Als ASCII/ANSI wären die ersten 128 "Zeichen" mit UTF-8 eigentlich identisch, aber dieser Peil stammt aus einer höheren Unicoderegion.


Ja, es gibt für alle Steuerzeichen auch Ersatzzeichen, damit Programme sie darstellen können,
aber funktional haben die dann natürlich eine ganz andere Bedeutung, halt nur wie ein normaler "Buchstabe".
https://www.unicode.org/charts/PDF/U2400.pdf

[edit]
Laut der PDF müssten die Werte m/t1/t2 auch als "Char" gespeichert werden, also 100 nicht als "100" sondern als "d".
Das hatte ich im Anhang nicht angepasst. (dort nur das ESC)
Hallo himitsu,

vielen Dank, das ist tatsächlich die Lösung, nun funktioniert es wie gewünscht.

Ich schicke Dir gleich noch eine PN
Edit: himitsu, dein Postfach ist voll, ich kann dir leider keine Nachricht schreiben...

Eine Frage noch: Wie kann man erreichen, dass sich das Fenster der BAT-Datei nach Ausführung automatisch schließt bzw. erst gar nicht öffnet?

Geändert von 4ks3l (17. Jun 2020 um 15:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 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