Я впервые работаю с serialport и пытаюсь установить sh соединение для чтения и записи с устройством UART, которое является контроллером пульта регулировки высоты, с помощью описанного ниже метода. Приложение представляет собой настольное приложение с использованием электроники.
const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const parser = new Readline()
const port = new SerialPort("COM4", {
baudRate: 9600
})
Это код, который я использовал, и port.read () всегда возвращает нулевое значение.
Для операции записи я использовал следующий код:
var buf = new Buffer([ 0XF1, 0XF1, 0X01, 0X00, 0X01, 0X7E]);
port.write(buf, function(err,n) {
if (err) {
return console.log('Error on write: ', err.message)
}
console.log(n)
console.log('message written')
})
Значения буфера - это значения для перемещения стола вверх, но никакие операции не выполняются, и он не возвращает ошибок или возвращает неопределенное значение при обратном вызове.
Подробнее об устройстве и настройке: Использование разъема RJ45-USB для соединения с блоком управления стола.
The definition of the SCI is as below:
(Baud Rate):9600
(Data Mode):8
(Stop Bit):1
(Parity Type):None
Path: COM3
Трубка - это то, что относится к моему system.
Basi c Значения буфера операций записи:
Move Up = 0XF1 0XF1 0X01 0X00 0X01 0X7E
Move Down = 0XF1 0XF1 0X02 0X00 0X02 0X7E
Стоп-действие = 0XF1 0XF1 0X0 c 0X00 0X0 c 0X7E
Прочитать пример функциональности:
Текущая высота (1000 мм -0x03E8) 0XF2 0XF2 0X01 0X02 0X03 0XE8 0XEE 0X7E
(в «данных» два байта, поэтому «длина данных» равна 0x02; «Chec» ksum '= 0x01 + 0x02 + 0x03 + 0xE8 = 0xEE)
Ожидается, что функция чтения предоставит информацию о текущей высоте и функцию записи для возможности управления устройством.
Версии , Операционная система и оборудование:
SerialPort @ ^ 8.0.7
Node.js v10.16.0
Windows
Оборудование и Набор микросхем? COM4
FTDIBUS \ VID_0403 + PID_6001 + AB0JIYQTA \ 0000
FTDI