C# USB Gerät auslesen und steuern?

lordfritte

Lieutenant
Registriert
Juli 2006
Beiträge
993
Hallo ich habe einen kleinen irDA USB Transmitter mit Sender und Empfänger.
Jetzt möchte ich ein Programm schreiben womit ich Datenpakete von dem Transmitter auffangen und auch wieder Senden kann.

Ich habe folgendes vor: Ich möchte mit einer Fernbedienung auf den Transmitter halten, die Befehle aufzeichnen und mit dem PC wieder senden um z.b. einen TV oder einen Receiver zu steuern.
 
Also da sind schon mal einige grundlegende Überlegungen nötig.
Als erstes scheint da die C# Ecke sowieso nicht die richtige zu sein.
Zweitens: Wie sind die Geräte verbunden: Dein Transmitter, PC, Fernseher/Receiver
Drittens: Schon mal mit Treibern zu tun gehabt bzw. beschäftigt? Das ist nichts was man mal eben an einem Nachmittag macht.
Welche Programmiererfahrung hast Du um die Machbarkeit mal anschätzen zu können...
 
Ohne Marshalling? An sonsten bleibt das ein Beitrag ohne Wert!
 
Es scheint also kein Hintergrund mehr von Deiner Seite zu kommen.
Um Marshalling einzusetzen sollte er natürlich auch etwas von C verstehen.
 
Hi, leider kann ich nicht helfen. Aber das müsste auch mit c# gehen, man braucht keinen c/c++ um das was du vorhast zu verwirklichen! Ich weiß noch, das eine kollege von mir der aber c# experte war schonmal sowas gemacht hat. Leider gibt es kein kontakt mehr, dennoch fragst du am besten einfach in einem großen englischsprachigen .net forum nach, da kann dir sicher geholfen werden.

Wer denkt c# == sehr sehr hardwareentfernte sprache, der liegt sehr falsch.
 
@bu.llet
Was hat das denn mit den Aufbau der Geräte zu tun?
Das mit dem USB Transmitter war auch nur eine Idee, ich könnte auch was mit dem Parallelport basteln.
Also ich habe schon ein paar Anleitungengen gesehen wie man so was baut und mit winlirc ansteuert.
Aber da kommt mein nächstes Problem: ich habe keinen COM Port, also bin ich auch offen für eine Lösung auf Parallelport basis.

Und der ganze Aufbau hat folgenden Grund: Wir haben bei Unitymedia gestern digitales Fernsehen bestellt weil die bald schon das Analoge fernsehen abschalten werden.
Und ich möchte meinen teuren HTPC(Multimedia Computer) nicht wegwerfen, also muss da vor die Analoge TV-Karte ein digital Receiver.
Jetzt habe ich aber keine lust dass ich PC und Receiver zu programmieren, allein schon weil ich den Komfort des EPG's zu schätzen gelernt habe.
Deswegen währe es schon super wenn der PC sich selber darum kümmert dass der Receiver auf die richtigen Kanal umgeschaltet wird.
 
Zuletzt bearbeitet:
Ich meine doch das es recht viel mit dem Aufbau zu tun hat. Oder kommunizieren alle am Ende über den USB?

Parallel-Port mit inpout32.dll.
 
Nee also der Ausgang vom reveiver geht über Antenne in den Eingang vom HTPC, und der HTPC hängt über VGA am am TV.

Und ich kann eine IR Diode einfach an Masse und einem Datenausgang am Parallelport hängen, oder benötige ich da noch eine Elektronik?

Das währe auch interesant, aber da habe ich wieder bedenken wegen der Spannung, ich weiß ehrlich gesagt nicht, was spitzen werte bei einem Audioausgang sind.
 
Zuletzt bearbeitet:
Ist das was du vorhast nicht etwas umständlich? Kauf dir doch einfach ne neue Digitale TV Karte;)
Hab grad keine Ahnung was die so kosten, aber sooo teuer können die doch net sein, oder?

Wenn du mit USB Geräten hantieren willst, schau dir mal das an: klick
 
Ist mir zu teuer, ich bräuchte eine mit einem CI Modul weil Unitymedia digtales fernsehen verschlüsselt. Die Karte kostet ca. 80€ und das CI Modul auch noch 80€ - 100€.
Das Thema hatte ich auch schonmal in einem Forum und da kam raus das es wohl auch gar nicht funktionieren würde da die SmartCard von Unitymedia nur ihre eignen Receiver unterstützt.
Also entweder bekomme ich es mit dem Receiver steuern hin oder ich kann meinen HTPC in den Müll werfen.

