개발 노드 입력 이벤트 리디렉션 또는 트리거

개발 노드 입력 이벤트 리디렉션 또는 트리거

개발 노드에 사용 가능한 데이터가 있을 때 이벤트를 트리거할 수 있습니까? 간단히 말해서, 일부 위젯 장치가 USB를 통해 내 Linux 시스템에 정보를 보내는 경우 데이터로 작업을 수행하는 프로세스를 생성하는 일부 이벤트 핸들러에 갇힐 수 있습니까?

물론 들어오는 데이터를 기다리는 서비스를 언제든지 실행할 수 있지만 어떤 옵션을 사용할 수 있는지 확인하고 싶었습니다.

또한 개발 노드에서 수신 대기 중인 항목이 없으면 외부에서 해당 노드에 작성된 데이터는 어떻게 되나요? 버퍼링이 있나요? 얼마나 오랫동안?

내 장치는 직렬 변환기 브리지입니다. 아래에 등록됩니다 /dev/ttyUSBx. 아무 문제 없이 들어오는 데이터를 읽거나 양쪽 끝에서 데이터를 쓸 수 있습니다. 드라이버 유형이 그냥 통과하고 있었던 것 같아요. 실행할 스크립트를 등록할 수 있는지 궁금합니다. 아니면 적어도 일종의 콜백 함수일 수도 있습니다. 하지만 현 시점에서는 이 작업을 수행하기 위해 자체 백엔드 서비스를 작성하도록 선택할 수도 있다고 생각합니다.

답변1

각 유형의 USB 장치는 고유한 방식으로 데이터를 전송합니다. 데이터로 무엇을 할지 결정하는 것은 운전자의 몫입니다.

직렬 장치를 통해 전송된 데이터의 경우 읽기만 하면 됩니다./dev/ttyUSBn

</dev/ttyUSB0 awk '
    {data += $0}
    /record end/ {print $0 | "process-one-record #" NR}
'

관련 정보