4

組み込みLinuxターゲットで実行される自動化スクリプトを書いています。

スクリプトの一部には、ターゲットでアプリを実行し、stdoutからデータを取得することが含まれます。ここでのStdoutは、ターゲットへのsshターミナル接続です。

ただし、このデータは、特定のキーが押された場合にのみstdoutで利用でき、キーを押す必要があるのは、ターゲットにSSH接続したホストシステムではなく、組み込みターゲットに接続されたキーボードで行う必要があります。これをシミュレートする方法はありますか?

編集:私が必要なものについて詳しく説明します-

組み込みLinux(通常のLinuxのように機能する)ターゲットで実行するOpenGLアプリがあります。これにより、組み込みシステムのディスプレイデバイスにいくつかのグラフィックが表示されます。ターゲットに接続されているキーボードのfを押すと、fpsデータがターゲットを制御するssh端末に出力されます。

このOpenGLアプリを実行してfpsスコアを取得するプロセスを自動化しているため、ユーザーが埋め込まれたターゲットキーボードでキーストロークを入力することはもちろん、キーボードがターゲットに接続されることも期待できません。どうすればこれを行うことができますか?

編集2:expectはsshターミナルにのみストロークを発行できるため、Expectは機能しません。アプリに送信する必要のあるキーストロークは、ターゲットに接続されているキーボードからのものである必要があります(これは、実際にキーボードを接続せずにシミュレーションが必要な部分です)。

ありがとう。

4

5 に答える 5

5

これはまさにExpectのドメインであり、stackoverflowは偶然に独自のタグで認識します。

必要に応じてExpectをほとんど学習せずに、目的のOpenGL自動化を実現する最も簡単な方法は、autoexpectを使用することです。

于 2010-12-28T11:48:51.377 に答える
2

私は今家にいないので(Linuxが手元にないので)、実際に試すことはできません。ただし、ターゲットの/ devの下にあるキーボードノードに目的のキー押下(おそらくキーボードコード)をエコーすると、キーストロークをエミュレートできるはずです。これは、SSHを介して実行できます。

于 2010-12-28T11:42:54.837 に答える
1

QAと製造テストの両方を満たすソリューションは、組み込みデバイスにとってキーボードのように見え、外部制御を備えたハードウェアを構築することです。入力がどれほど複雑である必要があるかに応じて、これは、スペースバーがテープで留められた店で購入したキーボードから、キーボード側でPS / 2またはUSBを話しているマイクロコントローラー、およびコントロール上の他の何か(シリアル、USB、イーサネット)まで何でもかまいません。側。

LUFAライブラリを使用すると、AT90USBシリーズのパーツを使用してUSBキーボードを非常に簡単に作成できます。それらのいくつかは2つのUSBポートを備えており、別のシステムに接続されたUSBによって自動化できます(または、生意気になりたい場合は、キーボードと制御デバイスの両方として列挙し、組み込みシステムを介してキーボード入力をループさせることができます)。

于 2010-12-28T19:57:28.720 に答える
0

どうですかecho "f" > /dev/console ?

于 2011-01-08T13:26:49.470 に答える
0

入力を含むテキストファイルを作成し、次のように実行するのはどうですか?

cat inputs.txt | target_executable

input.txtの内容は、次のようになります。

y
y
y
n
y
于 2014-03-27T05:14:28.333 に答える