![]() |
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:
Danke, Daniel
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; |
Re: COM Port Event?
Moin moin,
Zitat:
![]() PS: Schau dir mal die Source von ![]() ... und hier ist noch ein ![]() |
Re: COM Port Event?
Super, vielen Dank
werde ich mir heut abend anschauen. |
Re: COM Port Event?
Ich würde eine ComPort Library einsetzen.
Ich persöhnlich Benutze CPort von ![]() in bin damit auserordentlich zufrieden. DerDan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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