javascript - nodejs串口setCommState

标签 javascript node.js socket.io node-serialport

我正在将nodejs串行端口与socket.io一起使用,但在串行端口初始化后出现SetCommState错误。 JavaScript 代码:

var http = require("http");
var url = require('url');
var fs = require('fs');
var io = require('socket.io');
var Serialport = require('serialport');

var server = http.createServer(function(request, response){
    var path = url.parse(request.url).pathname;

    switch(path){
        case '/':
            response.writeHead(200, {'Content-Type': 'text/html'});
            response.write('hello world');
            response.end();
            break;
        case '/socket.html':
            fs.readFile(__dirname + path, function(error, data){
                if (error){
                    response.writeHead(404);
                    response.write("opps this doesn't exist - 404");
                    response.end();
                }
                else{
                    response.writeHead(200, {"Content-Type": "text/html"});
                    response.write(data, "utf8");
                    response.end();
                }
            });
            break;
        default:
            response.writeHead(404);
            response.write("opps this doesn't exist - 404");
            response.end();
            break;
    }
});

server.listen(8001);


io.listen(server);
var listener = io.listen(server);
listener.sockets.on('connection', function(socket){
    //send data to client
    SerialPort = Serialport.SerialPort;
    serialport = new SerialPort("COM12",{
    baudRate: 9600,
    // look for return and newline at the end of each data packet:
    parser: Serialport.parsers.readline("\n")
     });
    serialport.on('open', function(){
      console.log('Serial Port Opend');
      serialport.on('data', function(data){

            socket.emit('date', {'date': data, 'value': Math.random() });
        });
      });
    serialport.on('error', function(error) {
       console.log('The error: '+error);

    });


    socket.on('client_data', function(data){
        process.stdout.write(data.letter);
      });

});

在命令提示符下运行代码时,我得到的输出为:

The error: Error: SetCommState: Unknown error code 31

如何解决这个问题?

最佳答案

对于来这里寻找此问题的其他人,错误 31 意味着 Windows 没有该产品的驱动程序。我用它与 friend Mac 上的 Arduino 进行通信,所以当我切换到不同的 Arduino 时,它就可以工作了。

https://www.lifewire.com/how-to-fix-code-31-errors-2623184

关于javascript - nodejs串口setCommState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35977468/

相关文章:

javascript - 如何在React js中解析本地JSON文件?

javascript - 将元素 href 设置为其他元素 id

node.js - 为什么这个 Promise 的 then 回调从未被调用?

javascript - 错误 : Can't set headers after they are sent to the client

node.js - 如何使用 Socket.io 设置使 Apache 和 Node.js 工作?

javascript - 我如何列出另一个数组中的数组?

javascript - 在knockout JS中绑定(bind)复杂模型

返回未定义的 Javascript 闭包

javascript - 如何查看Socket IO发送的数据?

javascript - Node + socket.io 聊天服务器..我会错过一些消息吗?