0

我正在创建一个引导加载程序,它从文本文件中读取数据,将每一行发送到设备,并等待确认该行已写入设备的固件,然后再继续下一行。

所以我现在使用异步模块,它允许我通过调用 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();
    });         

});
4

0 回答 0