私は最近、かなり奇妙なタスクに直面しており、1 つの結果として、非 X Linux コンピュータの端末を制御するために DTMF (別名「タッチ トーン」) トーンを使用する必要がありました。コンピューターには、ALSA を介してアクセスできるモデムがあり、したがって、私が入力を読み取っているのは sox "rec" プログラムです。それ以外の場合、問題のコンピューターは完全に分離されており、イーサネットやその他のネットワーク インターフェイスはまったくありません。私が使用している Goertzel アルゴリズムの実装は、出力の唯一のソースである eSpeak 音声合成エンジンと同様に、非常にうまく機能します。これは、すべての Touch Tone 電話で動作するはずです。入力 (入力は 8 進数で、一度に 1 ASCII バイト) とdash
シェルはフィードバックします -- プロンプト、コマンドからの出力など、制御文字に ASCII ニーモニックを使用します。
私が対話するために使用している現在の方法とdash
、それを介して起動されるプログラムはpexpect
モジュールです。ただし、必要に応じて、カーソルが置かれている行の内容全体を読み戻すことができるようにする必要があり、これを実行できたことを思い出せませんpexpect
(そうであれば、わかりません)。私が考えることができる他の唯一の解決策は、何らかの形で Python を使用して、キーボードとコンソールのドライバーを制御するか、またはそのように動作させることです。
これは、実際にそれを行う唯一の方法ですか (もしそうなら、Python でも可能ですか?)、またはコンソールの内容に直接アクセスする別の方法はありますか?
編集:運が悪かったので、最近、PExpect の SVN バージョンに pexpect.screen があることがわかりました。ただし、その下で実際にプログラムを実行する方法はありません。その展開を見守っていきたい。