Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi COM Port Event? (https://www.delphipraxis.net/49029-com-port-event.html)

Zerolith 4. Jul 2005 16:11


COM Port Event?
 
Tag!

also ich habe mittlerweile erfolgreich eine kleine Klasse geschrieben die mir Zeitgesteuert Daten von der Seriellen Schnittstelle ließt.

jetzt hab ich mir letztens als kleines Spielzeug eine Infrarot Fernbedienung gekauft. Die ich theoretisch mit meiner Klasse ansteuern kann. Nur sendet dieses Ding die ganze Zeit irgendeinen Müll. Und es dauert sehr lange bis ich 24 Byte ausgelesen hab (wundert mich auch).

so... da liegt auch ne Sofware bei - die macht das ganze eigentlich ganz toll. Nur ist sie mir zu blöd. Unterstützt WinAmp nicht vollständig usw.

Meine Frage nun: Kann ich irgendwie ein Event Abfragen das ausgelößt wird sobald an der COM Schnittstelle Daten ankommen?

oder Hat jemand eine bessere lösung als sowas:

Delphi-Quellcode:
Function GetCOMPortHandle: THandle;
Begin
  Result := CreateFile('Com4', GENERIC_READ Or GENERIC_WRITE, 0, Nil, 0, 0, 0);
End;

Function RecieveByte(COMHandle: THandle): Byte;
Var
  tmp: cardinal;
  ByteToRead: Byte;
Begin
  ReadFile(COMHandle, BytetoRead, 2, tmp, Nil);
  Result := ByteToRead;
End;

Procedure TForm1.FormCreate(Sender: TObject);
Begin
  com := GetCOMPortHandle;
End;

Procedure TForm1.Timer1Timer(Sender: TObject);
Var tmp: integer;
Begin
  tmp := RecieveByte(com);
  If tmp <> 217 and 0 Then // Nur um den "Müll" zu ignorieren...
    memo1.lines.add(inttostr(tmp));
End;
Danke, Daniel

x000x 4. Jul 2005 22:49

Re: COM Port Event?
 
Moin moin,
Zitat:

Zitat von Zerolith
Meine Frage nun: Kann ich irgendwie ein Event Abfragen das ausgelößt wird sobald an der COM Schnittstelle Daten ankommen?

Die Antwort ist: MSDN-Library durchsuchenWaitCommEvent

PS: Schau dir mal die Source von synaser.zip
... und hier ist noch ein ComPort-Sniffer ... ist bestimmt auch ganz hilfreich

Zerolith 5. Jul 2005 09:44

Re: COM Port Event?
 
Super, vielen Dank

werde ich mir heut abend anschauen.

DerDan 5. Jul 2005 10:32

Re: COM Port Event?
 
Ich würde eine ComPort Library einsetzen.

Ich persöhnlich Benutze CPort von
CPort Source Forge
in bin damit auserordentlich zufrieden.


DerDan


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