저는 quadrotor 및 mavlink가있는 프로젝트에서 작업하고 있습니다. 내 우분투 PC에 mavproxy를 성공적으로 설치하고 터미널에서 문제없이 실행했습니다. 터미널에서 mavproxy.py
을 실행하고 mavlink (APM 자동 조종 장치)를 지원하는 quadrotor를 연결하면 mavproxy가 quadrotor를 감지하고 모든 것이 정상입니다.popen에서 명령 셸 실행 및 다른 명령 셸 설정
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++ 프로그램을 실행하면 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
을 실행하는 코드가 터미널에서 mavproxy.py
을 실행하고 있었지만 C++ 코드에서 help
과 같은 명령을 어떻게 보낼 수 있는지 알지 못합니다.
프로그램을 읽을 경우, while
문은 프로그램 mavproxy.py
과 터미널 cout
에서 발생하는 매개 변수를 캡처 할 날 수 있습니다,하지만 당신은 터미널 출구에서 뭔가를 작성하거나 CTRL + C를 누를 때까지 mavlink.py
은 결코 끝나지이므로 while
루프가 끝나지 않습니다.
나는 Popen 함수에 대해 읽었지 만, 올바른 형식을 찾지 못했습니다.
내 프로그램에 mavlink.h
라이브러리를 사용할 수 있고 매개 변수를 전송할 수 있지만, mavlink.h
과 같이하고 싶지는 않습니다.
당신이 원하는 경우 읽기 및 쓰기 모두에 대해 popen2에 대한 검색이 있습니다. 표준 라이브러리의 일부는 아니지만 구현이 있습니다. –
나는 pepen2로 C++로 무엇인가하려고 노력했다. 파이썬에서도 사용되는 것을 볼 수 있습니다. 파이톤에서 예제가 있습니까? 교장 py 프로그램에서 다른 Phyton 스크립트를 호출하는 예제가 있습니까? 감사합니다 – user3574324
@ user3574324 이것을 해결할 수 있었습니까? 나는 똑같은 문제에 직면하고있다. 최대한 빨리 돌아 가라! 감사합니다. –