AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ZVT-Protokoll & APRO Comport

Offene Frage von "z3bu"
Ein Thema von masterchris_99 · begonnen am 24. Sep 2009 · letzter Beitrag vom 29. Feb 2012
Antwort Antwort
masterchris_99

Registriert seit: 1. Dez 2004
48 Beiträge
 
#1

ZVT-Protokoll & APRO Comport

  Alt 24. Sep 2009, 11:09
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:
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]
Mit diesem Konstrukt probiere ich mich am EC-Terminal anzumelden:

Delphi-Quellcode:
  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;
Sogar wenn der übergebene String falsch ist müsste doch wenigstens das Terminal antworten, oder?

mfg Chris
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

Re: ZVT-Protokoll & APRO Comport

  Alt 24. Sep 2009, 12:50
Also wenn die Variable strBefehl vom Typ string ist, dann ist nach
strBefehl := Chr(16) + Chr(2) + Chr(6) + Chr(0) + Chr(4) + Chr(40) + Chr(0) + Chr(16) + Chr(3) + Chr(28) + Chr(162); der Inhalt von strBefehl = #16#2#6
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
masterchris_99

Registriert seit: 1. Dez 2004
48 Beiträge
 
#3

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 09:12
Also wenn ich den Port öffne bekomme ich vom Terminal auch ein 00 zurück. Dieses sagt mir das alles okay ist.

mfg Chris
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 09:27
Guten Morgen,

Delphi-Quellcode:
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;
.. und wie empfängst Du Daten , geht das überhaupt
wenn der Port geschlossen ist?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
masterchris_99

Registriert seit: 1. Dez 2004
48 Beiträge
 
#5

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 09:35
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: http://www.vb-magazin.de/forums/foru...129.aspx#20129

Müsste das Terminal so ansprechbar sein:

Code:
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
Aber bei mir kommt keine Antwort...

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;
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 09:54
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
Klaus
  Mit Zitat antworten Zitat
masterchris_99

Registriert seit: 1. Dez 2004
48 Beiträge
 
#7

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 10:01
Hallo,

hier ein offizielles Log für die Anmeldung am Terminal:
Code:
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  ---- .
und hier mein Log:

Code:
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..$Ã
Wenn ich die beiden jetzt vergleiche sehe ich keinen Untershcied:

Code:
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
und sogar wenn er falsch ist müsste ich doch ein NAK bekommen?!?

Hier noch das Log von APRO:

Code:
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]
mfg Chris
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 10:28
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
Klaus
  Mit Zitat antworten Zitat
masterchris_99

Registriert seit: 1. Dez 2004
48 Beiträge
 
#9

Re: ZVT-Protokoll & APRO Comport

  Alt 25. Sep 2009, 10:35
Zitat von Klaus01:
Stimmen denn die Einstellungen des Comports.
Ist die APRO richtig eingestellt (Baudrate, DataBits, StopBits, Handshake(none, Software, Hardware))?
Also ich habe eingestellt
Baud = 9600
DataBits = 8
StopBits = 2
Handshake = None

So ist es mir vorgegeben

Zitat von Klaus01:
Auf dem Kassensystem kannst Du nicht schauen was da so ankommt?
Mit Kassensystem meinst du das EC-Terminal? Da passiert gar nichts und einen Monitor oder so gibt es leider nicht. Ich denke aber das die Verbindung an sich steht denn sobald ich ja den Port öffne bekomme ich über den Port als Antwort 00

Edit: Der Hersteller meint dass das Gerät richtig eingestellt ist. Also müsste der Fehler ja bei mir liegen?!?

mfg Chris
  Mit Zitat antworten Zitat
z3bu

Registriert seit: 29. Feb 2012
1 Beiträge
 
#10

ZVT-Protokoll & APRO Comport

  Alt 29. Feb 2012, 14:34
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:
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;
Würde mich über hilfreiche Antworten sehr freuen
  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 23:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz