AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie Signale einer IR Fernbedienung für ComPort empfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Signale einer IR Fernbedienung für ComPort empfangen?

Ein Thema von Cyberaxx · begonnen am 9. Okt 2007 · letzter Beitrag vom 15. Okt 2007
 
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#1

Wie Signale einer IR Fernbedienung für ComPort empfangen?

  Alt 9. Okt 2007, 21:38
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
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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