有人问我是否可以从通过 RS232 连接的秤上读取重量,并将其转储到 Web 应用程序中。
虽然这不能直接通过 JavaScript 完成,但自定义客户端或服务器端解决方案可以提供帮助。有一些服务器端和桌面产品将此功能暴露给网页(RS232 秤、USB 秤)
为了具体详细说明Gordon推荐的QZ Tray 方法(假设 PC 已安装 QZ Tray;假设页面已配置为使用 QZ Tray),这里有一种适用于连接到 Mettler Toledo 秤的串行端口的技术。命令因规模供应商而异,因此请根据需要进行调整。
免责声明,我们是 QZ Tray 的作者。
连接COM1,发送命令,断开
// MT = Mettler Toledo. Change as needed.
var port = 'COM1'; // <-- COM1, '/dev/ttyUSB0', etc
var cmd = 'W\n'; // <--- MT Weight command
var baud = {
baudRate: 9600,
dataBits: 7, // <--- MT Changed from 8
stopBits: 1,
parity: 'EVEN', // <--- MT Changed from NONE
flowControl: 'NONE'
};
var delims = {
begin: '\x02', // <--- MT start of message
end: '\x0D', // <--- MT end of message
width: null // <--- MT doesn't use width
};
qz.serial.openPort(port, delims).then(function() {
return qz.serial.sendData(port, cmd, baud);
}).catch(function(err) { console.error(err); } );
qz.serial.setSerialCallbacks(function(evt) {
if (evt.type !== 'ERROR') {
console.log('Serial', evt.portName, 'received output', evt.output);
} else {
console.error(evt.exception);
}
// Close port
return qz.serial.closePort(evt.portName);
});
我在 Fedex 和 UPS 标签上遇到了类似但相反的情况。我可以在 Web 应用程序中获取标签数据,但我需要通过原始打印机套接字(即我不能只是文件 > 打印)将该数据发送到本地打印机......如何?
https://stackoverflow.com/a/28783269/3196753的副本。