AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Cardreader auslesen mit CT-API

Cardreader auslesen mit CT-API

Ein Thema von Guido R. · begonnen am 10. Jun 2011 · letzter Beitrag vom 16. Apr 2012
Antwort Antwort
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#1

AW: Cardreader auslesen mit CT-API

  Alt 11. Jun 2011, 13:38
An der Firmware kann es (noch) nicht liegen. - Die Zusendung einer eGK durch die Gematik steht noch aus. Daher teste ich derzeit nur an der KVK. Deren Spezifikation sollte inzwischen wohl jedes eHealth-Terminal unterstützen.

Hab zwischendurch auch SAD und DAD als pByte definiert. Gleiches Problem

Gruß
Guido R.
  Mit Zitat antworten Zitat
Klaus01

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

AW: Cardreader auslesen mit CT-API

  Alt 11. Jun 2011, 13:45
Code:
typedef
         char (*CT_DATA) (USHORT, UCHAR*, UCHAR*, USHORT, UCHAR*, USHORT*, CHAR*);
Wenn der Funktionskopf richtig sein sollte (habe leider noch keine offizielles PDF o.ä. mit den Headern gefunden), dann ist die Längenangabe zur Responsezeichenkette auch ein Pointer.
Die Längenangabe zur Befehlszeichenkette jedoch nicht.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#3

AW: Cardreader auslesen mit CT-API

  Alt 12. Jun 2011, 23:07
Gem. Richtlinien der Teletrust ist der Aufbau der CT_Data wie folgt :

CTN IU16
DAD IU8
SAD IU8
LENC IU16
COMMAND Referenzadresse eines Feldes mit Elementen vom Typ IU8
LENR IU16
RESPONSE Referenzadresse eines Feldes mit Elementen vom Typ IU8

RESULT IS8

(IS8=Integer Signed 8Bit, IU8=Integer Unsigned 8Bit, IU16=Integer Unsigned 16Bit)

Quelle : http://www.teletrust.de/uploads/media/MKT1-0_T3.pdf
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#4

AW: Cardreader auslesen mit CT-API

  Alt 15. Jun 2011, 10:29
GESCHAFFT !

Kurz gesagt : Die Definition der CT-API nach Teletrust ist falsch (oder zumindest sehr unklar definiert).
LENR (s. vorherigen Beitrag) MUSS ein Pointer auf eine Word-Variable sein, da CT_Data in diesen Wert die eigentliche Länge der Antwort schreibt.

Somit ist eine funktionierende Definition für CT_Data wie folgt:

function(Ctn:Word; Dad:PByte; SAD:PByte; Lc:Word; Cmd:Pointer; Lr:Pointer; Rsp:Pointer):ShortInt;StdCall;

Gruß
Guido R.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: Cardreader auslesen mit CT-API

  Alt 16. Apr 2012, 21:39
GESCHAFFT !

Kurz gesagt : Die Definition der CT-API nach Teletrust ist falsch (oder zumindest sehr unklar definiert).
Warum? Klaus hatte doch den Prototypen geliefert:

Ich korrigiere mal den Lapsus mit der Aufrufkonvention:
Code:
char (*__stdcall CT_DATA) (USHORT, UCHAR*, UCHAR*, USHORT, UCHAR*, USHORT*, CHAR*);
Jetzt deine Version:

function(Ctn:Word; Dad:PByte; SAD:PByte; Lc:Word; Cmd:Pointer; Lr:Pointer; Rsp:Pointer):ShortInt;StdCall;
... und jetzt meine etwas mehr delphianisierte Version:

TFNCData = function(ctn: Word; var dad: Byte; var sad: Byte; lenc: Word; command: ^Byte; var lenr: Word; response: ^Byte): Byte; stdcall; Bei "dad" und "sad" scheint es sich ja nur um einen einzelnen 8bit-Wert zu handeln, während mit "response" und "command" jeweils ein Delphi-Referenz durchsuchenarray gemeint ist. Ich nehme mal an jemand der hier in den letzten Jahren Delphi benutzt hat kann das noch verfeinern (bspw. einen passenderen Typen als ^Byte).

Man merkt gleich daß das aus deutschen Landen kommt ... ... man könnte ja mindestens mal die C-Prototypen in den PDFs angeben oder am besten gleich einen normalen Header. Grausam sowas ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:25 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