Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ecape-sequenz zum drucker (https://www.delphipraxis.net/163637-ecape-sequenz-zum-drucker.html)

khh 7. Okt 2011 19:32

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:
stream := tfilestream.create(printerport,fmOpenWrite);
stream.Write(pchar(myText)^,length(myText));
schicke ich "normalen" Text (in mytext)zum Drucker, der dort auch brav gedruckt wird :-)

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

Hansa 7. Okt 2011 20:00

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);

khh 7. Okt 2011 21:24

AW: ecape-sequenz zum drucker
 
mh, ich danke dir, aber das funktioniert wohl nicht mit ner seriellen Schnittstelle :-(

Gargoyl 7. Okt 2011 21:30

AW: ecape-sequenz zum drucker
 
Dann ersetzt doch einfach
Delphi-Quellcode:
AssignFile (t,'LPT1');
durch
Delphi-Quellcode:
AssignFile (t,'COM1');
oder statt COM1 den seriellen Port, den du benutzt.

omata 7. Okt 2011 21:31

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;

khh 7. Okt 2011 21:42

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von Gargoyl (Beitrag 1129232)
Dann ersetzt doch einfach
Delphi-Quellcode:
AssignFile (t,'LPT1');
durch
Delphi-Quellcode:
AssignFile (t,'COM1');
oder statt COM1 den seriellen Port, den du benutzt.

hab ich ja gemacht,
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

himitsu 8. Okt 2011 00:18

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von khh (Beitrag 1129235)
wie wird denn
Write(t, chr(27) + richtige ESC-Sequenz);
für die genannten seqenzen definiert?

Sowas sollte man aber auch selber übersetzen können. (steht sogar alles Nötige in der OH und ganz am anfang eines ordentlichen Tutorials)

Zitat:

Chr(&H1B)
- das & ignorieren wir einfach
- 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:

Delphi-Quellcode:
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);

Eines von Beiden kann nicht stimmen, denn $64 <> 50 bzw. 150.
$64 (Hexadezimal) = 100 (Dezimal)

Delphi-Quellcode:
#27'p'#0#100#100
(laut dem ersten Code)

Hansa 8. Okt 2011 01:32

AW: ecape-sequenz zum drucker
 
Ich glaube das Thema wird "etwas" unterschätzt. Siehe das :

Zitat:

Zitat von Gargoyl (Beitrag 1129232)
Dann ersetzt doch einfach
Delphi-Quellcode:
AssignFile (t,'LPT1');
durch
Delphi-Quellcode:
AssignFile (t,'COM1');
oder statt COM1 den seriellen Port, den du benutzt.

Damit ist es leider nicht getan. Einfach LPT1 durch COM1 ersetzen und gut ist ? Ne. :mrgreen: Ich sage nur mal : Baudrate. Das Betriebssystem muss auf gewisse serielle Parameter eingestellt werden und das eigene Programm muss diese GENAU nutzen. Sonst geht nichts. Jetzt wäre interessant zu wissen, warum denn der Drucker manchmal druckt. Bezüglich der Kassenschublade : wo ist das Kabel her ? Vielleicht selber gelötet ? Belegung falsch ? Dann kann man noch 1000 Jahre programmieren und es geht immer noch nichts.

@roter Kasten : schön, dass du da bist. :lol: Kein einziger Beitrag ist zu sehen. Nur das was momentan noch editiert wird. :shock:

Hansa 8. Okt 2011 02:39

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 : www.asciitable.com

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:
write (t,chr(27)+'p'+chr(0)+chr(0)+chr(150));
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.

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:

turboPASCAL 8. Okt 2011 06:47

AW: ecape-sequenz zum drucker
 
Was ist es denn für eine Kasse ? Eine Bezeichnung wäre hilfreich und wie ist diese angeschlossen ?

khh 8. Okt 2011 07:11

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von turboPASCAL (Beitrag 1129264)
Was ist es denn für eine Kasse ? Eine Bezeichnung wäre hilfreich und wie ist diese angeschlossen ?

es handelt sich um diese kasse:

http://www.adasys.de/trade/images/Pr...124_ADASYS.pdf

