我尝试创建一些代码来实现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的字节序列的测试工具?或者你知道正确的字节序列顺序的解决方案吗?
最佳要求 基督教
答案 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实现时很有帮助。