首页 > 解决方案 > 在 linux nodejs 上获取 USB 打印机的状态

问题描述

我刚刚花了 3 天时间在互联网上拖网以使其正常工作。我只需要在 /dev/usb/lp0 下的 USB 热敏打印机上找到纸张的状态。

将我的代码减少到人类消费的最低限度我有这个:


const escpos = require('escpos');
escpos.USB = require('escpos-usb');
const device  = new escpos.USB();


const printer = new escpos.Printer(device);

device.open(function (err) {
    device.device.on('data', function (data) {
        console.log(data);
        console.log(data.toString('hex'));
    });

    device.write(_.DLE);
    device.write(_.EOT);
    device.write(String.fromCharCode(1));

    setTimeout(() => {
        printer.close();
    }, 1000);
});

作为回应,我得到:

/root/totem/ser.js:9
    device.device.on('data', function (data) {
                  ^

TypeError: device.device.on is not a function
    at /root/totem/ser.js:9:19
    at Interface.<anonymous> (/root/node_modules/escpos-usb/index.js:142:23)
    at Device.<anonymous> (/root/node_modules/usb/usb.js:341:6)

以下建议改正

device.device.on
to 
device.on 

我现在得到:

root@raspberrypi:~/totem# node ser.js
Received:


Received:


Received:


Received:
<Buffer >

root@raspberrypi:~/totem#

而不是得到一个告诉我状态的字节

标签: node.jslinuxraspberry-piescpos

解决方案


代替

设备.设备

利用

设备.on('数据' ...


推荐阅读