Software für USB-Infrarot-Empfänger
-
Also erstmal "Hi @ All", ich bin neu hier.
Im Laufe meines Elektrotechnik-Studiums (BA) habe ich auch ein Semester lang C++ gelernt. Das reicht mir um die Grundzüge usw. zu beherreschen um einfache Funktionen o.ä. mit dem Borland-Builder zu schreiben, aber nicht für das was ich vor habe:
Da ich keinen Fernseher, Stereo-Anlage, o.ä. habe, und alles multimediale mit meinem PC mache fehlt mir zu meinem Glück noch eine Fernbedienung! Zu Weihnachten habe ich einen USB-IrDA-Dongle bekommen der mit Treibern von SigmaTel zum laufen gebracht wird. Jetzt möchte ich dafür ein Programm schreiben welches im Hintergrund läuft, die Ir-Signale von einer Standard-FB (hab so eine alte 4in1-FB gefunden) empfängt, und dann die entsprechenden Befehle an irgendwelche (Multimedia-)Programme sendet. Als Befehle würden das Starten von Anwendungen vorkommen und Tastatursignale an eine bereits laufende Anwendung.
So, jetzt sind wir bei meinen ersten Fragen:
- Kann man mit dem PC und einem solchen Ir-Empfänger einfache FB-Signale empfangen und auswerten?
- Wie sende/empfange ich Daten über USB?Bei der ersten Frage bin ich mir einfach nicht sicher, deswegen stell ich sie hier nochmal. Ich vermute, daß das kein Problem sein dürfte.
Bei der zweiten Frage....Ich hab keine Ahnung wie ich auf ein USB-Gerät zugreifen kann/muß.Wahrscheinlich fehlt mir für so ein Projekt noch ziemlich viel Wissen (und Erfahrung), aber ich würde mich riesig freuen wenn ich hier im Forum die nötige Hilfestellung bekomme. Schließlich will ich meine Studienzeit nutzen.
Greetz
Asche
-
hab das mal nach rundum geschoben, da es mehr um allgemeine programmierfragen geht
-
Hmm, da anscheinend keiner ne Antwort hat frag ich mal was andres
Kennt jemand eine .DLL, eine Klasse, o.ä. mit der ich über das IrDA-Gerät kommunizieren kann?
Sobald ich mal ein paar Bits über das im System als IrDA eingetragene Gerät empfangen kann, hat sich der Rest eigentlich schon erledigt.
-
So, jetz is noch ne Frage enstanden:
Ich hab mir mal nen Beispielcode für den Zugriff auf ein USB-Gerät besorgt, aber so ganz versteh ich den noch nich.
hTreiber = CreateFile( "[b]\\\\.\\Thermometer_0[/b]", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0 );
Was passiert bei dem "\\\.\\Thermometer_0"???
-
Soweit ich richtig informiert bin, sind IrDA und Standard-Fernbedienungen nicht kompatibel. Kann mich aber irren.
Gruß,
Sebastian
-
Das stimmt auch ... bei den meisten Empfängern. Das liegt, soweit ich weiß daran, daß die Receivermodule in IrDA-Empfängern den Frequenzbereich nicht handlen können. Aber da der Empfänger den ich hab kein "Orignal-IrDA" Empfänger ist, sondern von einem Ingenieur in meiner Firma gebastelt wurde (der leider nicht mehr hier arbeitet, sonst hät ich ihn gefragt
), weiß ich daß das Receivermodul in meinem Empfänger alle IR-Signale empfängt, und auch an den PC in Form von Hex-Codes weitergibt.
Allerdings hab ich das Teil, wie gesagt nur mit einem SigmaTel-Treiber zum laufen bekommen, und der hat das Ding als IrDA-Gerät eingetragen. Um jetzt rauszufinden, ob der Treiber die Daten weitergibt oder nicht muß ich erstmal wissen wie ich die Daten vom USB-Gerät in mein Programm bekomme.
-
Oh, cool. Aber da kann ich Dir leider auch nicht weiterhelfen. Sorry.
Viel Glück,
Sebastian
-
Ah, vielleicht doch:
Was passiert bei dem "\\\.\\Thermometer_0"???
Mit dem von Dir geposteten Code öffnest Du quasi einen Treiber (genauer: erzeugst ein Handle). Ähnlich wie ein Handle für eine Datei. Alles was Du dann an diesen Treiber "schreibst", gibt der Treiber an Deine Hardware weiter, alles, was Du aus diesem Treiber "liest", fragt er aus der Hardware ab.
Dabei ist "\\\.\\Thermometer_0" der Treiber "\.\Thermometer_0", Da in C ein "\" doppelt geschrieben werden muss, also "\".
Ein solcher Treiber liegt oft als "virtueller Gerätetreiber" vor, bei einem meiner Programme z.Zt. heißt er "\\\.\\dmxcard.vxd". Dieses Handle verwendet man dann z.B. mit DeviceIoControl.
Viel Glück,
Sebastian
-
Und noch etwas: Da Du ja etwas abfragen willst, musst Du bei CreateFile "GENERIC_READ" angeben. Aber frag mal Diene Hilfe nach CreateFile, da kann man eine ganze Menge Einstellungen vornehmen.
-
Yo, thx erstma. MSDN und deine Erinnerung daran, daß "\" ja ne Escapesequenz is hat mir das Ding schlüssig gemacht. Scheint wohl so als wär ich dem Geheimnis USB-Zugriff auf der Spur mit CreateFile und DeviceIoControl.