und diese #usblib bekomme ich auch nicht zum laufen, er findet die libusb nicht, also habe ich die runter geladen aber er bricht trotzdem mit einer exception ab(No error)
 
Zuletzt bearbeitet:
Hallo zusammen,

nun zum Anfang mal: Mit C# ist es, wenn auch mit etwas Aufwand, durchaus möglich USB-Geräte zu steuern. Ich selbst habe gerade ein Studienprojekt laufen wo über C# ein Farbsensor über USB angesteuert wird.

Allerdings müssen dafür so einige Voraussetzungen erfüllt sein. Zum einen wirst Du eine Treiberdatei brauchen die Du auch dementsprechend "von außen" ansprechen kannst, am besten eine die direkt schon COM-Objekte liefert. Unmanaged Dll's die dann gemarshallt werden müssen machen unter C# erhebliche Probleme. Als nächstes muss natürlich dein Hardwareaufbau korrekt sein. Wenn Du alle Geräte via irDA steuern kannst, reicht ein Sender dafür aus - Du kannst bei den meisten Sendern die es für den PC gibt so ziemlich alles einstellen und somit jedes irDA Gerät ansteuern.

Was Du auf jeden Fall benötigst ist eine genaue Dokumentation für alle Geräte die Du verwendest. Darin sollte mind. stehen wie und mit welchen Kommandos die Geräte angesteuert werden, ebenso brauchst Du eine Dokumentation für die Treiber-Datei - ansonsten ist das ganze Uferlos.
 
Hallo,

ich suche heute auch schon eine Weile nach einer Lösung zum auslesen von USB Signalen.
Angenommen ich möchte eine Lichtschranke, welcher 5V reichen, an den USBPort anschließen.
Dann habe ich ja keinen Treiber. (also Lichtschranke <-löten-> USBKabel <--> PC)
Das USB ist ja praktisch nur meine Schnittstelle zum PC.

Wie lese ich den die 2-Pins aus?

gut wäre so etwas wie:
Parallel-Port mit inpout32.dll. (von bu.llet)
blos für USB + evtnl kleine Einleitung.


Oder muss ich gleich Assembly mächtig sein, damit ich die Signale umwandeln kann.

Ich bevorzuge c++.
Wäre toll wenn mir jemand weiterhelfen kann ;)
 
was redet ihr da für ein mist, mit treibern arbeiten und so weiter. um die signale auszulesen braucht man den treiber nicht zu programmieren. man braucht lediglich nur eine schnittstelle zwischen den "(win)kern" und "user"schicht. Wenn diese nicht vom treiber vorhanden ist, was ich zu sehr bezweifele, müsse man die selbst schreiben!
wenn man mit C# programmieren will, tut man es meist unter WIN anwendungen. also schnapp dir einfach ein buch über USB Standarts und Programmierung oder im internet nach Tutorials absuchen.
natürlich brauchst du für die programmierung adminrechte, was unter VISTA und höher die sachen bisschen umständlicher macht, die aber leicht zu meistern ist (MANIFEST).
ich finde sicher in 2 sec eine seite wenn ich in google nach schlafwörtern suche. (natürlich muss man auch keine google suchmaschine benutzen :D )

jeder der die Vorlesung Betriebsystem besucht hat wird leichter mit dem thema vorankommen.

wenn man natürlich auf mikrokontroller einen USB hat, hat man da auch kein betriebssystem. Dann hat man ja pech gehabt. Als Anfänger würde ich vorerst die finger davon lassen.

generell, als normaler entwickler wird man nie was mit Treiberprogrammierung zu tun haben. Das gilt auch andersrum.
 
wow, das hat jetzt wahnsinnig weitergeholfen.
Dann schick mir mal bitte in 2sec ein tutorial

Danke dir! ;)


Auf fast jeder Seite die mir zu Gesicht gekommen ist wird nach i-welchen Treibern gefragt, deshalb hab ich ja dazugeschrieben dass ich keinen habe^^

wie gesagt: c++ wäre nett ;)
 
es gibt ab windows vista die möglichkeit auf USB auch aus einem User-Mode programmm direkt zuzugreifen. bei allen älteren systemen ist dafür zwangsläufig ein gerätetreiber nötig. diese werden bevorzugt in C oder in Assembler programmiert. C# geht hier NICHT!
Ich kann allerdings davon abraten ohne wirkliche Kenntnisse sich an einen Gerätetreiber zu wagen. Ich habe selbst schon welche für Windows entwickelt, und da muss man schon ganz genau wissen was man tut. Also bitte nichts rumexperimentieren wenn euch euer System am Herzen liegt.
 
Zurück
Oben