Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

Re: Wiegand 26bit über COM Schnittstelle erfassen

  Alt 26. Okt 2009, 21:48
Wenn du nur Lesen mußt, dann könntest du es ja auch erstmal so versuchen.
Das Programm ließt vom COM-Port Byteweise ein und gibt die Werte Hexadezimal aus.
Delphi-Quellcode:
Program Project1;

{$APPTYPE CONSOLE}

Uses Windows, SysUtils;

Var S: String;
  H: THandle;
  B: Byte;
  C: LongWord;

Begin
  Try
    Write('Gib die Nummer des COM-Ports ein: ');
    ReadLn(S);
    S := Trim(S);
    H := CreateFile(PChar('COM' + S), GENERIC_READ,
      FILE_SHARE_READ   or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
    If H = INVALID_HANDLE_VALUE Then
      Raise Exception.CreateFmt('Port COM%s konnte nicht geöffnet werden.'#13#10,
        [S, SysErrorMessage(GetLastError)]);
    While ReadFile(H, B, 1, C, nil) and (C = 1) do
      Write(Format('%.2x ', [B]));
    WriteLn;
    WriteLn(SysErrorMessage(GetLastError));
    CloseHandle(H);
  Except
    On E: Exception do WriteLn(E.ClassName, ': ', E.Message);
  End;
  ReadLn;
End.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat