Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Serielle Kassenschublade ansteuern: Was bedeutet z.B "ESC p" (https://www.delphipraxis.net/59202-serielle-kassenschublade-ansteuern-bedeutet-z-b-esc-p.html)

franktron 22. Dez 2005 09:34

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Also der USB > RS232 Konverter könnte schuld sein hatte damit auch schon probleme.

Such doch mal einen PC der einen Com hat und versuchs da mal

King555 22. Dez 2005 10:47

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
So, ich habe es nun an einem PC mit "richtiger" COM-Schnittstelle getestet. Das Visual Basic Beispiel funktioniert, die Kasse geht offen. Aber mein Delphi Programm funktioniert immer noch nicht.

Mein aktueller Code:

Delphi-Quellcode:
  function KasseOeffnen: Boolean;
  begin
    Result := False;
    try
      if SerialOpen(FSerialConn) = SER_OK then
      try
        Result := (SerialXmit(FSerialConn, #27) = SER_OK);
        Result := Result and (SerialXmit(FSerialConn, #112) = SER_OK);
        Result := Result and (SerialXmit(FSerialConn, #48) = SER_OK);
        Result := Result and (SerialXmit(FSerialConn, #150) = SER_OK);
        Result := Result and (SerialXmit(FSerialConn, #150) = SER_OK);
      finally
        SerialStop(FSerialConn);
      end; {IF/TRY}
    except
      Result := False;
    end; {TRY}
  end;
Bei dem VB Beispiel habe ich die ganzen Verbindungsparameter eingestellt (z.B. Parität, etc.). Das habe ich in Delphi mal gemacht und mal nicht, beides ging nicht. Vielleicht liegt es daran, dass ich bei dem Delphi-Code die Flußsteuerung nicht wählen kann (XON/XOFF in meinem Fall).

Hansa 22. Dez 2005 11:00

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Was ist denn das SerialXMit überhaupt ? Lade mal AsyncPro und da die Komponente ComPort. Stelle alles richtig ein und sende den ganzen string also chr (27)+ ... an die serielle. Das muß gehen !

King555 22. Dez 2005 12:12

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Mit AsyncPro geht es! :-D

Jetzt muss ich zwar eine 1,7 MB große DPL Datei mitgeben, aber immerhin funktioniert es nun.

Allerdings würde ich noch eins gerne wissen: Ist es möglich, dass AsyncPro, bzw. die COM-Komponente, die Anschlusseinstellungen des Ports selber ausliest? Also das, was ich in der Systemsteuerung gewählt habe (z.B. Parität, Datenbits, etc.)?

Hansa 22. Dez 2005 12:25

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Na also ! Ging aber fast zu schnell. Man muß eben anscheinend immer nur deutlich werden. :mrgreen: Das mit der DPL weiß ich nicht. Was soll das sein ? Normalerweise wird alles in die EXE eingelinkt. Kann gut sein, daß die Standardeinstellungen als Default Werte geneommen werden. Das würde auch Sinn machen. AsyncPro wäre das ohne weiteres zuzutrauen.

King555 22. Dez 2005 13:17

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
DPL deswegen, weil bei der Software nur Runtime-Packages benutzt werden dürfen, es darf nichts in das Programm reinkompileirt werden. Das liegt daran, weil es sich um viele einzelne Module (genauer gesagt DLL Dateien) handelt.

Danke an alle für eure Mühe!

King555 10. Jan 2006 07:32

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Ich habe nochmal eine Frage zu dem Thema:

Auf meinem PC funktionierte das Öffnen der Kasse, auf einem anderen Rechner, wo es eigentlich laufen soll, geht es nicht. ASyncPro gibt eine Exception aus. Leider sagt die Exception-Meldung garnichts aus ("AsyncPro Exception"). Woran könnte das liegen? Der Com-Port ist richtig eingestellt und die serielle Schnittstelle ist genau so konfiguriert, wie auf meinem PC.

marabu 10. Jan 2006 17:17

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Wenn du schreibst, welche Code-Zeile die Exception verursacht, dann habe ich eine reelle Chance ...

Grüße vom marabu

King555 17. Jan 2006 11:19

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Hier mein aktueller Code:

Delphi-Quellcode:
  function KasseOeffnen: Boolean;
  const
    strOpen = #27#112#48#150#150;
  begin
    try
      Application.ProcessMessages;
      if ComPort.ComNumber <> FKasseComPort then
      begin
        ComPort.ComNumber := FKasseComPort;
        Application.ProcessMessages;
      end; {IF}
      ComPort.InitPort;
      Application.ProcessMessages;
      try
        ComPort.PutString(strOpen);
        Application.ProcessMessages;
      finally
        ComPort.DonePort;
        Application.ProcessMessages;
      end; {TRY}
      Result := True;
    except
      Result := False;
    end; {TRY}
  end;
Bei "ComPort.InitPort;" springt er nach "Result := False;" im except-Block. Die Fehlermeldung (die natürlich in der jetzigen Konstruktion nicht sichtbar ist), lautet: "Apro exception" (mehr nicht).

King555 23. Jan 2006 07:33

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Jetzt weiß ich vielleicht, warum der Fehler kommt: Sobald der Druckertreiber für den Kassendrucker installiert ist, kann keine Anwendung mehr auf den entsprechenden COM-Port zugreifen. Auf meinem PC funktioniert es allerdings, nur nicht auf dem eigentlichen Zielrechner. Wenn ich den COM-Port im Druckertreiber auf einen anderen (ungültigen) stelle, dann geht es wieder. Der Hersteller des Druckertreibers konnte mir auch keine Antwort geben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.
Seite 3 von 4     123 4      

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