我正在使用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你是否設法解決這個問題?我面臨同樣的問題..請儘快回覆!謝謝.. –