我正在一个项目中,需要编写一个简单的驱动程序,接收来自USB设备的输入并根据接收到的消息在GUI上执行操作(类似于编写USB鼠标驱动程序,但使用自己的协议)。 我正在寻找这种可能性,并发现像LDTP这样的软件测试自动化工具已经可以生成鼠标点击和键盘敲击等操作。 是否有其他可用的API?如果我的团队对C语言有很好的了解,但没有Linux经验,需要多长时间才能完成?
你基本上有两个选择:
XTestFakeDeviceKeyEvent
, XTestFakeRelativeMotionEvent
等)第一个选项利用了在大多数(所有?)X服务器中存在的虚拟输入设备(在shell中尝试运行xinput list
)。每次调用XTestFake*
函数都会生成一个X输入消息。
第二个选项是一个内核模块,它允许用户应用程序创建输入设备并发送输入事件。简单地打开/dev/uinput
设备,发送一些ioctl
来配置它,然后直接write
输入事件。
当然,你也可以编写一个输入内核驱动程序!