使用ZVT与delphi和ingenico IPP480

时间:2017-08-02 19:25:38

标签: windows delphi datacash

我尝试创建一些代码来实现delphi中的zvt-protocol。为了连接到终端,我使用ether TIDTCPClient或turbopack的comport-component。两者都可以连接到ingenico终端IPP480。它显示文本行“a32de”2秒。我不知道为什么!

我可以发送zvt-documentation中描述的几个命令行,但终端没有显示或执行任何操作。

procedure TForm1.Button1Click(Sender: TObject);
var
  lSBefehl : String;
begin
  lSBefehl := '';

  IdTCPClient1.Host := eip.IPAddress; // IP des EC-Cash-Gerätes
  IdTCPClient1.Port := eport.IntValue;


  if not IdTCPClient1.Connected then begin
      IdTCPClient1.Connect; //that is working!
  end;
  if not IdTCPClient1.Connected then begin
      ShowMessage('not connected!');
  end;

  lSBefehl := Chr(6)+Chr(0)+Chr(6)+Chr(209)+Chr(255); //Nothing!

  IdTCPClient1.SendCmd(lSBefehl);
end;

是否存在针对zvt的字节序列的测试工具?或者你知道正确的字节序列顺序的解决方案吗?

最佳要求 基督教

2 个答案:

答案 0 :(得分:1)

您可以尝试使用idTcpClient.IOHandler.WriteDirect或idTcpClient.IOHandler.Write程序。

procedure TForm1.Button1Click(Sender: TObject); var wBuf : TIdBytes; begin ... SetLength(wBuf, 5); wBuf[1] := $06; wBuf[2] := $00; wBuf[3] := $06; wBuf[4] := $D1; wBuf[5] := $FF; ... if (IdTCPClient.Connected) then begin try idTcpClient.IOHandler.WriteDirect(wBuf); except on e: exception do begin showmessage('Error :'+ e.message) end; end; end; ... end;

答案 1 :(得分:0)

官方ZVT文档有一组跟踪文件,其中包含发送到终端的字节和从终端接收的字节。我发现这些在开发我们自己的ZVT实现时很有帮助。