NodeJS SerialPort 写入格式
NodeJS SerialPort Write Format
我正在为我工作的公司构建一个原型自动化测试工具,该工具使用 SMAC 控制器在激光千分尺前移动要测量的项目。
我正在使用 NodeJS SerialPort 库向控制器发出命令(通过 RS232 串口),但命令 运行 似乎有一些问题。控制器接受十六进制和字符串 (page 23-24 of this PDF explains more) 组合格式的命令。
我正在尝试 运行 的命令是:0x20 W 0x012C04 20
。
当我在 PuTTY 中 运行 这个时,它工作得很好,但 SerialPort 似乎忽略了它,我认为这是一个 formatting/datatype 错误,但我不确定如何纠正这个。
我的代码是:
const port = new SerialPort("COM1", {
baudRate: 115200,
dataBits: 8,
stopBits: 1,
parity: "none",
}, (err) => console.log(err))
if(!port.isOpen) port.open()
port.on('open', () => {
console.log("Port opened successfully")
port.write("0x20 W 0x012C04 20", (err) => {
if(err) throw err;
console.log("Write to port successful")
port.close()
})
})
非常感谢任何帮助!
解决方案很简单,我只缺少发送命令末尾的 return。我能够使用以下命令操作 SMAC 控制器:
0x20 W 0x012C04 20\r
使用的完整代码是:
const port = new SerialPort(SMAC, {
baudRate: 115200,
dataBits: 8,
stopBits: 1,
parity: "none",
}, (err) => console.log(err))
if(!port.isOpen) port.open()
port.on('open', () => {
console.log("Port opened successfully")
const macro = "0x20 W 0x012C04 20\r"
// Call Macro 20
port.write(macro, (err) => {
if(err) throw err;
console.log("Write to port successful")
port.close()
})
})
我正在为我工作的公司构建一个原型自动化测试工具,该工具使用 SMAC 控制器在激光千分尺前移动要测量的项目。
我正在使用 NodeJS SerialPort 库向控制器发出命令(通过 RS232 串口),但命令 运行 似乎有一些问题。控制器接受十六进制和字符串 (page 23-24 of this PDF explains more) 组合格式的命令。
我正在尝试 运行 的命令是:0x20 W 0x012C04 20
。
当我在 PuTTY 中 运行 这个时,它工作得很好,但 SerialPort 似乎忽略了它,我认为这是一个 formatting/datatype 错误,但我不确定如何纠正这个。
我的代码是:
const port = new SerialPort("COM1", {
baudRate: 115200,
dataBits: 8,
stopBits: 1,
parity: "none",
}, (err) => console.log(err))
if(!port.isOpen) port.open()
port.on('open', () => {
console.log("Port opened successfully")
port.write("0x20 W 0x012C04 20", (err) => {
if(err) throw err;
console.log("Write to port successful")
port.close()
})
})
非常感谢任何帮助!
解决方案很简单,我只缺少发送命令末尾的 return。我能够使用以下命令操作 SMAC 控制器:
0x20 W 0x012C04 20\r
使用的完整代码是:
const port = new SerialPort(SMAC, {
baudRate: 115200,
dataBits: 8,
stopBits: 1,
parity: "none",
}, (err) => console.log(err))
if(!port.isOpen) port.open()
port.on('open', () => {
console.log("Port opened successfully")
const macro = "0x20 W 0x012C04 20\r"
// Call Macro 20
port.write(macro, (err) => {
if(err) throw err;
console.log("Write to port successful")
port.close()
})
})