gpt4 book ai didi

jquery - node.js node-serialport 具有显着的写入延迟

转载 作者:太空宇宙 更新时间:2023-11-04 02:36:03 24 4
gpt4 key购买 nike

我有一个由微处理器组成的系统,该微处理器通过串行端口连接到树莓派。树莓派正在运行带有 Node 串行端口的node.js,以提供基于Web的用户界面。

当我尝试通过网络界面写入串行端口时,在收到微 Controller 的回复之前,我经常会遇到很长的延迟(10秒到几分钟),这意味着serialport.write以某种方式延迟了。 (我没有看到任何错误,端口也没有关闭..)在第 6 个串行端口写入后,这种情况非常一致地发生。如果我重新加载浏览器,它会再次正常工作,直到第 7 个请求为止。

这是在node.js中打开串口并将数据推送到串口的例程:

var myPort = new SerialPort("/dev/ttyAMA0", { 
baudrate: 38400,
parser: serialport.parsers.readline("\n")
});

app.post('/sendtoavr', function(req, res) {
myPort.write(req.body.cmd);
});

myPort.on('close', function(err) {
console.log('node-serialport closed!!!');
});

myPort.on('error', function(err) {
console.log('node-serialport error!!!');
});

这个 jquery 例程用于向 rpi 发送 http post 请求:

$("#btnSearchTempSensors").click(function() {
var strCMD = String.fromCharCode(84) + String.fromCharCode(83) + String.fromCharCode(13);
$.post('/sendtoavr', {cmd: strCMD});
});

在 Chrome 中查看网络控制台时,看起来 http post 请求会立即发送,而当通过 ssh 通过 minicom 将命令发送到微 Controller 时,根本没有问题。

因此我怀疑node-serialport或node.js,但如何进一步挖掘?

有人有什么想法吗?

最佳答案

找到了一个解决方法。我没有通过 http post 请求发送命令,而是使用了 socket.io/websockets。

node.js:

socket.on('sendcmd', function(data) {
myPort.write(data);
});

index.html:

$("#btnListTempSensors").click(function() {
var strCMD = String.fromCharCode(84) + String.fromCharCode(76) + String.fromCharCode(13);
socket.emit('sendcmd', strCMD);
});

关于jquery - node.js node-serialport 具有显着的写入延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com