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