![]() |
AW: Smartcard auslesen, Kommandos senden
Dann bau sie aus ...
|
AW: Smartcard auslesen, Kommandos senden
Zitat:
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); |
AW: Smartcard auslesen, Kommandos senden
Zitat:
Delphi-Quellcode:
in #21 hatte ich geschrieben
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; Zitat:
|
AW: Smartcard auslesen, Kommandos senden
Zitat:
InterpretInbuffer meinst du so?
Delphi-Quellcode:
und dann so
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;
Delphi-Quellcode:
Wird aber dann in im Memo1 blos das:
procedure Tfrm_main.ComPortRxChar(Sender: TObject; Count: Integer);
var s:AnsiString; begin ComPort.ReadStr(s,Count); FInBuffer := FInBuffer + s; // globale variable InterPretInbuffer; end;
Delphi-Quellcode:
angezeigt. Kannst du das ein bischen erklären mit den InterPretInbuffer ?
;Ÿ!IRDETO ACS
;Ÿ!IRDETO ACS„Uÿ€m 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; |
AW: Smartcard auslesen, Kommandos senden
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 :( |
AW: Smartcard auslesen, Kommandos senden
ich hab jetzt mal ein ein sleep benutzt
Delphi-Quellcode:
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?
//Kartenreset
ComPort.FlowControl.ControlRTS := rtsEnable; ComPort.FlowControl.ControlRTS := rtsDisable; ComPort.FlowControl.ControlDTR := dtrEnable; ComPort.FlowControl.ControlDTR := dtrDisable; sleep(500); |
AW: Smartcard auslesen, Kommandos senden
Liste der Anhänge anzeigen (Anzahl: 1)
Hi newuser01,
was hast Du vor :? Soll das so aussehen wir bei mir :) |
AW: Smartcard auslesen, Kommandos senden
Zitat:
ja genau, du weist schon was ich will :-D auslesen und CMDs senden |
AW: Smartcard auslesen, Kommandos senden
Bei ComPort.WriteStr sieht egal ob ich sleep eintrage oder nicht die Ausgabe immer so auch in Memo1 = 4 Zeilen
Delphi-Quellcode:
Memo1 Ausgabe
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); 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 |
AW: Smartcard auslesen, Kommandos senden
welche Komponente benutzt du @totti ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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