我有一个在Ubuntu 12.04 LTS下作为服务运行的节点进程(它在/ etc / init下有一个配置文件)。该系统在无头x86路由器板上运行,条形码阅读器连接到该路由器板。我需要做的是能够读取条形码阅读器的输入(其行为类似于USB键盘用于所有意图和目的),以便它可以被发送到远程节点进行处理,但我想避免解析原始HID输入。
现在我正在使用node-hid
,但解决方案是暂时的,因为我不知道如何解析传入的数据缓冲区 - 我已经能够识别模式并将其映射到哈希表中,以便在我收到了,比方说,
02 00 00 00 00 00 00 00
02 00 03 00 00 00 00 00
00 00 00 00 00 00 00 00
我知道我已经从Code39条形码中读到了'C',但这不是便携式的,坦率地说,它太脏了,我几乎感到羞耻。
但我所知道的是,操作系统完全能够解码从条形码阅读器接收的输入:当进程位于前台时,我可以使用它来提供标准的stdin
输入,使用
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function(input) { ... });
我很乐意阅读条形码阅读器中的所有内容。当然,当进程在后台运行时,这不起作用,所以我的问题是:有没有办法捕获stdin缓冲区,以便可以从后台运行的NodeJS进程读取它?
奖金问题:如果我问的是不可能的,有人可以给我一个合理的参考/文档,可以让我解密我收到的HID输入(node-hid
只提供数据缓冲区)这样我至少可以写一个便携的通用函数来解码它?我确信它已经完成了,我想避免重新发现热水:)