/dev/hidraw 출력을 터미널 대신 Python 애플리케이션으로 보내는 방법

/dev/hidraw 출력을 터미널 대신 Python 애플리케이션으로 보내는 방법

USB 바코드 스캐너가 있고 데이터베이스에서 데이터를 수집 /dev/hidraw0하고 데이터베이스에 입력하는 Python 스크립트를 실행하고 있습니다. 문제는 스캐너가 코드를 수집할 때마다 이를 터미널로 보내고 실제로 tty를 통해 시스템에 로그인을 시도한다는 것입니다.

HID가 터미널에 액세스하고 로그인을 시도하는 것을 비활성화하면서도 Python 스크립트가 데이터를 수집하도록 허용하는 방법이 있습니까?

도움을 주셔서 미리 감사드립니다.

답변1

/dev/input/path-to-your-scanner옵션으로 엽니다 grab. 대신 시작 중에 지속되는 심볼릭 링크가 있는 경로를 사용하세요 /dev/input/eventX.

예를 들어 참조하십시오.여기Python에서 쉽게 작동할 수 있게 해주는 Python evdev 라이브러리입니다.

어떤 이유로 HID 보고서 자체가 필요하지 않은 한 필요하지 않은 hidraw 수준을 얻을 수 없습니다.

hidraw 레벨이 정말로 필요한 경우에는 까다로워집니다. hidraw 레벨을 입력 입력 레벨에서 분리해야 합니다. 아니면 입력 장치와 hidraw 장치를 동시에 열 수도 있습니다. 저는 그런 것을 시도한 적이 없습니다.

답변2

다음은 evdev 라이브러리를 사용하고 @dirkt가 제안한 스크래핑 기능을 제공하는 USB 바코드 스캐너용으로 작성한 Python 스크립트입니다.

https://gist.github.com/michalfapso/1755e8a35bb83720c2559ce8ffde5f85

관련 정보