Hallo,
mal wieder ich...
Ich würde gerne eine Fernbedienung in einem meiner Programme nutzen. Die Fernbedienung sendet RC5 Signale soweit ich weiß, da ich das mit Grider oder WinLirc nutzen kann.
Der Aufbau der Steuerung ist sehr einfach gehalten.
http://www.dvbmagic.de/images/fernbe...c_receiver.gif
Wenn ich RTS auf High lege ist der Empfänger aktiv. Signale kommen über DCD, nur High und Low Signale
Nach der Beschreibung des RC5 Protokolls, sieht ein Befehl so aus
2 Startbits (immer 1)
1 Toglebit
5 Adressbits
6 Kommandobits
Insgesamt also 14 ... hmmm ... Signale
Die einfache Prozedur mit ReadFile funktioniert nicht, da ja nicht wirklich Daten übertragen werden.
Eine passende Komponente habe ich auch noch nicht gefunden.
Wenn ich das bei mir am laufen habe, habe ich ein ziemlich grosses Untergrundrauschen drin.
Jedesmal wenn sich der Status an DCD ändert, habe ich einfach mal die Zustände in einem String addiert und nach 14 Zeichen ausgegeben. Da kam ziemlich viel Müll mit an. Habe als noch eine Prüfung aus High der ersten beiden Zeichen eingebaut.
Zusätzlich soll das Signal nur ausgegeben werden, wenn es sich von dem vorherigem unterscheidet.
Delphi-Quellcode:
if CP.DCD = 1 then
Str := Str + '1'
else Str := Str + '0';
if ((Length(Str) = 2) and (not(Str = '11'))) then
Str := '';
if (Length(14) and (Str <> OStr)) then begin
Memo1.Lines.Add(Str);
OStr := Str;
Str := '';
end;
if Length(Str) = 14 then
Str := '';
Eben mal schnell getestet gehabt aber da kommt leider auch nicht wirklich was bei heraus, bei fast jedem Tastendruck die Selbe Folge. Hat hier jemand eine Ahnung wie man das Richtig anstellt und mich auf den richtigen Weg schubsen könnte?
Eigentlich müsste der Source auch wenn er nicht sauber ist doch so seinen Zweck erfüllen?!
Ich blick da echt nicht mehr weiter.
Gruß
Daniel