如何使用NodeJs将命令写入串行端口?

2024-10-03 19:21:58 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好

我有问题写命令到一个连接到USB控制器的锁,这是连接到笔记本电脑端口使用NodeJs。我已经在python中成功地实现了这一点,但是在nodejs中遇到了问题。在

我之所以要转换成nodejs是因为整个应用程序都是用nodejs编写的,运行时有一个通过electron运行的桌面应用程序,而打开/关闭端口只是其中的一个小部分。在

python的等价物,哪个工作得很好

ser = serial.Serial()
        ser.baudrate = 38400 #Suggested rate in Southco documentation, both locks and program MUST be at same rate
        // COMPORT  is a variable that stores an integer such as 6
        ser.port = "COM{}".format(COMPORT) 
        ser.timeout = 10
        ser.open()
        command = "open1"
        #call the serial_connection() function
        ser.write(("%s\r\n"%command).encode('ascii')) #Southco locks receives and sends commands in ASCII

现在在NodeJs中,我正在使用库serialport,我正试图通过运行在electron应用程序下的NodeJs来实现这一点。在

^{pr2}$

我知道nodejs能够与端口交互,因为当我在命令提示符中运行serialport-list或在代码中运行它时

SerialPort.list(function (err, ports) {
    ports.forEach(function(port) {
        console.log(port.comName, port.pnpId, port.manufacturer); // or console.log(port)
    });
});

它显示端口信息。因此,nodejs可以读取端口,并发出有关特定端口的信息,但我似乎无法成功地向它发出命令。它似乎得到了执行,因为没有抛出错误消息,并且它确实显示在控制台中编写的消息,但是锁没有反应,而对于python代码,锁的反应是打开或关闭,要求写入的命令。在

任何帮助都将不胜感激。在


Tags: and端口in命令应用程序rateportnodejs