Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mi 25.05.11 15:28 
Hi,

ich möchte gern für ein Gamepad welches man via USB und/oder Bluetooth die anbindung schreiben.
Wie ich die Daten sende und empfange etc ist kein Problem, das weiß ich und bekomm ich auch schon hin.

Ich möchte aber das ganze jetzt gern als Treiber entwickeln, so das nicht mein extra Programm laufen muß damit das pad funktioniert. Da ist nur die Frage.. wie funktioniert das?

Am geschicktesten wäre es vermutlich es als Treiber für DirectInput zu implementieren, kennt da jemand ein Tutorial oder ähnliches?

Hab mich mit Treiberprogrammierung noch nie so richtig beschäftigt, nur immer mal sehr rudimentär drauf geschaut um zu sehen was möglich ist und wann man es braucht etc.

Und, muß man jeweils einen Treiber für das Gerät als Bluetooth und als USB Gerät schreiben, oder kann man beides in einem kombinieren?

Und vorweg, natürlich entwickele ich den Treiber nicht mit Delphi, sondern mit C/C++ :)

Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mi 25.05.11 17:54 
Ich entnehme deinen Angaben, dass du das für MacOSX machen möchtest? Es gibt schon ein relativ gut dokumentiertes Projekt in C/C++ für den XBox360 Controller. Der Quelltext ist relativ alt, sollte aber noch funktionieren.
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mi 25.05.11 22:26 
Umh, sorry - vergessen dazu zu sagen. Geht um Windows 7, für MacOSX hab ich es schon gemacht ;)

_________________
Aya
I aim for my endless dreams and I know they will come true!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 26.05.11 02:21 
Für Windows 7 gibt's von Microsoft das DDK zum Download, wo alles Benötigte mit enthalten ist. Wichtig ist dort hauptsächlich die richtige Geräte-Klasse zu finden (ggf. mal nach einem OpenSource-Windows-Treiber für ein ähnliches Gerät suchen und anschauen, was die so machen) und dann basierend auf diesem die implementierten Schnittstellen implementieren. Was auf der Treiberseite für DirectInput zu tun ist, weiß ich leider grad nicht, sollte es aber im DDK durchaus Informationen zu geben.

Soweit ich die Windows-Treiberarchitektur verstanden habe, musst Du für eine Geräte-Klasse jeweils die passenden Interfaces deklarieren, mit Funktionen für Callbacks füllen (was also die benötigten Funktionen ausführt von deinem Treiber) und diese dann bei Windows registrieren.

Die Realisierung von USB und Bluetooth mit Hilfe des gleichen Treibers ist prinzipiell möglich, erfordert innerhalb des Treibers aber, dass Du für beide Geräteschnittstellen die nötigen Erkennungsroutinen schreibst (die bei Windows das Gerät dann "finden". Wie du dann intern deine Architektur baust, um Code-Dopplungen zu vermeiden, ist Dir überlassen.

HTH.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Do 26.05.11 17:56 
Hallo,

ich weiß nicht in wie weit das für deinen Fall relevant ist, aber soviel ich weiß müssen Treiber in der 64Bit Version von Windows 7 durch Microsoft Signiert sein. Wenn der Treiber also nicht nur für den Privatgebrauch sein soll, muss man sich da sicher mal schlau machen. Wenn es nur für das eigene System ist, kann man sicher auf Lösungen wie diese zurückgreifen: www.schieb.de/708312...treiber-installieren, da gab es kürzlich wohl einen Schädling der ähnliches machte :roll:.

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)