2013-04-15 2 views
6

이것이이 질문에 적합한 지 확신 할 수 없습니다. 시스템의 조이스틱 /dev/input/js0에서 축 위치 값을 얻으려고합니다. jstest /dev/input/js0을 실행하면 모든 버튼과 축 위치에 대해 실시간 피드백을 제공합니다. 이 정보를 내 C 프로그램에 입력하여 서보를 제어하려고합니다. 이 일을위한 기능이 있습니까? 나는 프로그래밍에서 입력 장치로 많은 일을하지 않았으므로 이것이 나에게 새로운 것이다. 어떤 도움이라도 대단히 감사합니다./dev/input에서 실시간 정보 받기

답변

2

이벤트를 읽기 위해이 python code를 실행할 수 있습니다 : 그것은 타임 스탬프, 이벤트 유형 및 식별자와 값을 포함하는 간단한 구조체이다.
높은 수준의 모듈 python-evdev을 사용할 수도 있습니다.

#!/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) 

샘플 출력 :

(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)