Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

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

AW: Smartcard auslesen, Kommandos senden

  Alt 8. Nov 2011, 22:30
Delphi-Quellcode:
ComPort.WriteStr(char($01)+char($02)+char($01)+char($00)+char(00)+char($00)+char($3D));

// oder wenn es eh fix ist

ComPort.WriteStr(#01#02#01#00#00#00#$3D);
Beim Lesen solltest Du immer im Hinterkopf haben dass die Daten in Portionen kommen können bis sie komplett sind, also Puffern und den Puffer auswerten

Delphi-Quellcode:
procedure TwasAuchImmer.Comport1RxChar(Sender: TObject; Count: Integer);
var
  s:AnsiString;
begin
    BaseSerial1.ReadStr(s,Count);
    FInBuffer := FInBuffer + s; // FPuffer ist hier eine Klassenvariable
    InterpretInbuffer; // Eine Prozedur die den Puffer auswertet, komplette Nachrichten extrahiert, aus dem Puffer entfernt und verarbeitet
end;
Das was bei Dir ankommt sollte wenn Du wirklich Delphi7 verwendest, also kein Unicodeproblem haben kannst, an falschen Einstellungen für Baudrate, Stopbit, Parity oder ähnlichem liegen ...
BZW: was soll da rauskommen, wenn Du wieder HexCodes erwartest musst Du diese aus den Bytes extrahieren.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Const
 Test='Âü~>ÂüÂüÂü';
var
 s:AnsiString;
 HexOut:String;
 i:Integer;
begin
 s := Test;
 for I := 1 to Length(test) do HexOut := HexOut +'$' +IntToHex(Byte(s[i]),2);
 Showmessage(HexOut);
end;
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