Funkeys: Unterschied zwischen den Versionen
HKay (Diskussion | Beiträge) (Init) |
Juhe (Diskussion | Beiträge) K (Rechtschreibung) |
||
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
U.B. Funkeys ist ein Computerspiel fuer Kinder, welches auf die Sammelleidenschaft der Spieler |
U.B. Funkeys ist ein Computerspiel fuer Kinder, welches auf die Sammelleidenschaft der Spieler abzielt. Der Spieler setzt Figuren in den mitgelieferten USB-Leser und ist dann, je nach Figur, im stande entsprechende Abschnitte der Spielwelt zu betreten. |
||
Hier werde ich die Entwicklung eines einfachen Linuxtreibers auf |
Hier werde ich die Entwicklung eines einfachen Linuxtreibers auf Basis von libUSB-1.0 beschreiben. |
||
==Funktionsweise== |
==Funktionsweise== |
||
Der Funkey- |
Der Funkey-Reader ist im Grunde ein Mehrkanal-Widerstandsmessgeraet. Die 5 Kontakte am Fusz jeder Funkey-Figur sind mit einem Widerstandsnetzwerk im Inneren der Figur verbunden. Diese misst der Funkey-Reader und sendet sie an das Spiel. |
||
Zeile 11: | Zeile 11: | ||
==Protokoll== |
==Protokoll== |
||
Man kann hier nicht wirklich von einem Protokoll sprechen. Nach einem Initialen Lesevorgang von 4 bytes sendet das Geraet bei jeder Widerstandsaenderung einen neuen Datensatz von 7 byte. Es wird mindestens alle 10 Sekunden ein Datensatz uebertragen. |
Man kann hier nicht wirklich von einem Protokoll sprechen. Nach einem Initialen Lesevorgang von 4 bytes sendet das Geraet bei jeder Widerstandsaenderung einen neuen Datensatz von 7 byte. Es wird mindestens alle 10 Sekunden ein Datensatz uebertragen. |
||
Da beim Einsetzen einer Figur die Kontakte nicht |
Da beim Einsetzen einer Figur die Kontakte nicht alle gleichzeitig schlieszen wird eine Reihe von falschen Messdaten an das Spiel gesendet. Diese werden verworfen, da die Messwerte keiner Figur zugeordnet werden koennen. |
||
Die |
Die Nutzdaten sind wie folgt aufgebaut: |
||
:5 byte: Messdaten |
:5 byte: Messdaten |
||
:1 byte: ID der |
:1 byte: ID der Figur(?) |
||
:1 byte: 0x00 |
:1 byte: 0x00 |
||
Zeile 24: | Zeile 24: | ||
==Geraet== |
==Geraet== |
||
;USB-Reader |
;USB-Reader |
||
:vendor id: |
:vendor id: 0x0e4c |
||
:vendor string: Radica Games, Ltd |
:vendor string: Radica Games, Ltd |
||
:product id: 0x7288 |
:product id: 0x7288 |
||
:product string: Mega Byte |
:product string: Mega Byte |
||
:endpoint: |
:endpoint: 0x81 |
||
Zeile 35: | Zeile 35: | ||
* Unterstuetzung fuer mehr als einen Funkey-Reader gleichzeitig. |
* Unterstuetzung fuer mehr als einen Funkey-Reader gleichzeitig. |
||
* Nutzen finden |
* Nutzen finden |
||
* Vielleicht alle validen Figurenwerte herausfinden. |
|||
Zeile 40: | Zeile 41: | ||
==Treiber== |
==Treiber== |
||
[[Media:Funkeyd-0.0.1.zip|Linux treiber download]] |
[[Media:Funkeyd-0.0.1.zip|Linux treiber download]] |
||
[[Category:Projekt]] |
Aktuelle Version vom 17. September 2019, 16:48 Uhr
U.B. Funkeys ist ein Computerspiel fuer Kinder, welches auf die Sammelleidenschaft der Spieler abzielt. Der Spieler setzt Figuren in den mitgelieferten USB-Leser und ist dann, je nach Figur, im stande entsprechende Abschnitte der Spielwelt zu betreten. Hier werde ich die Entwicklung eines einfachen Linuxtreibers auf Basis von libUSB-1.0 beschreiben.
Funktionsweise
Der Funkey-Reader ist im Grunde ein Mehrkanal-Widerstandsmessgeraet. Die 5 Kontakte am Fusz jeder Funkey-Figur sind mit einem Widerstandsnetzwerk im Inneren der Figur verbunden. Diese misst der Funkey-Reader und sendet sie an das Spiel.
Protokoll
Man kann hier nicht wirklich von einem Protokoll sprechen. Nach einem Initialen Lesevorgang von 4 bytes sendet das Geraet bei jeder Widerstandsaenderung einen neuen Datensatz von 7 byte. Es wird mindestens alle 10 Sekunden ein Datensatz uebertragen. Da beim Einsetzen einer Figur die Kontakte nicht alle gleichzeitig schlieszen wird eine Reihe von falschen Messdaten an das Spiel gesendet. Diese werden verworfen, da die Messwerte keiner Figur zugeordnet werden koennen.
Die Nutzdaten sind wie folgt aufgebaut:
- 5 byte: Messdaten
- 1 byte: ID der Figur(?)
- 1 byte: 0x00
Beispiel: [0x78][0x8C][0x11][0xCE][0x99][0xCD][0x00]
Geraet
- USB-Reader
- vendor id: 0x0e4c
- vendor string: Radica Games, Ltd
- product id: 0x7288
- product string: Mega Byte
- endpoint: 0x81
Todo
- Unterstuetzung fuer mehr als einen Funkey-Reader gleichzeitig.
- Nutzen finden
- Vielleicht alle validen Figurenwerte herausfinden.