Ubuntu 14.04 - 다중 Griffin 기술 Powermate 손잡이

Ubuntu 14.04 - 다중 Griffin 기술 Powermate 손잡이

Ubuntu 14.04를 실행 중이고 여러 Griffin powermate 노브를 실행하고 싶습니다.https://store.griffintechnology.com/powermate. 오디오 컨트롤이 아닌 다른 키에 매핑하고 싶습니다. 로봇 관절 위치를 제어하기 위해 그 중 4개(어쩌면 그 이상)를 사용하고 싶습니다. ROS를 사용하여 명령을 캡처하고 로봇에 전달합니다.

다음 명령의 수정된 버전을 사용하여 첫 번째 명령을 실행했습니다.https://askubuntu.com/questions/138148/need-help-with-griffin-powermate-usb-volume-controller-new-64-bit-desktop-ub

하지만 여러 컨트롤러를 사용할 수는 없습니다. KERNEL=xx 값이 노브 사이에서 변경된 유일한 값이기 때문에 udev 규칙을 수정한 다음 .evrouterrc 파일을 "Griffin Technology Powermate" 대신 /dev/input/event*로 변경하려고 시도했지만 그건 정말 허용되지 않았습니다. 동시에 사용하십시오.

또한 두 명의 사용자(powermate, powermate2)를 추가하고 두 컨트롤러(evrouterrc, evrouterrc2)에 대한 단계를 복사하려고 시도했지만 evrouter에서 인스턴스 실행을 허용하지 않습니다.

이제 어떤 조치를 취해야 할지 혼란스럽습니다. udev 규칙과 evrouter를 사용하여 동일한 장치의 여러 인스턴스를 고려하고 서로 다른 기능을 할당할 수 있습니까? 아니면 다른 접근 방식을 찾아야 합니까? 아니면 Linux 호환 완전 회전 손잡이를 사용할 수 있다는 것을 알고 계십니까?

답변1

보고된 이벤트를 검색하여 각 USB 장치의 제어를 스크립트로 작성할 수 있습니다.

입력 장치 이벤트에서 쉘 스크립트를 실행하는 방법

각 장치에 대한 스크립트를 작성하고 백그라운드에서 실행하면 됩니다. 선택한 프로그래밍 언어를 사용하여 이벤트 스트림을 폴링할 수도 있습니다. 입력 스트림을 처리하는 방법에 대한 아이디어는 링크된 문서에 있습니다.

연결된 포트로 장치를 지정해야 하는 경우 /dev/by-path 또는 /dev/by-id를 사용해 보십시오. 장치를 구성 가능하게 만들고 싶다면 모든 입력을 반복하고 이름을 분류할 수 있습니다. cat /proc/bus/input/devices

후손을 위해 복사하여 붙여넣고 있습니다.

#!/bin/bash

device='/dev/input/by-id/usb-Targus_Laser_Presentation_Remote-if02-event-kbd'
event_blank='*code 48 (KEY_B), value 1*'
event_esc='*code 1 (KEY_ESC), value 1*'
event_f5='*code 63 (KEY_F5), value 1*'
event_prev='*code 104 (KEY_PAGEUP), value 1*'
event_next='*code 109 (KEY_PAGEDOWN), value 1*'

evtest "$device" | while read line; do
  case $line in
    ($event_blank) echo "BLANK SCREEN" ;;
    ($event_f5)    echo "F5" ;;
    ($event_esc)   echo "ESCAPE" ;;
    ($event_prev)  echo "PREVIOUS" ;;
    ($event_next)  echo "NEXT" ;;
  esac
done

이벤트 번호를 이용해서 장치를 evtest찾을 수 있었는데 /dev/input/event18, 그 번호는 시스템에 있는 장치와 연결된 순서에 따라 다를 수 있습니다.

udevadm info /dev/input/event18그래서 기기의 고유 ID를 알아 내곤 했는데요

S: input/by-id/usb-Targus_Laser_Presentation_Remote-if02-event-kbd

마지막으로 다시 사용하여 장치에서 모든 이벤트를 캡처하고 이를 명령문에 사용할 evtest수 있었습니다 .case

관련 정보