我正在一个带有四旋翼和mavlink的项目中工作。我已经在我的 Ubuntu PC 中成功安装了 mavproxy,并且从终端运行它没有问题。当我mavproxy.py
从终端运行并连接支持 mavlink(APM 自动驾驶仪)的四旋翼时,mavproxy 检测到四旋翼并且一切正常。
当您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.
我有一个mavlink.py
要从 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;
}
当我运行这个 C++ 程序时,终端显示的内容与我mavproxy.py
从终端运行时会出现的相同,但我不知道如何发送help
C++ 代码中的命令。
如果您阅读程序,该while
语句允许我捕获从程序mavproxy.py
和cout
终端中生成的参数,但mavlink.py
永远不会结束,直到您在终端退出或按CTRL+写一些东西,C所以while
循环永远不会结束。
我一直在阅读有关 Popen 功能的信息,但我还没有找到正确的形式来执行此操作。
我知道我可以mavlink.h
在我的程序中使用该库并将参数发送到四旋翼,但不想使用mavlink.h
.