javascript - node 读取 Linux设备文件 到 buffer 后如何解码?
PHP中文网
PHP中文网 2017-04-11 11:17:11
0
2
402

需求是用单片机扫描条形码后用来做后续网络业务。
但是用 node 读取条形码的设备文件时遇到了问题。

在单片机上架了 Linux
交叉编译 node
连接条形码扫描器到单片机的 usb口
每次扫描条形码成功,都会输出字串到 /dev/input/eventN 文件
尝试用 node 脚本读取该文件,获取扫描的条形码数据。

node 代码

var fs = require('fs'); var scannerFile = '/dev/input/event0'; var readStream = fs.createReadStream(scannerFile); readStream.on('data', function (data) { var scannedText = data.toString('ascii'); console.log(data); console.log('scannedText: ' + scannedText); console.log('----------------------------'); });

运行 node脚本

# node ./scanner_watcher.js

扫描了 "0123456789012"

按 ASCII 解码的终端输出

换成 utf-8 解码的输出也是乱码

Buffer 数据如下

 

该如何解码这个 Buffer 对象为正确的条形码数据呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信 (2)
PHPzhong

data事件不是读了一部分就触发吗

いいねを押す+0
    伊谢尔伦

    问题解决了。

    Linux Kernal 配置的时候忘记使能 HID (Human Interface Device) Raw Input

    重新配置编译内核后 条形码扫描器映射到 /dev/hidraw-3 文件上

    扫描后文件输出了 ASCII码

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!