【发布时间】:2011-08-15 19:48:48
【问题描述】:
我最近遇到了一项相当奇怪的任务,其中一个结果是必须能够使用 DTMF(又名“按键音”)音调来控制非 X Linux 计算机的终端。计算机有一个调制解调器,可以通过 ALSA 访问,因此还有 sox“rec”程序,我正在通过它读取输入。有问题的计算机是完全隔离的,没有任何以太网或其他网络接口。我使用的 Goertzel 算法实现效果非常好,作为唯一输出源的 eSpeak 语音合成引擎也是如此;这应该适用于任何按键式电话。它读回输入(输入是八进制数字,一次一个 ASCII 字节)和 dash shell 反馈的任何内容——提示、命令的输出等,使用 ASCII 助记符作为控制字符。
我当前用于与dash 交互的方法以及通过它启动的程序是pexpect 模块。但是,我需要它能够根据需要读回光标所在行的全部内容,我不记得pexpect 能够做到这一点(如果是,我不知道。 )。我能想到的唯一其他解决方案是以某种方式使用 Python 来控制或充当键盘和控制台驱动程序。
这确实是实现它的唯一方法(如果是这样,Python 甚至可以吗?),还是有其他直接访问控制台内容的方法?
编辑:运气不好,最近才发现SVN版本的PExpect有pexpect.screen。但是,它没有任何方法可以在其下实际运行程序。我将不得不密切关注它的发展。
【问题讨论】:
标签: python linux keyboard console dtmf