微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NodeJS SerialPort 写入格式

如何解决NodeJS SerialPort 写入格式

我正在为我工​​作的公司构建一个原型自动化测试工具,该工具使用 SMAC 控制器在激光测微计前移动要测量的物品。

我正在使用 NodeJS SerialPort 库向控制器发出命令(通过 RS232 串行),但运行的命令似乎存在一些问题。控制器接受十六进制和字符串 (page 23-24 of this PDF explains more) 组合格式的命令。

我尝试运行的命令是:0x20 W 0x012C04 20。 当我在 PuTTY 中运行它时,它运行良好,但 SerialPort 似乎忽略了它,我认为这是格式/数据类型错误,但我不确定如何更正。

我的代码是:

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()
    })
})

非常感谢任何帮助!

解决方法

解决方案很简单,我所缺少的只是发送命令结束时的返回。我能够使用以下命令操作 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()
    })
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。