对于处于同样困境的人来说:

我找不到一个纯Python工作的解决方案。在

我求助于一个非常简单的“C”程序(大部分是表):#include

#include

#include

#include

#include

#include

void INThandler() {

exit(0);

}

char ttab[] = {

0, 27, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '\b', /* Backspace */

'\t', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']','\n', /* Enter key */

0, 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';','\'', '`', 0, /* Left shift */

'\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', 0, /* Right shift */

'*',

0, /* Alt */

' ', /* Space bar */

0, /* Caps lock */

0, /* 59 - F1 key ... > */

0, 0, 0, 0, 0, 0, 0, 0,

0, /* < ... F10 */

0, /* 69 - Num lock*/

0, /* Scroll Lock */

0, /* Home key */

0, /* Up Arrow */

0, /* Page Up */

'-',

0, /* Left Arrow */

0,

0, /* Right Arrow */

'+',

0, /* 79 - End key*/

0, /* Down Arrow */

0, /* Page Down */

0, /* Insert Key */

0, /* Delete Key */

0, 0, 0,

0, /* F11 Key */

0, /* F12 Key */

0, /* All other keys are undefined */

};

char ntab[] = {

0, 27, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '\b', /* Backspace */

'\t', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']','\n', /* Enter key */

0, 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';','\'', '`', 0, /* Left shift */

'\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', 0, /* Right shift */

'*',

0, /* Alt */

' ', /* Space bar */

0, /* Caps lock */

0, /* 59 - F1 key ... > */

0, 0, 0, 0, 0, 0, 0, 0,

0, /* < ... F10 */

0, /* 69 - Num lock*/

0, /* Scroll Lock */

0, /* Home key */

0, /* Up Arrow */

0, /* Page Up */

'-',

0, /* Left Arrow */

0,

0, /* Right Arrow */

'+',

0, /* 79 - End key*/

0, /* Down Arrow */

0, /* Page Down */

0, /* Insert Key */

0, /* Delete Key */

0, 0, 0,

0, /* F11 Key */

0, /* F12 Key */

0, /* All other keys are undefined */

};

char stab[] = {

0, 27, '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', 0, /* Backspace */

0, 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}', 0, /* Enter key */

0, 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', '"', 0,'\n', /* Left shift */

0, 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '', '?', 0, /* Right shift */

'*',

0, /* Alt */

' ', /* Space bar */

0, /* Caps lock */

0, /* 59 - F1 key ... > */

0, 0, 0, 0, 0, 0, 0, 0,

0, /* < ... F10 */

0, /* 69 - Num lock*/

0, /* Scroll Lock */

0, /* Home key */

0, /* Up Arrow */

0, /* Page Up */

'-',

0, /* Left Arrow */

0,

0, /* Right Arrow */

'+',

0, /* 79 - End key*/

0, /* Down Arrow */

0, /* Page Down */

0, /* Insert Key */

0, /* Delete Key */

0, 0, 0,

0, /* F11 Key */

0, /* F12 Key */

0, /* All other keys are undefined */

};

int main() {

char devname[] = "/dev/input/event0";

int device = open(devname, O_RDONLY);

struct input_event ev;

int shift = 0;

char line[4096], *p = line;

signal(SIGINT, INThandler);

fputs("starting\n", stdout);

//fputs("starting\n", stderr);

while (1) {

read(device, &ev, sizeof(ev));

if (ev.type == 1) {

if (ev.code == 42)

shift = ev.value;

else if (ev.value) {

//printf("Key: %i State: %i\n", ev.code, ev.value);

char *t = shift? stab: ntab;

char ch = t[ev.code];

//printf("Key: %02d State: %d [%c]\n", ev.code, ev.value, ch);

if (ch == '\n') {

*p = '\0';

fputs(line, stdout); fputc('\n', stdout); fflush(stdout);

//fputs(line, stderr); fputc('\n', stderr); fflush(stderr);

p = line;

} else

*p++ = ch;

}

}

}

}

。。。从Python驱动:

^{pr2}$

我相信Python驱动程序可以简化。这是我(工作)申请表中的逐字记录。在

嗨!在

