Меня спросили, могу ли я считать вес из шкалы, подключенной через RS232, и выгрузить ее в веб-приложение.
Хотя это нельзя сделать напрямую через JavaScript, может помочь нестандартное решение на стороне клиента или на стороне сервера. Существует ряд серверных и настольных продуктов, которые предоставляют эту функциональность веб-странице (весы RS232, весы USB)
Специально для Гордона рекомендуется Подход QZ Tray (предполагает, что на ПК установлен 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 Я могу получить данные метки в веб-приложении, но мне нужно отправить эти данные через сокет необработанного принтера (т.е. я не могу просто Файл> Печать) на локальный принтер ... как?
Дубликат https://stackoverflow.com/a/28783269/3196753.