mithilfe der unit :uCOMPort;

funktioniert es jetzt per
FComPort.SENDSTRING und
FComPort.SENDBYTE

text und zeilenubruch auf dem Drucker auszugeben.
nur die sch..öne Schublade reagiert nicht,
weder auf 27 112 48 40 40 ( aus http://www.cashdrawer.com/support/faqs)

noch auf 27 112 0 100 100


wie komme ich an die richtigen sequenzen?

Gruss KH

turboPASCAL 8. Okt 2011 07:37

AW: ecape-sequenz zum drucker
 
Und die Software zum Geldfachschublade ist installiert ?
Das Geldfachschubladensystem passt zur Kasse ? etc. pp.
Woher hast du die ESC-Sequenzen ?

khh 8. Okt 2011 07:48

AW: ecape-sequenz zum drucker
 
es ist ein windowsdruckertreiber installiert.
Beigelegt ist ein testprogramm,leider ohne quellcode, welches die Kassenschublade auch öffnet.

der Versuch per eingebundener dll und
GetProcAddress(DLLHandle, 'fnPCashDrawerOpen(1)');

war leider auch negativ.

Daniel 8. Okt 2011 07:53

AW: ecape-sequenz zum drucker
 
Wenn ich das richtig verstehe, geht die Kommunikation über den seriellen Port. Wenn man den Datenstrom einfach loggt? Viel dürfte es ja nicht sein, was da kommt und vielleicht hätte man dann einen Anhaltspunkt. Ich habe gerade mal mit Google gesucht und es scheint da diverse kostenfreie Tools zu geben, die den Port abhören können (oder dies zumindest versprechen).

khh 8. Okt 2011 08:01

AW: ecape-sequenz zum drucker
 
und was hast du gefunden ?

Mir brennt leider die Zeit unter den Nägeln :-(

Daniel 8. Okt 2011 08:06

AW: ecape-sequenz zum drucker
 
Oh sorry, also z.B. http://www.commfront.com/232default.htm, die limitierte Version ist kostenfrei. Welche Limits das sind und ob diese Dich tangieren, siehst Du hier: http://www.commfront.com/232analyzer-faq.htm#8

//edit: hm. Wenn ich das richtig sehe, würdet Du genau das Monitoring benötigen, was natürlich in der kleinen Version nicht enthalten ist.

Daniel 8. Okt 2011 08:10

AW: ecape-sequenz zum drucker
 
Vielleicht wäre der hier besser: http://www.aggsoft.com/serial-data-logger/download.htm

khh 8. Okt 2011 08:14

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von Daniel (Beitrag 1129276)


danke probiere ich gleich mal aus

ich melde mich dann wieder

khh 8. Okt 2011 08:44

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von khh (Beitrag 1129277)
Zitat:

Zitat von Daniel (Beitrag 1129276)


danke probiere ich gleich mal aus

ich melde mich dann wieder


ok, ausprobiert :-(

bei aktivem Logger stürzt Windows beim Schreiben auf den Com-Port mit Bluesceen ab:wall:

himitsu 8. Okt 2011 08:57

AW: ecape-sequenz zum drucker
 
Soll jetzt geloggt werden, wie die Übertragung läuft, oder nur was übertragen wird?

Bei Letzterem könnte man auch einfach mal schnell ReadFile und WriteFile hooken.
(falls keines der großen Tools funktionieren will)

Neumann 8. Okt 2011 09:01

AW: ecape-sequenz zum drucker
 
Wenn der Windows-Druckertreiber installiert ist, blockiert dieser den Comport. Kein anderes Programm kann ihn dann verwenden. Man kann dann aber einfach den Befehl zum Öffnen der Schublade als Textzeile mit der Schrift 'Control' an den Drucker senden. Ist nur ein Buchstabe, welcher müsste ich nachsehen.

Warum die elende serielle Schnittstelle für den Drucker? Ist extrem langsam und veraltet. Drucken von Graphiken und Truetype-Schriften ist damit unzumutbar.

Weiter habe ich gesehen, dass der Kassenrechner selbst eine Schnittstelle für eine Kassenschublade hat. Warum nicht die verwenden?

Habe das bei Kassenrechnern anderer Herstellern gemacht, funktioniert gut. Hier mal meine Routine, die mit nahezu allen Anschlußmöglichkeiten klarkommt:

Delphi-Quellcode:
procedure opendrawer;
Var
     FH:THandle;
     Buff: array[0..5] of char;
     RetW:DWORD;
     port:string;
begin
 if dm.SchubladeVonRechner then
    begin
      if dm.SchubladeHWPort>$8000 then // Schublade an Drucker mit LPT
      begin
        port:='lpt'+inttostr(dm.SchubladeHWPort-$8000);
        FH:= CreateFile(PChar(Port),
                               GENERIC_READ or GENERIC_WRITE,
                               0, Nil, OPEN_EXISTING, 0, 0);
        if (FH <> INVALID_HANDLE_VALUE) then
        try
           Buff:=#27#112#48#50#250;            // Escape-Sequenz
           WriteFile(FH, Buff, 5, RetW, Nil);
        finally
           CloseHandle(FH);
        end;
        FH:= CreateFile(PChar(Port),
                                   GENERIC_READ or GENERIC_WRITE,
                                   0, Nil, OPEN_EXISTING, 0, 0);
        if (FH <> INVALID_HANDLE_VALUE) then
        try
           Buff:=#27#112#49#50#250;           // Zweiter Anschluss
           WriteFile(FH, Buff, 5, RetW, Nil);
        finally
           CloseHandle(FH);
        end;
      end else
      begin
        portwriteb( dm.SchubladeHWPort,dm.SchubladeAuf ); // Schublade am Rechner angeschlossen Strom ein man braucht zlportio (Torry?)
        Timerschublade.Enabled:=true;                     // Schaltet Strom wieder ab
      end;
    end else
      if dm.Schubladedirekt then                          // IBM-Kasse mit Steuerung Schublade über Comport (vacommx: Tcomport)
      begin
        if not (dm.displayport=dm.Schubladecomnr) then
        vacomm3.WriteStr(dm.Schubladecm) else
        vacomm2.WriteStr(dm.Schubladecmd);
      end else
      begin
        if (dm.Steuertextoption=2) or (dm.Steuertextoption=1) then
        begin
          switchprinter(dm.Steuertextdrucker);
          if fileexists(dm.steuertext) then
          begin
            redbeleg.lines.LoadFromFile(dm.steuertext); // RTF-Text mit Steuerzeichen, senden über Druckertreiber
            redbeleg.Print('');
          end else
          begin
            messagedlg(_('Schubladen - Steuertext konnte nicht gefunden werden'),mterror,[mbok],0);
          end;
        end;
      end;

khh 8. Okt 2011 09:12

AW: ecape-sequenz zum drucker
 
alsooo

der logger hat mir die virtuelle com5 zerschossen
ich werd jetzt erst mal die Treiber neu installieren müssen :-(

khh 8. Okt 2011 09:13

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von Neumann (Beitrag 1129281)
Wenn der Windows-Druckertreiber installiert ist, blockiert dieser den Comport. Kein anderes Programm kann ihn dann verwenden. Man kann dann aber einfach den Befehl zum Öffnen der Schublade als Textzeile mit der Schrift 'Control' an den Drucker senden. Ist nur ein Buchstabe, welcher müsste ich nachsehen.

Warum die elende serielle Schnittstelle für den Drucker? Ist extrem langsam und veraltet. Drucken von Graphiken und Truetype-Schriften ist damit unzumutbar.

Weiter habe ich gesehen, dass der Kassenrechner selbst eine Schnittstelle für eine Kassenschublade hat. Warum nicht die verwenden?

Habe das bei Kassenrechnern anderer Herstellern gemacht, funktioniert gut. Hier mal meine Routine, die mit nahezu allen Anschlußmöglichkeiten klarkommt:

ich danke dir gewaltig

werd ich gleich mal ausprobieren

apropo schriftart

das mit der schriftart control hab ich auch gelesen, wo aber bekomme ich die her ?

khh 8. Okt 2011 09:23

AW: ecape-sequenz zum drucker
 
>> Weiter habe ich gesehen, dass der Kassenrechner selbst eine Schnittstelle für eine Kassenschublade hat. Warum nicht die verwenden?

du meinst die RJ11 schnittstelle

da hängt die Lade ja dran, aber wie spreche ich die direkt an ?

Sir Rufo 8. Okt 2011 09:32

AW: ecape-sequenz zum drucker
 
Eigentlich bietet der Hersteller da eine OPOS Schnittstelle an, schon mal da geschaut oder nachgefragt?

Neumann 8. Okt 2011 09:33

AW: ecape-sequenz zum drucker
 
Nachtrag: Die Procedure ist mit einer älteren Delphi-Version verendet worden. Ev. ist Anpassung an Unicode nötig.

Schrift Control stellt der Druckertreiber zur Verfügung.

Vorgehensweise (WIN XP, 7 noch nicht getestet:

Wordpad öffnen
Menue Datei - Drucken
Bondrucker auswählen
Übernehmen
Abbruch
Jetzt sollte die Schrift Control verfügbar sein, ebenso andere Druckeschriften, wie z.B. FontA11 bei Epson

Wenn mann den Befehl an den Drucker auf diese Weise schickt, "druckt" dieser ev. einen kleinen Streifen leeres Papier. Kann man meines Wissens nicht abstellen. Besser ist den Befehl t.B. im Bonkopf mitzuschicken.

Ist die Schublade am Drucker angeschlossen oder am Rechner selber?

Am Rechner: portwriteb( Port,Wert ); (zlportio) Werte für Port und Bitmaske sollte in der Doku des Rechners stehen

khh 8. Okt 2011 09:48

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von Neumann (Beitrag 1129289)
Nachtrag: Die Procedure ist mit einer älteren Delphi-Version verendet worden. Ev. ist Anpassung an Unicode nötig.

Schrift Control stellt der Druckertreiber zur Verfügung.

Vorgehensweise (WIN XP, 7 noch nicht getestet:

Wordpad öffnen
Menue Datei - Drucken
Bondrucker auswählen
Übernehmen
Abbruch
Jetzt sollte die Schrift Control verfügbar sein, ebenso andere Druckeschriften, wie z.B. FontA11 bei Epson

Wenn mann den Befehl an den Drucker auf diese Weise schickt, "druckt" dieser ev. einen kleinen Streifen leeres Papier. Kann man meines Wissens nicht abstellen. Besser ist den Befehl t.B. im Bonkopf mitzuschicken.

Ist die Schublade am Drucker angeschlossen oder am Rechner selber?

Am Rechner: portwriteb( Port,Wert ); (zlportio) Werte für Port und Bitmaske sollte in der Doku des Rechners stehen

ok das nit der schriftart probiere ich gleich mal aus, ist wohl der einfachste weg

khh 8. Okt 2011 12:49

AW: ecape-sequenz zum drucker
 
alsooo

lat EPSON Doku soll A bis E in FONT control die Lade öffnen.
Dabei unterscheiden sich die Buchstaben durch unterschiedlich lange Impulse
kleinbuchstagen sollen Lade 2 öffnen.

Ichhabe nun mal die diversen Grossbuchstaben an den Drucker geschicht.
aber ausser dem Ausdruck passiert nix

A ergibt dann XXp

aber die Lade geht nicht auf :-(

khh 8. Okt 2011 13:02

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von Sir Rufo (Beitrag 1129288)
Eigentlich bietet der Hersteller da eine OPOS Schnittstelle an, schon mal da geschaut oder nachgefragt?

die OPOS Cashdrawer Aplication öffnet die Lade,
aber wie spreche ich diese aus meiem Programm heraus an ?

Hansa 8. Okt 2011 13:19

AW: ecape-sequenz zum drucker
 
Trotz Beratungsresistenz :

Zitat:

weder auf 27 112 48 40 40 ( aus http://www.cashdrawer.com/support/faqs)

noch auf 27 112 0 100 100
Was steht in Beitrag #9 ? :evil:

Du versuchst immer noch, mit einer Luftnummer die Schublade aufzukriegen. Siehe das geschriebene zu t1/t2. Nachtrag zu m : 0 steht für "Drawer kick out Pin 2". Entsprechend steht 1 für Pin 5. Und t1/t2: "The pulse defined by t1 and t2 is output on connector pin m". Entsprechende esc-Sequenz steht auch bereits in #9.

khh 8. Okt 2011 13:30

AW: ecape-sequenz zum drucker
 
ich glaub ich steh grad auf der Leitung

:-(

jetzt doch die esc-seqenzen an dem comport,
oder den Buchstaben an den Druckertreiber ?

oder direkt an die rj11 ?

Ich blick grad gar nix mehr :-(

Hansa 8. Okt 2011 13:42

AW: ecape-sequenz zum drucker
 
Was ? Buchstabe an Druckertreiber schicken ? :shock: Hat das zwischendrin jemand vorgeschlagen ? Druckertreiber für was ? Na ja, Du kannst die ESC-Sequenz ja ignorieren. Probiere es mal mit gut zureden. :lol:

khh 8. Okt 2011 14:00

AW: ecape-sequenz zum drucker
 
Post #21 und #26

Code:
ausserdem schreibt epson
EPSON supplies a Windows driver for the current range of TM Series printers. Programmers can also
use the Generic / Text Only driver to control the Cashdrawer.
EPSON Windows Driver
EPSON has provided a ‘control’ font in the Windows driver that sends the appropriate command to
the printer when triggered by certain control characters. The control characters listed below are
provided for Cashdrawer control.

A Open Drawer 1 (50ms drive pulse width) 81H
B Open Drawer 1 (100ms drive pulse width) 82H
C Open Drawer 1 (150ms drive pulse width) 83H
D Open Drawer 1 (200ms drive pulse width) 84H
E Open Drawer 1 (250ms drive pulse width) 85H
a Open Drawer 2 (50ms drive pulse width) 89H
b Open Drawer 2 (100ms drive pulse width) 8AH
c Open Drawer 2 (150ms drive pulse width) 8BH
d Open Drawer 2 (200ms drive pulse width) 8CH
e Open Drawer 2 (200ms drive pulse width) 8DH


Programming Examples
Cashdrawer 1 Kick
Printer.FontName = “control”
Printer.FontSize = 10
Printer.Print “A”
Cashdrawer 2 Kick
Printer.FontName = “control”
Printer.FontSize = 10
Printer.Print “a”
und funktionieren tut nix

:-(

Hansa 8. Okt 2011 14:43

AW: ecape-sequenz zum drucker
 
Für den Drucker wird aber gar kein Treiber gebraucht. Zumindest nicht für Text oder Schublade öffnen. WIrd über den Treiber gedruckt, dann gilt auch das :
Zitat:

Der TM-TXX kann unter Windows sowohl die Windows-Schriftarten verwenden als auch die drucker-internen Schriftarten. Bei Verwendung der internen Schriftarten müssen nicht so viele Daten übertragen werden, wodurch der Ausdruck schneller wird.
Ich rede hier über die drucker-internen Sachen. Dafür dienen die esc-Sequenzen. Jetzt aber noch was anderes : ist der Drucker definitiv an die serielle Schnittstelle vom PC angeschlossen ? Mit welchem Kabel hängt denn die Schublade am Drucker (Westernstecker oder was) ? Wo ist das Kabel her ? Nicht dass das eine serielle Schublade ist. Wenns geht dann mach am besten Bilder von den Anschlüssen/Kabeln. Drucker- und PC Seite.

Unabhängig vom Programm : Dos-Box aufmachen und "mode" eingeben. Was steht bei COM1 ? Anschliessend folgenden Befehl eingeben : "mode LPT1:=COM1:". Drucker ist jetzt auf LPT1 umgeleitet. Mit "Print <Dateiname>" irgendwas ausdrucken. Wenns geht, dann Schublade neu testen.

Sir Rufo 8. Okt 2011 14:46

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von khh (Beitrag 1129329)
Zitat:

Zitat von Sir Rufo (Beitrag 1129288)
Eigentlich bietet der Hersteller da eine OPOS Schnittstelle an, schon mal da geschaut oder nachgefragt?

die OPOS Cashdrawer Aplication öffnet die Lade,
aber wie spreche ich diese aus meiem Programm heraus an ?

Wenn die Kassenlade nicht an dem Drucker angeschlossen ist, dann kannst du bis zum 21.12.2012* an den was schicken und die Schublade wird nicht einen Mucks von sich geben.
Der Drucker hat bestimmt schon Komplexe, weil er ständig das Signal weitergibt (ja an was, an nix) aber du immer noch nicht zufrieden bist.

Da aus dem Datenblatt nicht hervorgeht, ob der Anschluss für die Kassenlade vom eingebauten Drucker verwaltet wird oder von der Kasse selber wirst du wohl oder übel mal den Hersteller kontaktieren müssen.

So wie ich das sehe, wird das aber nicht über den Drucker realisiert, sondern über die Kassenhardware selber und dann wirst du den OPOS-Treiber ansprechen müssen. -> Hersteller fragen oder (das ist glaube ich sogar ein Standard :gruebel: ) mal im Internet suchen nach How to deal with OPOS

* an dem Tag soll ja angeblich die Welt untergehen

Zitat:

Zitat von Hansa (Beitrag 1129346)
Jetzt aber noch was anderes : ist der Drucker definitiv an die serielle Schnittstelle vom PC angeschlossen ? Mit welchem Kabel hängt denn die Schublade am Drucker (Westernstecker oder was) ? Wo ist das Kabel her ? Nicht dass das eine serielle Schublade ist. Wenns geht dann mach am besten Bilder von den Anschlüssen/Kabeln. Drucker- und PC Seite.

Der Drucker ist direkt eingebaut und die Kasse bietet einen RJ11-Anschluss für die Kassenlade ;) (siehe Beitrag #11)

Neumann 8. Okt 2011 14:58

AW: ecape-sequenz zum drucker
 
Hallo Hansa, hast recht. Glaube auch nicht wirklich, dass die Schublade am Drucker angeschlossen ist. Epson Drucker haben immer 24 V, kann man nicht ändern wie bei dem Kassenrechner.

Mich wundert das es mit OPOS geht. Übrigens verträgt sich meines Wissens OPOS nicht mit dem Windows-Druckertreiber, eines von beiden funktioniert nicht wenn beides installiert ist. Wir verwenden OPOS nicht, ev. kann ich mich da auch irren.

Habe eine PN an KH geschickt.

khh 8. Okt 2011 22:35

AW: ecape-sequenz zum drucker
 
alsooo
mit Hilfe von Neumann und OPOS sowie ZLPortIO funktioniert die Ansteuerung der RJ 11 Schnittstelle, an der die Lade hängt und diese geht auch auf.

ich sende hex 48F und 10 an die Schnittstelle.
Leider steht die Schnittstelle so unter Dauerstrom.

Hat jemand ne Idee wie dieser unterbrochen werden kann?

Danek für eure Hilfe

Gruss KHH

Neumann 9. Okt 2011 10:18

AW: ecape-sequenz zum drucker
 
Hallo,

bei der ZlPortio ist eine Testanwendung, mit der man die Pors lesen und schreiben kann. Damit kann man etwas probieren.

khh 9. Okt 2011 14:45

AW: ecape-sequenz zum drucker
 
Zitat:

Zitat von Neumann (Beitrag 1129414)
Hallo,

bei der ZlPortio ist eine Testanwendung, mit der man die Pors lesen und schreiben kann. Damit kann man etwas probieren.

ja hab ich gemacht, ich krieg nur den strom nicht abgeschaltet.

khh 22. Okt 2011 06:11

AW: ecape-sequenz zum drucker
 
für alle die es noch intressiert.
Per Einbindung einer vom Hersteller zu beziehenden DLL funktioniert das Öffnen der Lade problemlos.
Gegebenenfalls (Ladenabhängig) muss an der Kasse noch ein Jumper von 12 auf 24 V umgestellt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.
Seite 1 von 2  1 2      

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