2012-05-02 2 views
3

도크 커넥터 (대부분 Apple 액세서리 프로토콜 사용)를 통해 명령을 보내는 도킹 스테이션 (iPod 용)에 연결된 iPod Touch (4G, jailbroken, iOS 5.0)를 가지고 있습니다. 아이팟, 예. 재생을 시작하고 중지합니다. iPod이 jailbroken되면서, 다음과 같이 iPod에 ssh 할 때 명령을 볼 수 있습니다 (여기서는 도킹 스테이션의 재생/일시 중지 버튼을 반복적으로 누를 때마다 각 행이 하나의 버튼 누름과 같습니다) :외부 장치에서 예기치 않은 입력 - iOS

iPod Touch:~ mobile$ od /dev/tty.iap 
0000000 102000 177020 004017 000360 004017 000360 144204 004317 
0000020 000340 002020 000376 004017 177430 002010 000376 000440 
0000040 147730 160010 004377 147740 160010 020000 154001 102000 
0000060 177020 020400 177000 102000 177710 160010 007400 014010 
0000100 000377 004417 177430 007400 014011 000377 002020 020400 
0000120 177000 004000 000300 140010 004377 000340 000440 000344 

여기 입력 내용이 항상 다른 이유는 무엇입니까? 동일한 버튼을 누르면 입력의 각 줄이 동일 할 것으로 예상됩니다 (시작 부분의 오프셋 표시자를 분명히 무시). 그렇지 않으면 재생/일시 중지 단추가 예상대로 작동합니다 (이 od 명령이 실행되지 않을 때).

내 질문은 : od 또는 내가 요청을 올바르게 볼 수 있도록 사용할 수있는 다른 유틸리티를 호출하는 더 좋은 방법이 있습니까? 아니면 전송 속도를 변경해야합니까?

EDIT : 한 번에 하나씩 버튼을 누를 때마다 두 줄의 입력이 항상 표시됩니다. 그것은 정렬/버퍼링 문제 일 수 있습니까?

답변

0

보봇 (Boe-rate)과 관련된 문제는 기본적으로 9600에서 /dev/tty.iap입니다. 작은 C 프로그램 (od 또는 hexdump의 전송 속도를 설정하는 방법 또는 직렬 포트를 직접 변경하는 방법을 모르는 경우)을 사용하여 전송 속도를 cfsetspeed을 사용하여 19200으로 변경하면 외부 액세서리의 명령 입력이 일관되게 동일하게 나타납니다 .

+0

'stty -F /dev/tty.iap 19200'은 커맨드 라인을 통해 시리얼 속도를 설정하는 방법입니다. 현재 설정을 표시하려면'stty -F/dev/tty.iap'을 시도하고 stty :'stty --help'에 대해 더 배우십시오. –

+0

나를 위해 작동하지 않는 것, 여기 내 질문을 참조하십시오 : http://unix.stackexchange.com/q/37972/18401 – newenglander

+0

그건 정말 작동합니다. 그러나 일부 다른 프로세스가이를 다시 변경하고있는 것으로 보입니다. 다음과 같은 시스템 메시지가 표시됩니다. "직렬 포트 iap 해제"다음에 "직렬 포트 iap 재실행"이 뒤 따르기 때문에 변경 사항은 tty를 닫고 일부 시스템 프로세스가 원래의 설정으로 되돌릴 때까지만 지속됩니다. –