Ich bin mir nicht sicher, ob dies der richtige Ort für diese Frage ist. Ich versuche, die Achsenpositionswerte von einem Joystick /dev/input/js0
auf meinem System zu erhalten. Wenn ich jstest /dev/input/js0
laufen lasse, gibt es mir Live-Feedback zu allen Tasten und Achsenpositionen. Ich versuche, diese Informationen in mein C-Programm einzugeben, um Servos zu steuern. Gibt es dafür eine Funktion? Ich habe nicht viel mit Eingabegeräten in der Programmierung gearbeitet, also ist das alles neu für mich. Jede Hilfe wird sehr geschätzt.Erhalten von Live-Informationen von/dev/input
6
A
Antwort
2
Diese Seite: http://scaryreasoner.wordpress.com/2008/02/22/programming-joysticks-with-linux/ hat eine nette Zuschreibung, wie die Informationen zu lesen, von/dev/input/js0
Das Format der Ereignisse, die Sie aus der Datei lesen hier dokumentiert ist: https://www.kernel.org/doc/Documentation/input/input.txt. Es ist eine einfache Struktur einen Zeitstempel, den Ereignistyp und Kennung und den Wert enthält:
struct input_event {
struct timeval time;
unsigned short type;
unsigned short code;
unsigned int value;
};
2
Sie können diese python code laufen Ereignisse zu lesen.
Sie können auch ein High-Level-Modul python-evdev verwenden.
#!/usr/bin/env python
import struct
infile_path = "/dev/input/js0"
EVENT_SIZE = struct.calcsize("llHHI")
file = open(infile_path, "rb")
event = file.read(EVENT_SIZE)
while event:
print(struct.unpack("llHHI", event))
(tv_sec, tv_usec, type, code, value) = struct.unpack("llHHI", event)
event = file.read(EVENT_SIZE)
Beispielausgabe:
(73324490, 8454144, 55242, 1118, 25231360)
(73324490, 42008576, 55242, 1118, 58785792)
(73324490, 75563008, 55242, 1118, 92340224)
(73324490, 109117440, 55242, 1118, 125894656)
(73324490, 142671872, 55242, 1118, 159449088)
(73324490, 176226304, 55242, 1118, 193003520)
(73324490, 209780736, 55242, 1118, 226557952)
(73324490, 243335168, 55242, 1118, 8519680)
(73324490, 25296896, 55242, 1118, 42074112)
(73324490, 58884097, 55242, 1118, 75661313)
(73324490, 92405760, 55242, 1118, 109215745)
(73324490, 125992961, 55242, 1118, 142737408)
(73324490, 159514624, 55242, 1118, 176324609)
(73327790, 84041474, 58542, 1118, 84049919)
(73328030, 84044852, 58782, 1118, 84017152)
(73331790, 33749013, 62542, 1118, 33742256)
(73331790, 33736851, 62562, 1118, 33731108)
(73331830, 33723339, 62602, 1118, 33718273)
(73332090, 33723339, 62862, 1118, 33685504)
Verwandte Themen
- 1. Wert von CorrelationHandle erhalten
- 2. Erhalten Datum von String
- 3. Bits Erhalten von Byte
- 4. Erhalten von classlist Ereignisse
- 5. Erhalten Wert von Klasse
- 6. Rückgabewerte von Task.WhenAll erhalten
- 7. Farbe von CGContext erhalten?
- 8. Informationen erhalten von String
- 9. ID von Layout Erhalten
- 10. Bitmapdrawable von fresco erhalten
- 11. Erhalten CIDR von netmask
- 12. Erhalten von Facebook-Benutzerstandort
- 13. Dezibel von AVAudioRecorder erhalten
- 14. Erhalten von HTTP-Antwortheadern
- 15. Erhalten Teilzeichenfolge von ustring
- 16. Erhalten NSIndexSet von NSArray
- 17. Werte von CFLOOP erhalten
- 18. Bitmap von Bitmapdescriptor erhalten
- 19. Erhalten von Live-Inhalten
- 20. Video von ALAsset erhalten
- 21. Zeilenhöhe von gridview erhalten
- 22. Erhalten Wert von NSTextField
- 23. Benutzereingaben von Speech erhalten?
- 24. URL von URLLoader erhalten?
- 25. Zeit von String erhalten
- 26. Erhalten Anker von URI
- 27. Erhalten DayOfQuarter von Datum
- 28. erhalten Jahr von java.util.Date
- 29. Erhalten ConversationId von Kontext
- 30. erhalten TraceId von Zipkintracer