Treiberprogrammierung

OP #5408993
Lesenswert?

Hallo,

kann jemand Starthilfe bei der Treiberprogrammierung geben. Mich 
interessiert
ein eigener Maustreiber (als Aufgabe zum lernen) in C.

Sinn des ganzen. Wie kann man die Berührungsoberfläche eines Smartphones 
zur Maussteuerung verwenden...

Danke und schönen Tag ....
#5409219
Lesenswert?

Ein Maustreiber ? Was soll der denn koennen ?

Eine Mouse an USB anschliessen ? Von Grund auf ?
.. das Waere dann die Protokolle vom USB durchforsten, ein HID 
erstellen, ins system einbinden. Mit einigem an Erfahrung .. vielleicht 
in einem halben Jahr.

Ein Android als Mouse fuer einen PC verwenden ?
Ist moeglicherweise einfacher. Den touch einlesen, in Packete fuer zB 
WLAN umwandeln, dh eithernet. Auf der PC Seite eine Service App 
erstellen, auf den Ethernet port hoeren und als Mouse Steuerung 
einbinden.
Gast #5409724
Lesenswert?

Ca E. schrieb:
> Wie kann man die Berührungsoberfläche eines Smartphones
> zur Maussteuerung verwenden...

Steuerung wo? Auf dem Smartphone ist das nicht nötig, der Finger zeigt 
ja bereits dahin wo man was betätigen möchte. Oder mit dem Smartphone 
die Maus des PC steuern? Das ist eine hochprozentige Idee.

Georg
#5409905
Lesenswert?

Am einfachsten implementieren könnte man das erstmal mit einer normalen 
Software auf dem PC welche sich durch den standard usb Treiber mit dem 
Phone verbindet.
Interessant ist dann auch die Möglichkeit das wireless übers Netzwerk 
(lokales netwerk - muss ja kein inet sein) zu betreiben.

Allerdings wird man die Latenzprobpeme evaluieren müssen.
(Firma: keine) #5409959
Lesenswert?

2⁵ schrieb:
> Für welches Betriebssystem?
>
> Windows ->
> https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/
>
> Linux -> https://lwn.net/Kernel/LDD3/ (leider etwas veraltet)
>
> Beides bedingt etwas Zeit und Lesewillen zur Einarbeitung...

Ja, das ist in der Tat die zentrale Frage. Die meisten "hohen" 
Betriebssysteme haben ein recht starres Treibermodell, bei dem der 
Kontrollfluss vom OS vorgegebenen Konventionen folgen muss. Typisch ist 
dafür ein "Anker," das ist eine Struktur, mit der der Treiber 
Callbackfunktionen registriert, die dann von BS zu definierten 
Zeitpunkten aufgerufen werden (oft der "Open/Close/Read/Write/IoCtl" 
Semantik folgend). Du musst also das Treibermodell des jeweiligen 
Betriebssystems kennen. Das ist für alle relevanten OS gut dokumentiert, 
erfordert aber wie schon erwähnt ein etwas tieferes Einlesen als man es 
von der Applikationsentwicklung egwohnt ist.

In kleineren OS (z.B. viele RTOS) ist es nicht so starr vorgegeben, da 
kann man sich schon Mal mit ISRs und einer "handgestrickten" 
Kommunikation zwischen Applikation und ISR behelfen (allerdings gibt es 
auch dort "Blaupausencode," der zu befolgen nicht dumm ist). Manche 
Middlewaresuiten (z.B. Netzwerksoftware oder Daetisysteme) haben dort 
eigene Treibermodelle und demzufolge so etwas wie eigene "DDKs" (Device 
Driver Kits, manchmal so genannt, manchmal Anders).

Wenn es Dir allerdings um interaktive devices wie Mäuse oder 
Touchscreens geht, redest Du sehr wahrscheinlich über ein komplexeres 
Desktop basiertes OS wie Android oder Windows. Dafür hilft Dir nur die 
Auseinandersetzung mit dem Treibermodell, z.B. über o.g. links weiter.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren