AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Smartcard auslesen, Kommandos senden
Thema durchsuchen
Ansicht
Themen-Optionen

Smartcard auslesen, Kommandos senden

Ein Thema von newuser01 · begonnen am 8. Nov 2011 · letzter Beitrag vom 9. Nov 2011
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#51

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 19:08
Dann bau sie aus ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#52

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 19:50
Dann bau sie aus ...
kleiner Tipp?

Und zwei mal hinternander erst atr und dann serial übergeben geht nicht in ComPortRxChar. Wie kann ich das realisieren? Kann ich nicht ComPort.ReadStr im Button verwenden und erst das eine zb. ATR dann das andere zb. Serial ausgeben? usw.

Delphi-Quellcode:

ComPort.ReadStr(s,Count);
FInBuffer := FInBuffer + s; // globale variable
e_atr.Text := Hexit(FInBuffer);

ComPort.ReadStr(s,Count);
FInBuffer := FInBuffer + s; // globale variable
e_serial.Text := Hexit(FInBuffer);
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#53

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 19:56
Zitat:
kleiner Tipp?
hier einfach + '$' und gegf. +' ' rausnehmen?
Delphi-Quellcode:
Function Hexit(const s:AnsiString):String;
var
 i:Integer;
begin
 Result := '';
 for I := 1 to Length(s) do Result := Result +'$' +IntToHex(Byte(s[i]),2) +' ';
end;
in #21 hatte ich geschrieben

Zitat:
InterpretInbuffer; // Eine Prozedur die den Puffer auswertet, komplette Nachrichten extrahiert, aus dem Puffer entfernt und verarbeitet
so würde ich es machen ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#54

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 20:18
Zitat:
kleiner Tipp?
hier einfach + '$' und gegf. +' ' rausnehmen?
Delphi-Quellcode:
Function Hexit(const s:AnsiString):String;
var
 i:Integer;
begin
 Result := '';
 for I := 1 to Length(s) do Result := Result +'$' +IntToHex(Byte(s[i]),2) +' ';
end;
in #21 hatte ich geschrieben

Zitat:
InterpretInbuffer; // Eine Prozedur die den Puffer auswertet, komplette Nachrichten extrahiert, aus dem Puffer entfernt und verarbeitet
so würde ich es machen ...
das mit den '$' hat schon mal geklappt

InterpretInbuffer meinst du so?

Delphi-Quellcode:
procedure Tfrm_main.InterpretInbuffer;
var
     i:Integer;
     part:AnsiString;
begin
     i := Pos(#10,FInBuffer);
     Memo1.Lines.Add(FInBuffer);
     while i>0 do
        begin
           Part := Copy(FInBuffer,1,i-1);
           FInBuffer := Copy(FInBuffer,i+1,Length(FInBuffer));
           Memo2.Lines.Add(Part);
           i := Pos(#10,FInBuffer);
        end;
end;
und dann so

Delphi-Quellcode:
procedure Tfrm_main.ComPortRxChar(Sender: TObject; Count: Integer);
var
s:AnsiString;
begin

ComPort.ReadStr(s,Count);
FInBuffer := FInBuffer + s; // globale variable
InterPretInbuffer;

end;
Wird aber dann in im Memo1 blos das:

Delphi-Quellcode:
;Ÿ!IRDETO ACS
;Ÿ!IRDETO ACS„Uÿ€m
angezeigt. Kannst du das ein bischen erklären mit den InterPretInbuffer ?


Nachtrag: Hexausgabe hab ich berichtigt, wenns so korrekt ist
Delphi-Quellcode:
procedure Tfrm_main.InterpretInbuffer;
var
     i:Integer;
     part:AnsiString;
begin
     i := Pos(#10,Hexit(FInBuffer));
     Memo1.Lines.Add(Hexit(FInBuffer));
     while i>0 do
        begin
           Part := Copy(Hexit(FInBuffer),1,i-1);
           FInBuffer := Copy(Hexit(FInBuffer),i+1,Length(Hexit(FInBuffer)));
           Memo1.Lines.Add(Part);
           i := Pos(#10,Hexit(FInBuffer));
        end;
end;
Gruß: Holger

[Hobby-Programmierer]

Geändert von newuser01 ( 9. Nov 2011 um 20:31 Uhr)
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#55

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 20:49
jetzt wird im Memo1 der ATR so ausgegeben

3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53
3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 03 84 55 FF 80 6D

Ich bekomm noch graue Haare. Und wenn ich noch ein ComPort.WriteStr nach dem Kartenreset hinzugüge dann würfelt der mir alles durcheinander
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#56

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 21:15
ich hab jetzt mal ein ein sleep benutzt

Delphi-Quellcode:
//Kartenreset
ComPort.FlowControl.ControlRTS := rtsEnable;
ComPort.FlowControl.ControlRTS := rtsDisable;
ComPort.FlowControl.ControlDTR := dtrEnable;
ComPort.FlowControl.ControlDTR := dtrDisable;

sleep(500);
jetzt wird der ATR in Memo1 in der ersten zeile Memo.Lines.strings[0]angezeigt. Das Sleep bewirkt bestimmt sowas wie ein Delay damit die Karte genug Zeit hat zum antworten denn ComPortRxCharist ja nehme ich zumindest mal an, ständigg auf die Lauer ob was rein kommt. Und wenns zu schnell kommt, kommen die nächsten Daten zack in die nächste zeile oder? liege ich da falsch?
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
totti14

Registriert seit: 26. Mai 2005
Ort: Bremen
90 Beiträge
 
Delphi 10.3 Rio
 
#57

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 21:25
Hi newuser01,
was hast Du vor

Soll das so aussehen wir bei mir
Miniaturansicht angehängter Grafiken
reader.jpg  
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#58

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 21:28
Hi newuser01,
was hast Du vor

Soll das so aussehen wir bei mir

ja genau, du weist schon was ich will auslesen und CMDs senden
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#59

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 21:29
Bei ComPort.WriteStr sieht egal ob ich sleep eintrage oder nicht die Ausgabe immer so auch in Memo1 = 4 Zeilen

Delphi-Quellcode:
procedure Tfrm_main.btn_readcardClick(Sender: TObject);
begin

ComPort.Port := 'COM2';
ComPort.BaudRate := br9600;
ComPort.DataBits := dbEight;
ComPort.Parity.Bits := prEven;
ComPort.StopBits := sbOneStopBit;

sleep(500);

ComPort.WriteStr(#$01#$02#$00#$00#$00#$00#$3C);
Memo1 Ausgabe

01 02 00 00 00 00 3C
01 02 00 00 00 00 3C 01 02 00 00 00 00 00 14 30 32 36 37 32 32
01 02 00 00 00 00 3C 01 02 00 00 00 00 00 14 30 32 36 37 32 32 32 34 31 35 00 00 00 00 00 00 00 00 00 00
01 02 00 00 00 00 3C 01 02 00 00 00 00 00 14 30 32 36 37 32 32 32 34 31 35 00 00 00 00 00 00 00 00 00 00 29
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#60

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 21:32
welche Komponente benutzt du @totti ?
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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 02:42 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