来自外部设备的意外输入 - iOS

时间:2012-05-02 17:52:00

标签: iphone ios serial-port ipod external-accessory

我的iPod Touch(4G,越狱,iOS 5.0)连接到扩展坞(Made for iPod),通过扩展坞连接器(很可能使用Apple附件协议)向iPod发送命令,例如:开始和停止播放。当iPod被越狱时,我可以看到当我接到iPod时出现的命令,如下所示(这里重复按下扩展坞上的播放/暂停按钮,每行等于按下一个按钮):

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或我可以使用的其他实用程序,以便我能够正确地看到请求?或者我需要更改波特率或类似的东西吗?

编辑:每隔一段时间,只需显示一行输入的两行输入,而不只是一行。这可能是对齐/缓冲问题吗?

1 个答案:

答案 0 :(得分:0)

显然问题出在波特率上,/dev/tty.iap(默认情况下)为9600。使用小型C程序(不知道如何设置odhexdump的波特率或直接更改串口的波特率),使用cfsetspeed将波特率更改为19200 ,来自外部附件的命令输入始终相同。