Использование ZVT с delphi и ingenico IPP480

Я пытаюсь создать некоторый код для реализации zvt-протокола в Delphi. Для подключения к терминалу я использую эфир TIDTCPClient или comport-компонент от turbopack. Оба могут подключаться к ingenico терминалу IPP480. Он показывает текстовую строку "a32de" в течение 2 секунд. Я не знаю почему!

Я могу послать несколько командных строк, описанных в zvt-документации, но терминал ничего не показывал и не делал.

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? Или вы знаете решение для правильного порядка последовательностей байтов?

С наилучшими пожеланиями христианин

3 ответа

Решение

Вы можете попробовать использовать процедуры 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;

Официальная документация ZVT имеет набор файлов трассировки, которые содержат байты, отправленные на терминал, и байты, полученные от терминала. Я нашел, что они полезны при разработке нашей собственной реализации ZVT.

Ответ, вероятно, запоздал, но мы столкнулись с той же проблемой, что в ZVTобласть. Тем временем мы опубликовали тестовое программное обеспечение на GitHub, с помощью которого можно протестировать наиболее важные функции. В модульных тестах также есть несколько примеров последовательностей байтов. Вы можете найти наш проект здесь https://github.com/Portalum/Portalum.Zvt

Другие вопросы по тегам