Delphi-PRAXiS
Seite 5 von 7   « Erste     345 67      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Smartcard auslesen, Kommandos senden (https://www.delphipraxis.net/164316-smartcard-auslesen-kommandos-senden.html)

Micha88 9. Nov 2011 14:41

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Das müssen sie bei der Vorgehensweise sein. Nur wenn man später mal was ändert (umsortiert z.B.), dann kann schnell übersehen werden, dass die Funktion entsprechend anzupassen ist. Daher mein Einwand.
Ach so, ok.

Ich regel so etwas normalerweise immer mit Arrays. Ich habe mehrere Arrays, welche ineinander greifen. Ändere ich mein erstes Array (String-Array, Inhalt von einer ComboBox z.B.), so ändert sich durch Bedingungen im Code alles bei den anderen Arrays mit.

Mies erklärt, ich weiß, aber anders kann ich es nicht erklären.

DeddyH 9. Nov 2011 14:43

AW: Smartcard auslesen, Kommandos senden
 
Vielleicht sollten wir dafür einen eigenen Thread eröffnen, das hat ja mit dem eigentlichen Problem höchstens am Rande zu tun.

Bummi 9. Nov 2011 14:57

AW: Smartcard auslesen, Kommandos senden
 
Was passiert wenn Du
auf einem
Button
Delphi-Quellcode:
ComPort.WriteStr(#$99);
hast

auf einem anderen
Delphi-Quellcode:
ComPort.WriteStr(#$01#$02#$00#$00#$00#$00#$3C);
FInBuffer als Klassen oder auch mal als globale Variable

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;


procedure TwasAuchImmer.Comport1RxChar(Sender: TObject; Count: Integer);
var
  s:AnsiString;
begin
    BaseSerial1.ReadStr(s,Count);
    FInBuffer := FInBuffer + s;
    Memo1.Text := Hexit(FInBuffer );
end;

newuser01 9. Nov 2011 15:17

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Zitat von Bummi (Beitrag 1135310)
Was passiert wenn Du
auf einem
Button
Delphi-Quellcode:
ComPort.WriteStr(#$99);
hast

auf einem anderen
Delphi-Quellcode:
ComPort.WriteStr(#$01#$02#$00#$00#$00#$00#$3C);
FInBuffer als Klassen oder auch mal als globale Variable

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;


procedure TwasAuchImmer.Comport1RxChar(Sender: TObject; Count: Integer);
var
  s:AnsiString;
begin
    BaseSerial1.ReadStr(s,Count);
    FInBuffer := FInBuffer + s;
    Memo1.Text := Hexit(FInBuffer );
end;

FInBuffer: AnsiString; //so als globale variable ?

Wenn ja dann steht bei

Delphi-Quellcode:
ComPort.WriteStr(#$99);
das "$99" im Memo1.Text

und bei

Delphi-Quellcode:
ComPort.WriteStr(#$01#$02#$00#$00#$00#$00#$3C);
das "$01 $02 $00 $00 $00 $00 $3C "

newuser01 9. Nov 2011 15:21

AW: Smartcard auslesen, Kommandos senden
 
Bevor wir hier weiter machen, hab ich mal die andere Komponente ASYNC PRO (API) mir angeschaut, da gibt es Sachen wie


ApdComPort1 kann man über die Eigenschaften verbinden mit ApdTapiDevice1

ApdTapiStatus1 kann man verbinden mit ApdTapiDevice1

ApdTapiLog1 kann man verbinden mit ApdTapiStatus1

und so weiter..........


senden kann man dann zb. so

Delphi-Quellcode:
ApdComPort1.ComNumber := 2;

ApdComPort1.Baud := 9600;
ApdComPort1.Parity := pNone;
ApdComPort1.DataBits := 8;
ApdComPort1.StopBits := 2;

ApdComPort1.Open := true;

ApdComPort1.Output := 'Inhalt was man senden will';
Ist es mit diesen API Komponenten vielleicht einfacher ? die ganze Sache zu realisieren? Ich hab nur noch nicht rausgefunden was ich noch fürs Answer brauch

Doku dazu hab ich hier http://tpapro.sourceforge.net/Faq.html auch gefunden

bernhard_LA 9. Nov 2011 15:32

AW: Smartcard auslesen, Kommandos senden
 
welcher Leser (COM oder USB) und welcher Karten Type (Synchron oder Ascychron)

am Besten via PC/SC - Windows Funktionen mit der Karte reden

mquadrat 9. Nov 2011 15:34

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Zitat von bernhard_LA (Beitrag 1135321)
welcher Leser (COM oder USB) und welcher Karten Type (Synchron oder Ascychron)

am Besten via PC/SC - Windows Funktionen mit der Karte reden

PC/SC hatte ich auf der ersten Seite schon vorgeschlagen. Scheinbar soll/muss es unbedingt über den COM-Port gehen. Warum auch immer.

bernhard_LA 9. Nov 2011 15:37

AW: Smartcard auslesen, Kommandos senden
 
alte Telfonwertkarten und COM Port mag noch OK sein, bei den Controller Karten (Geldkarte, SIM, Ausweis, ....) exterm viel Arbeit die Protokolle(T=1, T=0, ....) zu implementieren

newuser01 9. Nov 2011 15:52

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Zitat von bernhard_LA (Beitrag 1135321)
welcher Leser (COM oder USB) und welcher Karten Type (Synchron oder Ascychron)

am Besten via PC/SC - Windows Funktionen mit der Karte reden


Reader ist ein Cas3, angeschlossen (Strom USB) + Serielles Kabel an Com1. Über "Cas Interface Studio" kann ich dann auf PHOENIX Modus 6 MHz einstellen, was ich ja bei der Karte auch brauch. (Synchron oder Ascychron) kann ich nicht beantworten, ist ne alte S02 Karte

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

[;.!.IRDETO ACS..U..m]

newuser01 9. Nov 2011 18:04

AW: Smartcard auslesen, Kommandos senden
 
@Bummi

mit:

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;

//Kartenreset
ComPort.FlowControl.ControlRTS := rtsEnable;
ComPort.FlowControl.ControlRTS := rtsDisable;
ComPort.FlowControl.ControlDTR := dtrEnable;
ComPort.FlowControl.ControlDTR := dtrDisable;
end;

und dem:

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

ComPort.ReadStr(s,Count);
FInBuffer := FInBuffer + sEmpfangen;
e_atr.Text := Hexit(FInBuffer);
end;

bekomm ich schon mal den richtigen

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


Allerdings stören mich noch die $ Zeichen in der Ausgabe :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr.
Seite 5 von 7   « Erste     345 67      

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