Bu sorunun doğru yeri olup olmadığından emin değilim. Sistemimde bir joystick /dev/input/js0
'dan eksen pozisyon değerlerini elde etmeye çalışıyorum. jstest /dev/input/js0
'u çalıştırırsam tüm düğmeler ve eksen konumları hakkında canlı geri bildirim verir. Bu bilgileri servoları kontrol etmek için C programıma beslemeye çalışıyorum. Bunu yapmak için bir işlev var mı? Programlamada giriş cihazlarıyla fazla çalışmadım, bu yüzden hepsi benim için yeni. Herhangi bir yardım büyük beğeni topluyor./dev/input 'dan canlı bilgi alma
6
A
cevap
2
Bu sayfa: https://www.kernel.org/doc/Documentation/input/input.txt: http://scaryreasoner.wordpress.com/2008/02/22/programming-joysticks-with-linux/ Dosyadan okunan olayların biçimi burada belgelenen
dev/giriş/js0/den bilgi okumak için nasıl bir güzel bir writeup vardır.
struct input_event {
struct timeval time;
unsigned short type;
unsigned short code;
unsigned int value;
};
2
Etkinlikleri okumak için bu python code çalıştırabilirsiniz: Bu bir zaman damgası, olay türünü ve tanımlayıcı ve değer içeren basit yapı bu.
Yüksek düzeyde python-evdev modülünü de kullanabilirsiniz.
#!/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)
Örnek çıktı:
(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)
İlgili konular
- 1. Silinen satırdan bilgi alma
- 2. gdb yazdırma hakkında bilgi alma
- 3. maven bağımlılıkları hakkında bilgi alma
- 4. Çekirdek Metninde bir glif hakkında bilgi alma
- 5. Android Uygulama Faturalama - Sunucudan Bilgi Alma Hatası
- 6. Capistrano görevleri hakkında daha fazla bilgi alma
- 7. Posta alma kancalarındaki itici bilgi nasıl alınır?
- 8. Çalışma zamanı hakkında bilgi alma .Net Core
- 9. Ses veri için Swift'de unSafeMutablePointer Int16'dan değer alma
- 10. youtube api 3.0 tek bir video için bilgi alma
- 11. $ wpdb ve get_query_var kullanarak Wordpress DB'den bilgi alma
- 12. Google Kişiler API'sı (Java) ile bir kişi hakkında bilgi alma
- 13. Uygulamaya göre android pil kullanımı hakkında bilgi alma
- 14. jQuery canlı sürüklenebilir/canlı olarak düşülebilir?
- 15. localhost dan email gönder
- 16. ByteArray dan BigInteger
- 17. Canlı Olimpiyat Madalyası Verilerini R
- 18. Bilgi Kutusu
- 19. jquery canlı yayın seç
- 20. HTML5 canlı video "hack"
- 21. datepicker canlı Yapımı JQuery
- 22. Konsollar Canlı Önizleme Hatası
- 23. Canlı güncelleme Puspus grafiği
- 24. Canlı kod colorNames() işlevi?
- 25. Test ActionController :: Canlı
- 26. Sadece canlı alanım için Google Analytics'i göster
- 27. protobuf: C++ 'dan C++' dan bir mesaj okuyun. C#
- 28. IP Adresi sk_buff dan
- 29. Python 3,// dan
- 30. DAN-maddesinin giriş masanın