来自 NodeJS 的 Epson 热敏打印机状态 ESC/POS
Epson thermal printer status from NodeJS with ESC/POS
我已经创建了一个 Electron 应用程序来配置和启动 NodeJS 打印机服务器。 NodeJS 部分使用 https://github.com/song940/node-escpos 将 ESC/POS 命令发送到串行端口上的 Epson 热敏打印机。很好,我可以打印一些东西了。
现在,我正在尝试从打印机获取实时状态(打印机状态或卷纸传感器状态或墨水状态)。有一个ESC/POS命令DLE EOT
:https://www.epson-biz.com/modules/ref_escpos/index.php?content_id=118
我试过这样的事情,使用节点串行对象(节点escpos依赖)能够读取return(device.device.on(...)
):
const escpos = require('escpos');
const _ = require('escpos/commands');
const device = new escpos.Serial('COM1');
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);
});
但是结果好像和文档不符,我得到:
{ type: 'Buffer', data: [ 22 ] }
16
有人试过这个吗?我是不是误解了 Epson 的文档?
谢谢
看来得到的值是合适的。
你得到的Printer status (n = 1):
的值为0x16,二进制为0b00010110,应用到文档的描述中如下。
0:Fixed
1:Fixed
1:Drawer kick-out connector pin 3 is HIGH
0:Online
1:Fixed
0:Not waiting for online recovery
0:Paper feed button is not being pressed
0:Fixed
我已经创建了一个 Electron 应用程序来配置和启动 NodeJS 打印机服务器。 NodeJS 部分使用 https://github.com/song940/node-escpos 将 ESC/POS 命令发送到串行端口上的 Epson 热敏打印机。很好,我可以打印一些东西了。
现在,我正在尝试从打印机获取实时状态(打印机状态或卷纸传感器状态或墨水状态)。有一个ESC/POS命令DLE EOT
:https://www.epson-biz.com/modules/ref_escpos/index.php?content_id=118
我试过这样的事情,使用节点串行对象(节点escpos依赖)能够读取return(device.device.on(...)
):
const escpos = require('escpos');
const _ = require('escpos/commands');
const device = new escpos.Serial('COM1');
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);
});
但是结果好像和文档不符,我得到:
{ type: 'Buffer', data: [ 22 ] }
16
有人试过这个吗?我是不是误解了 Epson 的文档?
谢谢
看来得到的值是合适的。
你得到的Printer status (n = 1):
的值为0x16,二进制为0b00010110,应用到文档的描述中如下。
0:Fixed
1:Fixed
1:Drawer kick-out connector pin 3 is HIGH
0:Online
1:Fixed
0:Not waiting for online recovery
0:Paper feed button is not being pressed
0:Fixed