![]() |
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; |
Re: Comport Daten darstellen
Und bei was hast du da konkret Probleme?
|
Re: Comport Daten darstellen
Delphi-Quellcode:
Buf ist ein Pointer kann ja alöso schlecht mit
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:
arbeiten
S := s + ByteToHex(Buf[i]);
|
Re: Comport Daten darstellen
Incrementiere den Buffer in der For-Schleife
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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