![]() |
ZVT-Protokoll & APRO Comport
Hallo,
ich bin gerade dabei mich ein wenig mit dem ZVT Protokoll und Delphi auseinander zu setzen nur leider bekomme ich es nicht ganz hin. Ich kann mir ja das Log von APRO angucken ober da steht nur das ich was gesendet habe also gehe ich mal davon aus dass das EC-Terminal nicht geantwortet hat, oder?
Code:
Mit diesem Konstrukt probiere ich mich am EC-Terminal anzumelden:
APRO v4.06
Compiler : Delphi 7 Operating System : Windows XP 5.1 Service Pack 2 Device: COM1 Date/time: 24.09.09, 11:04:01 Time Type SubType Data OtherData -------- -------- ------------ -------- --------- 0000.002 TrDatChg Avail 00000001 0000.003 TrgHdAlc Window 000E03A4 0000.003 Dispatch WriteCom 0000000B [10][02][06][00][04]([00][10][03] [1C][A2]
Delphi-Quellcode:
Sogar wenn der übergebene String falsch ist müsste doch wenigstens das Terminal antworten, oder?
strBefehl := Chr(16) + Chr(2) + Chr(6) + Chr(0) + Chr(4) + Chr(40) + Chr(0) + Chr(16) + Chr(3) + Chr(28) + Chr(162);
try com_ec.ComNumber := 1; com_ec.InitPort; try com_ec.PutString(strBefehl); finally com_ec.DonePort; end; Result := True; except Result := False; Raise Exception.Create ('HP-(1) ' + Exception(ExceptObject).Message); end; mfg Chris |
Re: ZVT-Protokoll & APRO Comport
Also wenn die Variable strBefehl vom Typ string ist, dann ist nach
Delphi-Quellcode:
der Inhalt von strBefehl = #16#2#6
strBefehl := Chr(16) + Chr(2) + Chr(6) + Chr(0) + Chr(4) + Chr(40) + Chr(0) + Chr(16) + Chr(3) + Chr(28) + Chr(162);
und der Rest ist weg, da die strings Nullterminiert sind. Also wird nicht alles an das Terminal übermittelt. cu Oliver edit: hmmm, seltsam, dass da doch anscheinend die #0 übermittelt werden, hätte ich jetzt nicht gedacht |
Re: ZVT-Protokoll & APRO Comport
Also wenn ich den Port öffne bekomme ich vom Terminal auch ein 00 zurück. Dieses sagt mir das alles okay ist.
mfg Chris |
Re: ZVT-Protokoll & APRO Comport
Guten Morgen,
Delphi-Quellcode:
.. und wie empfängst Du Daten , geht das überhaupt
try
com_ec.ComNumber := 1; com_ec.InitPort; // Port öffnen try com_ec.PutString(strBefehl); // etwas senden finally com_ec.DonePort; // Port schließen end; Result := True; wenn der Port geschlossen ist? Grüße Klaus |
Re: ZVT-Protokoll & APRO Comport
Hi,
ja das hatte ich gestern schon geändert. Der Port wird erst geschlossen wenn das Prog beendet wird. Und Daten lese ich mit einem Extra Tool was den Port überwacht und mir alles ausgibt. Laut der Antwort: ![]() Müsste das Terminal so ansprechbar sein:
Code:
Aber bei mir kommt keine Antwort...
Kasse ® ZVT 10 02 06 00 04 28 00 11 38 10 03 1C A2 das unterstrichen ist der Befehl von Oben
ZVT ® Kasse 06 ZVT ® Kasse 10 02 80 00 00 10 03 F5 1F Kasse ® ZVT 06 ZVT ® Kasse 10 02 06 0F 00 10 03 C6 33 Kasse ® ZVT 06 Kasse ® ZVT 10 02 80 00 00 10 03 F5 1F ZVT ® Kasse 06 Der Quellcode sieht jetzt so aus:
Delphi-Quellcode:
var daten, strBefehl: String;
begin daten := Chr(6) + Chr(0) + Chr(4) + Chr(0) + Chr(0) + Chr(0) + Chr(56); strBefehl := Chr(16) + Chr(2) + daten + Chr(16) + Chr(3) + Chr(28) + Chr(162); //strBefehl := Chr(16) + Chr(2) + Chr(6) + Chr(1) + Chr(10) + Chr(4) + Chr(0) + Chr(0) + Chr(0) + //Chr(0) + Chr(21) + Chr(0) + Chr(73) + Chr(9) + Chr(120) + Chr(16) + Chr(3) + Chr(160) + Chr(116); try com_ec.PutString(strBefehl); Application.ProcessMessages; except //com_ec.DonePort; Application.ProcessMessages; end; end; |
Re: ZVT-Protokoll & APRO Comport
Hex: 10 02 06 00 04 28 00 11 38 10 03 1C A2
Dez 16 02 06 00 04 40 00 17 56 16 03 28 162 du schickst aber: Dez 16 02 06 00 04 40 00 16 56 16 03 28 162 Grüße Klaus |
Re: ZVT-Protokoll & APRO Comport
Hallo,
hier ein offizielles Log für die Anmeldung am Terminal:
Code:
und hier mein Log:
Anmeldung:
Send: 10 02 06 00 06 12 34 56 BA 09 78 10 03 24 C3 ---- ......4V..x..$. Recv: 06 ---- . Recv: 10 02 80 00 00 10 03 F5 ---- ........ Recv: 1F ---- . Send: 06 ---- .
Code:
Wenn ich die beiden jetzt vergleiche sehe ich keinen Untershcied:
Port geöffnet durch Vorgang "Project1.exe" (PID: 3440)
Answer: 25.09.2009 10:04:42.38864 (+308.5000 seconds) 00 . Request: 25.09.2009 10:04:43.18564 (+0.7969 seconds) 10 02 06 00 06 12 34 56 BA 09 78 10 03 24 C3 ......4Vº.x..$Ã
Code:
und sogar wenn er falsch ist müsste ich doch ein NAK bekommen?!?
10 02 06 00 06 12 34 56 BA 09 78 10 03 24 C3 <-- orig
10 02 06 00 06 12 34 56 BA 09 78 10 03 24 C3 <-- meiner Hier noch das Log von APRO:
Code:
mfg Chris
APRO v4.06
Compiler : Delphi 7 Operating System : Windows XP 5.1 Service Pack 2 Device: COM1 Date/time: 25.09.09, 10:06:43 Time Type SubType Data OtherData -------- -------- ------------ -------- --------- 0000.004 TrDatChg Avail 00000001 0000.004 TrgHdAlc Window 0001059E 0000.006 Dispatch ReadCom 00000001 [00] 0000.006 Trigger Avail 00000001 0000.774 Dispatch WriteCom 0000000F [10][02][06][00][06][12]4V[BA] [09]x[10][03]$[C3] |
Re: ZVT-Protokoll & APRO Comport
So langsam wird es schwierig..
Stimmen denn die Einstellungen des Comports. Ist die APRO richtig eingestellt (Baudrate, DataBits, StopBits, Handshake(none, Software, Hardware))? Auf dem Kassensystem kannst Du nicht schauen was da so ankommt? Grüße Klaus |
Re: ZVT-Protokoll & APRO Comport
Zitat:
Baud = 9600 DataBits = 8 StopBits = 2 Handshake = None So ist es mir vorgegeben Zitat:
Edit: Der Hersteller meint dass das Gerät richtig eingestellt ist. Also müsste der Fehler ja bei mir liegen?!? mfg Chris |
ZVT-Protokoll & APRO Comport
Hallo,
ich habe ein ähnliches Problem mit der Ansteuerung über ZVT. Habe ein EC-Cash-Gerät ("Artema Hybrid") über die Ethernetschnittstelle in mein lokales Netzwerk eingebunden - bekomme auch ohne Probleme einen Ping, sowie eine TelNet-Verbindung realisiert. Mit dem Tool "T-Manager", ein Programm mit dem man ein solches EC-Cash-Gerät ansteuern kann, funktioniert z.B. das Initiieren eines Zahlungsvorgangs oder die einfache Anmeldung an das Gerät. Seitens der Konfiguration und Funktionsfähigkeit der Hardware bestehen somit keine Probleme. Nun möchte ich den hier ebenfalls erwähnten Befehl - "Chr(6) + Chr(0) + Chr(4) + Chr(0) + Chr(0) + Chr(0) + Chr(56)" - für die Anmeldung an das Gerät absetzen. Allerdings läuft die Anwendung auf einen Socket Error. Was mache ich falsch?
Code:
Würde mich über hilfreiche Antworten sehr freuen
procedure BefehlSenden;
var lSBefehl : String; begin lSBefehl := ''; IdTCPClient1.Host := 'xxx.xxx.xxx.xxx'; // IP des EC-Cash-Gerätes IdTCPClient1.Port := 22000; IdTCPClient1.Connect; // funktioniert if IdTCPClient1.Connected then ShowMessage('Verbunden!'); lSBefehl := Chr(6) + Chr(0) + Chr(4) + Chr(0) + Chr(0) + Chr(0) + Chr(56); lSBefehl := Chr(16) + Chr(2) + lSBefehl + Chr(16) + Chr(3) + Chr(28) + Chr(162); IdTCPClient1.SendCmd(lSBefehl); // nach Ausführung dieser Zeile kommt es zu dem Socket Error end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 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