我有一个在板上运行的 C++ 服务器。我正在使用串行写入通过我的终端发送命令,但在该板上使用 Cout (C++) 打印的响应没有出现在串行读取中。这三种阅读方法我都试过了,都没有效果。
这是我在 NodeJs 中的代码,用于在运行 C++ 服务器的板上编写命令
const sleep = require('system-sleep');
process.stdin.setEncoding('utf8');
const args = process.argv.slice(2);
const inputFile=args[0];
const commandList=[];
var itr=0;
const serialPort = require('serialport')
const Readline = serialPort.parsers.Readline
try {
const data = fs.readFileSync(inputFile, 'utf8');
// parse JSON string to JSON object
const databases = JSON.parse(data);
databases.forEach(db => {
commandList.push(db);
});
}catch (err) {
console.log(`Error reading file from disk: ${err}`);
}
const port = new serialPort('/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9KB7O1F-if00-port0', {
baudRate: 115200
}).setEncoding("utf8");
console.log(port);
const parser = new Readline()
port.pipe(parser)
parser.on('data', function(data) {
console.log(data +"\n");
});
port.on('readable', function () {
console.log('Data:', port.read())
})
// Switches the port into "flowing mode"
port.on('data', function (data) {
console.log('Data:', data)
})
port.on("close",function(){
console.log("WOW");
});
port.write("cd /tmp\n",function(err){
if(err){
console.log(err);
return;
}
console.log("sucessfuly written");
sleep(5000);
port.write("./test1 ABCD \n",function(err){
if(err){
console.log(err);
return;
}
console.log("sucessfuly written");
port.write("./test1 EFGH \n",function(err){
if(err){
console.log(err);
return;
}
console.log("sucessfuly written");
port.write("./test1 IJKL \n",function(err){
if(err){
console.log(err);
return;
}
console.log("sucessfuly written");
port.write("./test1 MNOP\n",function(err){
if(err){
console.log(err);
return;
}
console.log("sucessfuly written");
});
});
});
});
});
// const parser = port.pipe(new Readline())