热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

对于处于同样困境的人来说:我找不到一个纯Python工作的解决方案。在我求助于一个非常简单的“C”程序(大部分是表):#include#include#

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

我找不到一个纯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 */

&#39;-&#39;,

0, /* Left Arrow */

0,

0, /* Right Arrow */

&#39;&#43;&#39;,

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[] &#61; {

0, 27, &#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;, &#39;6&#39;, &#39;7&#39;, &#39;8&#39;, &#39;9&#39;, &#39;0&#39;, &#39;-&#39;, &#39;&#61;&#39;, &#39;\b&#39;, /* Backspace */

&#39;\t&#39;, &#39;q&#39;, &#39;w&#39;, &#39;e&#39;, &#39;r&#39;, &#39;t&#39;, &#39;y&#39;, &#39;u&#39;, &#39;i&#39;, &#39;o&#39;, &#39;p&#39;, &#39;[&#39;, &#39;]&#39;,&#39;\n&#39;, /* Enter key */

0, &#39;a&#39;, &#39;s&#39;, &#39;d&#39;, &#39;f&#39;, &#39;g&#39;, &#39;h&#39;, &#39;j&#39;, &#39;k&#39;, &#39;l&#39;, &#39;;&#39;,&#39;\&#39;&#39;, &#39;&#96;&#39;, 0, /* Left shift */

&#39;\\&#39;, &#39;z&#39;, &#39;x&#39;, &#39;c&#39;, &#39;v&#39;, &#39;b&#39;, &#39;n&#39;, &#39;m&#39;, &#39;,&#39;, &#39;.&#39;, &#39;/&#39;, 0, /* Right shift */

&#39;*&#39;,

0, /* Alt */

&#39; &#39;, /* 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 */

&#39;-&#39;,

0, /* Left Arrow */

0,

0, /* Right Arrow */

&#39;&#43;&#39;,

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[] &#61; {

0, 27, &#39;!&#39;, &#39;&#64;&#39;, &#39;#&#39;, &#39;$&#39;, &#39;%&#39;, &#39;^&#39;, &#39;&&#39;, &#39;*&#39;, &#39;(&#39;, &#39;)&#39;, &#39;_&#39;, &#39;&#43;&#39;, 0, /* Backspace */

0, &#39;Q&#39;, &#39;W&#39;, &#39;E&#39;, &#39;R&#39;, &#39;T&#39;, &#39;Y&#39;, &#39;U&#39;, &#39;I&#39;, &#39;O&#39;, &#39;P&#39;, &#39;{&#39;, &#39;}&#39;, 0, /* Enter key */

0, &#39;A&#39;, &#39;S&#39;, &#39;D&#39;, &#39;F&#39;, &#39;G&#39;, &#39;H&#39;, &#39;J&#39;, &#39;K&#39;, &#39;L&#39;, &#39;:&#39;, &#39;"&#39;, 0,&#39;\n&#39;, /* Left shift */

0, &#39;Z&#39;, &#39;X&#39;, &#39;C&#39;, &#39;V&#39;, &#39;B&#39;, &#39;N&#39;, &#39;M&#39;, &#39;&#39;, &#39;?&#39;, 0, /* Right shift */

&#39;*&#39;,

0, /* Alt */

&#39; &#39;, /* 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 */

&#39;-&#39;,

0, /* Left Arrow */

0,

0, /* Right Arrow */

&#39;&#43;&#39;,

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[] &#61; "/dev/input/event0";

int device &#61; open(devname, O_RDONLY);

struct input_event ev;

int shift &#61; 0;

char line[4096], *p &#61; line;

signal(SIGINT, INThandler);

fputs("starting\n", stdout);

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

