2012-05-02 37 views
3

我有我的iPod Touch(4G,越獄,iOS 5.0)連接到通過基座連接器(最可能使用Apple配件協議)發送命令的擴展塢(iPod製造) iPod,例如開始和停止播放。由於iPod已越獄,我可以看到命令進入iPod時,如下所示(這裏重複按下播放站上的播放/暫停按鈕,每行等於一個按鈕按下):來自外部設備的意外輸入 - 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或另一個實用程序,我可以使用,以便我能夠正確看到請求?或者我需要改變波特率或類似的東西?

編輯:每隔一段時間,一個按鈕按下的兩行輸入顯示,而不是一個。這可能是一個對齊/緩衝問題?

回答

0

顯然問題出在波特率,這是(默認情況下)爲/dev/tty.iap 9600。對於使用cfsetspeed將波特率更改爲19200的小型C程序(不知道如何設置odhexdump的波特率或將其更改爲直接串口),使用cfsetspeed時,來自外部附件的命令輸入始終保持一致。

+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之前一直存在,然後一些系統進程將原來的設置放回去。 –