繁体   English   中英

Beaglebone Black revC

[英]Beaglebone Black revC

我正在通过串行端口(ttyO2)连接BBB和一组arduino。 我有一个数组要从BBB发送到一组arduinos。 我需要让BBB发送请求并等待来自arduino之一的答复,但是如果间隔内没有arduino答复,则BBB必须在数组中发送以下值。 我已经为他们的工作准备好了联系和arduinos。 问题在于,BBB将监听端口并同时完成代码的执行。 如果收到数据=>处理它,我需要让它监听特定的时间; 否则,请完成以下代码部分(发送数组的其余部分)。 这项工作需要循环进行。 我一直在尝试使用setTimeout,递归,但没有成功! 我正在使用以下代码在ttyO2上进行侦听和编写:

`var b = require('bonescript');

//opening the serial port
var SerialPort = require("serialport").SerialPort
var serialPort = new SerialPort('/dev/ttyO2', {
baudrate: 115200
});
var i = 0;

serialPort.on("open", function () {
console.log('opened');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
serialPort.write( i + "\n", function(){});
});
});

serialPort.on("data", function (data) {
console.log("here: "+data);
});

`

var b = require('bonescript');


//opening the serial port

var SerialPort = require("serialport").SerialPort;

var serialPort = new SerialPort('/dev/ttyO2', {

  baudrate: 115200

});


var i = 0;
var waiting_interval = 5000;

var slaves = ["S1", "S2" , "S3", "S4", "S5"];



serialPort.on('open',function my(){ 
console.log("opened");
serialPort.on('data', function listenToSlaves(data){
        console.log("returned: " + data);
    });
writeToSlaves();

});


function writeToSlaves(){

//  setInterval(serialPort.write(slaves[i], function(){ console.log("I 
wrote to slave: " + i)}), 5000);

serialPort.write(slaves[i], function(){ });
console.log("I wrote to slave: " + i);
if(i<slaves.length - 1) i++;
else i=0;
setTimeout(writeToSlaves, waiting_interval);

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM