我正在创建一个引导加载程序,它从文本文件中读取数据,将每一行发送到设备,并等待确认该行已写入设备的固件,然后再继续下一行。
所以我现在使用异步模块,它允许我通过调用 cb() 回调等待执行命令,然后再继续前进,但是我只需要在 SerialPort.onData 接收并验证数据后继续前进( ) 打回来。
问题是,我无法弄清楚如何将回调返回的数据包含到异步循环中,因为每个端口只能启动一次回调,因此我不能简单地将其包含在异步 eachSeries 循环中。
关于如何反馈从 onData 回调接收到的数据的任何建议,以便可以在继续下一行之前根据发送的数据对其进行验证?
function cl(dat){return console.log(dat);}
port.open(function(err){
fs.readFile('CS-BT_J.hex', function(err, f){
var hex = f.toString().split('\n');
var async = require("async");
async.eachSeries(hex, function(item,cb){
outStr = String.fromCharCode(1) + item + String.fromCharCode(13);
port.write(outStr, function(err,res) {});
cb();
},function(err){});
});
port.on("data", function (data) {
cl(data);
//if(data == addr) cb();
});
});