我正在尝试将从/ dev / input / event0读取的键盘事件从定义的值转换为未运行X或终端的嵌入式应用程序中的ASCII等效项.
我认为这应该通过Linux中定义的键盘映射功能来完成,而不仅仅是创建我自己的std :: map<>但我似乎无法找到一个好的起点.到目前为止,我发现的大多数示例都假设我使用的是X窗口或终端.
最佳答案
文本输入(传统美国
键盘和7位ASCII标准的非常简单的情况除外)是一个非常复杂的领域.我非常强烈建议您使用X客户端执行此操作,您可以在其中利用所有现有的输入
方法.
但是如果你必须,并且你对一种键盘和一种语言感到满意,那么你可以通过解释事件就像终端一样.检查/usr/include/linux/input.h中的定义值.跟踪Shift和Ctrl键的位置(非ASCII键,如Alt,Fn等……当然由你来解释)并在键上事件中发出相应的字节.如果默认值对您的应用程序不起作用,也许您也想要实现自动重复功能.
但基本上:不.这比你似乎意识到的更难(!)难题.