我正在创建一个引导加载程序,它从文本文件中读取数据,将每一行发送到设备,并在继续下一行之前等待确认该行已写入设备的固件。
所以我现在正在使用异步模块,它允许我在通过调用cb()回调向前移动之前等待命令执行,但是我需要仅在收到数据并由SerialPort验证后继续前进.onData()回调。
问题是,我无法弄清楚如何将回调返回的数据包含到异步循环中,因为回调只应为每个端口启动一次,因此我不能简单地将它包含在async eachSeries循环中。 / p>
有关如何提供从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();
});
});