我正在使用quadrotor和mavlink的项目中工作。我已经成功地在我的Ubuntu PC中安装了mavproxy,并且在终端没有问题的情况下运行它。当我从终端运行mavproxy.py
并连接了一个支持mavlink(APM自动驾驶仪)的四旋翼飞行器时,mavproxy检测到四旋翼飞行器,一切正常。从popen执行命令shell并设置其他命令shell
当您执行mavproxy.py
时,终端中的程序开始发送和接收多个参数。您可以在终端中写入一些参数以访问任何配置。例如,在终端的命令help
:
$ mavlink.py
.
.data beging
.
STABILIZE> "when the program finish the configuration, allowed to you for doing an input any parameter, for example help"
STABILIZE>help
show all helps.
我有一个代码来执行从C++
include <iostream>
include <stdio.h>
using namespace std;
int main() {
FILE *in;
char buff[512];
if(!(in = popen("mavlink.py", "r"))){
return 1;
}
while(fgets(buff, sizeof(buff), in)!=NULL){
cout << buff;
}
pclose(in);
return 0;
}
mavlink.py
当运行该C++程序的终端示出了将出现,如果我同样的事情从终端运行mavproxy.py
,但我不知道如何在C++代码中发送诸如help
之类的命令。
如果你读的程序时,while
声明让我捕捉到从程序mavproxy.py
,并在终端cout
产生的参数,但mavlink.py
永远不会结束,直到你写的东西在终端退出或按CTRL + Ç因此while
循环永不结束。
我一直在阅读有关Popen函数,但我没有找到正确的形式来做到这一点。
我知道我可以在我的程序中使用mavlink.h
库并将参数发送到四旋翼飞行器,但不想用mavlink.h
做到这一点。
如果你想读写都要搜索popen2。它不是标准库的一部分,但有实现。 –
我想用C++做pepen2的事情;我可以看到它也用于python,你有没有在phyton中的例子?你从主要的py程序中调用另一个phyton脚本的例子?谢谢 – user3574324
@ user3574324你是否设法解决这个问题?我面临同样的问题..请尽快回复!谢谢.. –