while (1) {

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

if (ev.type &#61;&#61; 1) {

if (ev.code &#61;&#61; 42)

shift &#61; ev.value;

else if (ev.value) {

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

char *t &#61; shift? stab: ntab;

char ch &#61; t[ev.code];

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

if (ch &#61;&#61; &#39;\n&#39;) {

*p &#61; &#39;\0&#39;;

fputs(line, stdout); fputc(&#39;\n&#39;, stdout); fflush(stdout);

//fputs(line, stderr); fputc(&#39;\n&#39;, stderr); fflush(stderr);

p &#61; line;

} else

*p&#43;&#43; &#61; ch;

}

}

}

}

。。。从Python驱动&#xff1a;

^{pr2}$

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

嗨&#xff01;在



推荐阅读
  • 题目要求维护一个数列,并支持两种操作:一是查询操作,语法为QL,用于查询数列末尾L个数中的最大值;二是更新操作,用于修改数列中的某个元素。本文通过ST表(Sparse Table)优化查询效率,确保在O(1)时间内完成查询,同时保持较低的预处理时间复杂度。 ... [详细]
  • 题目链接: Caninepoetry问题概述:给定一个仅包含小写字母的字符串,允许将任意位置的字符修改为任意其他小写字母。目标是通过最少次数的修改,使字符串中所有长度大于1的子串均满足特定条件。本文详细分析了该问题,并运用思维与贪心算法,提出了一种高效解决方案。通过对字符串的深入解析,我们探讨了如何在最小化修改次数的同时,确保所有子串符合要求。 ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
  • 寒假作业解析:第三周 2月12日 第7题
    尽快完成之前的练习任务!每日一练2.1 Problem A Laurenty and Shop 的题目要求是选择两条不同的路线以最小化总的等待时间。简要分析:通过对比不同路线的等待时间,可以找到最优解。此问题可以通过动态规划或贪心算法来解决,具体取决于路线的复杂性和约束条件。 ... [详细]
  • 本文对常见的字符串哈希函数进行了全面分析,涵盖了BKDRHash、APHash、DJBHash、JSHash、RSHash、SDBMHash、PJWHash和ELFHash等多种算法。这些哈希函数在不同的应用场景中表现出各异的性能特点,通过对比其算法原理、计算效率和碰撞概率,为实际应用提供了有价值的参考。 ... [详细]
  • 题目解析给定 n 个人和 n 种书籍,每个人都有一个包含自己喜好的书籍列表。目标是计算出满足以下条件的分配方案数量:1. 每个人都必须获得他们喜欢的书籍;2. 每本书只能分配给一个人。通过使用深度优先搜索算法,可以系统地探索所有可能的分配组合,确保每个分配方案都符合上述条件。该方法能够有效地处理这类组合优化问题,找到所有可行的解。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 在C++程序中,文档A的每一行包含一个结构体数据,其中某些字段可能包含不同数量的数字。需要将这些结构体数据逐行读取并存储到向量中,随后不仅在控制台上显示,还要输出到新创建的文档B中。希望得到指导,感谢! ... [详细]
  • 在C语言中,指针的高级应用及其实例分析具有重要意义。通过使用 `&` 符号可以获取变量的内存地址,而 `*` 符号则用于定义指针变量。例如,`int *p;` 定义了一个指向整型的指针变量 `p`。其中,`p` 代表指针变量本身,而 `*p` 则表示指针所指向的内存地址中的内容。此外,指针在不同函数中可以具有相同的变量名,但其作用域和生命周期会有所不同。指针的灵活运用能够有效提升程序的效率和可维护性。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 全局变量与常量在内存中的布局分析及应用
    本文详细探讨了全局变量与常量在内存中的存储布局及其应用。通过分析不同编译器和操作系统对全局变量与常量的处理方式,揭示了它们在内存中的具体分配机制。此外,文章还讨论了这些布局对程序性能和安全的影响,并提供了优化建议,帮助开发者更好地理解和利用全局变量与常量的内存管理。 ... [详细]
  • PAT乙级1001题探讨了著名的(3n+1)猜想,该问题在数学和计算机科学中具有重要地位。本文详细解析了该猜想的算法实现,并通过C语言代码示例展示了如何验证这一猜想。通过对输入整数进行一系列变换,最终证明所有正整数都会进入4-2-1循环。该题不仅考察了基本编程能力,还涉及了递归和迭代等核心概念。 ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 经过两天的努力,终于成功解决了半平面交模板题POJ3335的问题。原来是在`OnLeft`函数中漏掉了关键的等于号。通过这次训练,不仅加深了对半平面交算法的理解,还提升了调试和代码实现的能力。未来将继续深入研究计算几何的其他核心问题,进一步巩固和拓展相关知识。 ... [详细]
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
author-avatar
1403390367_f5c8a8
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有