linux系统中条码如何识别的,如何(可靠地)在嵌入式(无头)Linux中读取USB条形码扫描仪?...相关推荐

  1. Linux系统下基于IO多路复用的大规模可靠UDP服务器的实现(三)

    七.可靠性UDP的优化细节 4.5章节中,我们提到了KCP本身的优化提高,由于可靠性UDP是这个方案是否优秀的关键,而各种可靠UDP协议中都有TCP算法的影子,所以下面我们再仔细的谈一下这个部分.按照 ...

  2. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

  3. e5运行Linux系统,CPU-Z 1.96更新介绍,可用Wine及deepin-wine5在Linux中运行

    CPU-Z 1.96 发布了,提供 cpu-z_1.96-cn.zip 包下载,这款软件能用 Wine 或 deepin-wine5 在 Linux 操作系统中运行.当然,Linux 用户也可以改用 ...

  4. Linux系统的基本使用指南(速成,帮助快速上手使用Linux系统)

    Linux 一.Linux背景知识 1.什么是linux Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次 ...

  5. linux系统需要备份吗,准备好了吗?请备份你的Linux系统

    一.我们需要备份什么? 我的 Linux 系统是基于 Redhat 的Redhat Linux 9.0,同时配置了诸如 MySQL.PHP.Apache 等基础服务,同时又配有 Awstats.MRT ...

  6. linux系统运行application,[分享]分享曾经做过的一个嵌入式系统application框架 | 勤奋的小青蛙...

    =================第一天================ 前言: 本文只是分享下自己曾经开发过的一个嵌入式Linux+Qt的系统应用层开发框架,只是分享出来,算不上什么高深的东西,希望 ...

  7. linux系统32和64的区别,32位和64位的Linux系统区别

    区别之一:当初设计的定位不同 64位操作系统的设计定位是:满足机械设计和分析.三维动画.视频编辑和创作,以及科学计算和高性能计算应用程序等领域,这些应用领域的共同特点就是需要有大量的系统内存和浮点性能 ...

  8. linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...

    本文主要向大家介绍了Linux系统运维的如何使用Wine在Linux下玩魔兽世界,通过具体的步骤向大家展现,希望对大家学习Linux系统运维有所帮助. 目标:在 Linux 中运行魔兽世界 发行版:适 ...

  9. linux有趣程序视频,Linux系统下也玩视频编辑 10个非常流行的免费Linux视频软件

    为了满足广大Linux爱好者的需要,我们为大家搜罗基于Linux操作系统的优秀应用软件.首先,让我们一起来认识一些面向Ubuntu Linux的免费的视频编辑工具. PiTiVi是一个使用Python ...

最新文章

  1. 每天2亿美元投入AI领域,1/10砸向自动驾驶,中国AI论文首超全欧洲 | 斯坦福全球AI年度报告...
  2. HTML5实例教程:OL标签的start属性和reversed属性
  3. [翻译]IE8下VML的变化
  4. Android记录24-WebView实现白天/夜间阅读模式
  5. s:iterator标签的使用
  6. Python operator.lt()函数与示例
  7. ONAP如何将Open-O和ECOMP数百万行代码合并?
  8. red hat 查看mysql密码_Red Hat 下 MySQL root密码恢复
  9. 简单学习Infopath
  10. 机器学习基石1 学习笔记
  11. CF1027D Mouse Hunt(topo总结)
  12. 如何给Mac挑选外接显示器?苹果外接显示器选购指南
  13. 接口测试平台代码实现2:本平台项目目录解析
  14. 查看oracle数据库(database)的版本命令
  15. psid mysql_mysql存储过程
  16. 手把手教你python实现校园网自动连接,零基础也可以轻松实现
  17. 51信用卡清退P2P业务,大量资金逾期!投资人或难保本金
  18. thinkphp5 配置多个数据库
  19. apue学习第九天——标准I/O库(第五章)
  20. Python初学者必会的3款代码编辑器

热门文章

  1. 200m的共享虚拟主机够用吗
  2. python并发入门(part5 event对象)
  3. 什么是ATM(异步传输模式)?—Vecloud微云
  4. 配置中心框架IConfCenter
  5. angular2新手学习笔记(1)概述
  6. 137.三网?哪三网?139.网络协议三要素?141.网络安全有哪些方面?
  7. 107.网络服务质量包括哪些(QoS)
  8. 浅析Codewarrior、IAR和Keil MDK三大开发环境优缺点
  9. 2019年十大AI创业死亡名单:无人车机器人为主,B轮阵亡最多
  10. Python语言编程之正则表达式模式