Bash 如何:在shell中模拟键盘输入,使应用程序在嵌入式目标中运行

Bash 如何:在shell中模拟键盘输入,使应用程序在嵌入式目标中运行,bash,shell,keyboard,embedded-linux,keystroke,Bash,Shell,Keyboard,Embedded Linux,Keystroke,我正在编写一个在嵌入式linux目标上运行的自动化脚本 脚本的一部分涉及在目标上运行应用程序并从标准输出获取一些数据。Stdout这是我与目标的ssh终端连接 但是,只有在按下某些键并且按键必须在连接到嵌入式目标的键盘上进行时,才可以在标准输出上使用此数据,而不是在我已通过ssh连接到目标的主机系统上。有没有办法来模拟这个 编辑: 详细说明我需要什么- 我有一个OpenGL应用程序,运行在嵌入式linux(与普通linux类似)目标上。这将在嵌入式系统的显示设备上显示一些图形。在连接到目标的键盘

我正在编写一个在嵌入式linux目标上运行的自动化脚本

脚本的一部分涉及在目标上运行应用程序并从标准输出获取一些数据。Stdout这是我与目标的ssh终端连接

但是,只有在按下某些键并且按键必须在连接到嵌入式目标的键盘上进行时,才可以在标准输出上使用此数据,而不是在我已通过ssh连接到目标的主机系统上。有没有办法来模拟这个

编辑: 详细说明我需要什么-

我有一个OpenGL应用程序,运行在嵌入式linux(与普通linux类似)目标上。这将在嵌入式系统的显示设备上显示一些图形。在连接到目标的键盘上按f键将fps数据输出到ssh终端,我从该终端控制目标

因为我正在自动运行这个OpenGL应用程序并获取fps分数,所以我不能期望键盘连接到目标,更不用说期望用户在嵌入式目标键盘上输入击键了。我该怎么办

编辑2: Expect无法工作,因为Expect只能向ssh终端发出笔划。我需要发送到应用程序的击键必须来自连接到目标的键盘(这是需要模拟的部分,但实际上没有键盘连接到它)

谢谢。

我现在不在家(所以手头没有linux),所以无法实际试用。但是,如果将所需的按键(可能是键盘代码)回送到目标上位于/dev下的键盘节点,则应该能够模拟击键。这可以通过ssh完成

这正是stackoverflow的域,stackoverflow顺便用它自己的域来识别它


实现您所追求的OpenGL自动化的最快方法是,尽可能少地学习所需的内容,可能是通过

一个既能满足QA又能满足制造测试的解决方案是构建一块硬件,它看起来像嵌入式设备的键盘,并且具有外部控制。根据输入需要的复杂程度,可以是商店购买的带有空格键的键盘,也可以是微控制器在键盘侧使用PS/2或USB,也可以是控制侧的其他设备(串行、USB、以太网)


使用该库,使用AT90USB系列部件制作USB键盘非常容易。其中一些甚至有2个USB端口,可以通过连接到另一个系统的USB实现自动化(或者如果你想变得厚颜无耻,可以让它同时列举键盘和控制设备,并通过嵌入式系统循环键盘输入)。

如何
echo“f”>/dev/console?

如何使用输入创建文本文件并按如下方式运行

cat inputs.txt | target_executable
inputs.txt的内容可以如下所示:

y
y
y
n
y

如果只向程序发送一条消息,然后执行,而不是将其放入按键,不是更容易(也更便于携带)吗?我无法访问这个OGL二进制文件的代码,因为尝试与程序通信正是linux中存在套接字或管道的原因。这可能也很有用:我喜欢这个想法,不幸的是,我不想必须连接键盘才能在/dev中拥有一个节点。你不必这样做,你可以只使用mknod。我认为奥佩尔曼的建议值得一试。在另一个方向上,您可以简单地在嵌入式设备上安装Expect吗?如果它离Linux足够近,那应该不难。本·杰克逊(Ben Jackson)在上面对模拟键盘的描述缺乏其他方面的内容,这是一个目标。Expect不适合我的需要。请检查编辑2。我是根据我在expect上找到的有限阅读材料来假设这一点的。如果你有更好的主意,请纠正我。