我最近面临了一个相当奇怪的任务,其中一个结果是需要能够使用DTMF(也称为“触摸音调”)音调来控制一个非X Linux计算机的终端。该计算机具有可以通过ALSA访问的调制解调器,因此我正在通过sox“rec”程序读取输入。所使用的Goertzel算法实现非常好,而eSpeak语音合成引擎是唯一的输出来源;这应该适用于任何触摸音调电话。它会读回输入(输入是八进制数字,每次一个ASCII字节),以及
我目前使用与
dash
shell反馈的任何内容--提示、命令的输出等,使用控制字符的ASCII助记符。该计算机在其他方面完全隔离,没有任何以太网或其他网络接口。我目前使用与
dash
及其启动的程序进行交互的方法是pexpect
模块。然而,我需要它能够在需要时读取光标所在行的全部内容,我不记得pexpect
能够做到这一点(如果可以,我无法判断)。我能想到的唯一其他解决方案是以某种方式使用Python来控制或作为键盘和控制台驱动程序。
这确实是唯一的解决方法吗(如果是,用Python是否可行?),还是有其他直接访问控制台内容的方法?
编辑:令人惊喜的是,我最近发现PExpect的SVN版本具有pexpect.screen。但是,它没有任何实际运行程序的方法。我将密切关注其开发。
dash
)? - mmiratereadline
的情况下做到这一点? - mmiratesh
的唯一目的是使用readline
,那么可以使用 Python 绑定 来实现 readline。 - Anish