Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Comport Daten darstellen (https://www.delphipraxis.net/127511-comport-daten-darstellen.html)

Gehstock 14. Jan 2009 22:05


Comport Daten darstellen
 
versuche mit oberer Funktion Die gelesenen Daten vom Comport in einem Memo anzuzeigen allerdings scheitere ich bei der Umsetzung

Delphi-Quellcode:
function AddTerminalLog(Buf : Pointer ; BufLen : DWord ; Typ : String) : Boolean;
var
I : Integer;
s : String;
begin
 for I := 0 to BufLen - 1 do
  S := s + ByteToHex(Buf); //ist nätürlich Blödsinn weil immer das Erste Byte wiederholt wird
   Memo2.Lines.Add(Typ+': '+s);
end;
Delphi-Quellcode:
function ReadCom(Buf : Pointer ; BufLen : Dword) : boolean;
var
 dErr: Dword;
begin
 result := False;
 if (hCom <> INVALID_HANDLE_VALUE) and (Buf<>Nil) and (BufLen <> 0) then begin
  rxlen := 0;
  if FlgOvrlp then begin
   COMrd.hEvent:=CreateEvent(Nil,TRUE,FALSE,Nil);
   if not ReadFile(hCom,Buf^,BufLen,rxLen,@COMrd) then begin
    if not GetOverlappedResult(hCom,COMrd,rxLen,True) then begin
    end;
   end;
//   ResetEvent(COMrd.hEvent);
   CloseHandle(COMrd.hEvent);
  end
  else begin
   if not ReadFile(hCom,Buf^,BufLen,rxLen,Nil) then begin
//     ClearCommError(hCom,dErr,Nil);
//     exit;
   end;
  end;
  if rxLen = BufLen then
  begin
  result := True;
  AddTerminalLog(Buf,BufLen,'RX');
  end else ClearCommError(hCom,dErr,Nil);
 end;
end;

nuclearping 15. Jan 2009 02:15

Re: Comport Daten darstellen
 
Und bei was hast du da konkret Probleme?

Gehstock 15. Jan 2009 10:21

Re: Comport Daten darstellen
 
Delphi-Quellcode:
function AddTerminalLog(Buf : Pointer ; BufLen : DWord ; Typ : String) : Boolean;
var
I : Integer;
s : String;
begin
for I := 0 to BufLen - 1 do
  S := s + ByteToHex(Buf); //ist nätürlich Blödsinn weil immer das Erste Byte wiederholt wird
   Memo2.Lines.Add(Typ+': '+s);
end;
Buf ist ein Pointer kann ja alöso schlecht mit
Delphi-Quellcode:
S := s + ByteToHex(Buf[i]);
arbeiten

mashutu 15. Jan 2009 10:56

Re: Comport Daten darstellen
 
Incrementiere den Buffer in der For-Schleife


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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