당신은 mavlink라는 라이브러리와 폴더로 끝나는 (또는 당신이 결국 결정 이름) pymavlink 패키지의 모듈 세트는 다음과 같습니다 : pymavlink에 따라 여러 가지 유용한 예제와 전체 시스템이 있습니다 : pymavlink 패키지는 메시지를 인코딩 및 디코딩하고 서명을 적용하고 확인하는 낮은 수준의 기능을 제공하는 방언별 생성된 모듈입니다. GCS 시스템 ID는 255 (여기 참조) 차량 ID는 1이어야합니다 (Ardupilot http://ardupilot.org/copter/docs/parameters.html?highlight=parameters#sysid-thismav-mavlink-system-id-of-this-vehicle 매개 변수 참조) 예를 들어, 일반적인 메시지 GLOBAL_POSITION_INT는 공통/mavlink_msg_global_position_int.h에 생성되며 다음 정의가 포함되어 있습니다: Pixhawk의 NuttX 셸에서 이 예제와 상호 작용할 수 있도록 하려면 원격 측정 라디오 또는 FTDI 개발자의 케이블이 필요합니다. 자세한 내용은 아래 탐색 섹션을 참조하십시오. Pymavlink 질문은 일반 MAVLink 지원 채널에서 제기 할 수 있습니다. MAVLink 라이브러리는 헤더 전용 라이브러리로, XML 파일을 구문 분석하는 Python* 스크립트를 통해 헤더가 프로그래밍 방식으로 생성됩니다. XML 파일은 라이브러리를 구성하는 메시지와 명령을 완전히 설명합니다. GitHub 리포지토리를 통한 라이브러리 보안에 대한 정보는 https://github.com/mavlink/mavlink 확인할 수 있습니다. MAVLink에 대한 포괄적인 개요는 MAVLink 웹 사이트를 방문하십시오. 프로젝트를 컴파일할 때 최상위 출력 디렉토리와 생성된 모든 방언 및 버전을 지정하는 것이 좋습니다(기존 코드 및 예제와의 호환성을 최대한 제공합니다): 링크 관리에 mavutil을 사용하는 경우 mavutil을 사용하는 경우 mavv attribute는 메시지를 보내는 데 사용할 수 있는 구성된 MAVLink 클래스 개체에 대한 액세스를 제공합니다. 예를 들어, the_connection이라는 링크를 사용하여 SYSTEM_TIME 메시지를 보내려면: msg는 팩 함수 param_id에 의해 채워질 mavlink_message_t 형식의 빈 개체이며 매개 변수 param_index의 이름이 있는 char 배열은 -1로 설정하면 이름을 사용합니다.

, 다른 현명한 우리는 대상 시스템에서 매개 변수의 인덱스를 알 필요가있다. mavlink_helpers.h에는 mavlink_frame_char() 및 mavlink_frame_char_buffer()와 같은 다른 파서 함수가 포함됩니다. 일반적으로 mavlink_parse_char(내부적으로 이러한 함수를 호출함)를 사용하길 원하지만 다른 방법을 검토하면 구문 분석 프로세스를 더 잘 이해할 수 있습니다. mavlink/mavlink_converts.h:37: 오류: 예상 생성자, 소멸자 또는 유형 변환 전에 `void` mavlink/mavlink_converts.h:67: 오류: 예상 생성자, 소멸자 또는 형식 변환 전에 `void` 기본적으로 최대 16 개 채널이 될 수 있습니다. Windows, Linux 및 macOS에 정의되며 다른 시스템에서는 최대 4개의 채널을 정의할 수 있습니다. 시스템은 MAVLINK_COMM_NUM_BUFFERS를 사용하여 다른 최대 채널/통신 버퍼 수를 지정할 수 있습니다(예: 메모리가 제한된 하드웨어에서 MAVLink를 실행하는 경우 1로 축소될 수 있음). MAVLink 1 미리 빌드된 라이브러리 mavlink/c_library_v1단순히 Github에서 MAVLink 2 라이브러리에 삭제하여 업그레이드 할 수 있습니다: mavlink/c_library_v2. 이 함수는 사용 가능한 들어오는 데이터를 읽고 구문 분석하며 사용 가능한 데이터가 있는 경우 들어오는 데이터 스트림을 처리합니다. MAVLink 프로젝트는 MAVLink 메시지를 처리하는 도우미 함수 집합을 제공합니다.

데이터를 수신할 때 mavlink_parse_char는 MAVLink 메시지를 바이트 단위로 구문 분석하는 데 사용됩니다. 들어오는 데이터를 구문 분석하는 주요 사용 사례는 „하트비트“ 메시지를 감시하는 것입니다. 외부에서 오는 이 메시지와 다른 메시지를 처리하는 것은 handle_message() 함수에 의해 수행되며, 검토 시 MAVLINK_MSG_ID_HEARTBEAT 메시지를 처리하는 스위치 케이스 문보다 훨씬 더 이상 수행되지 않습니다.

mavlink 예제