MAVkit 是命令列中MAVLink 2.0的 C++ 工具箱。
它可以顯示、重定向、廣播、記錄、重播不同類型介面(串行、 UDP 、 TCP 、檔案)的資料。
MAVkit 也是 MAVLink 程式設計師的一個框架。它建立在模組化架構上,每個模組都可以在其他專案中獨立使用。在這種情況下,它提供了一個簡單的 MAVLink 區塊,可以根據通訊硬體進行替換。
它在設計時考慮到了低延遲,透過每個介面使用雙線程處理循環(快速讀取和處理),可以防止 IO 緩衝區溢位(導致資料遺失)。
注意:請務必使用以下遞歸指令,mavlink中有兩個子模組等級。
git submodule update --init --recursive
依賴項:Boost + MAVLink 常用依賴項
mkdir build
cd build
cmake ..
make
Mavkit 由稱為「messenger」的模組組成。信使可以以完全並發的方式接收和發送訊息給其他人。
每個信差可以是串列連結、UDP 套接字、日誌檔…
您必須為master角色指定至少一個信使(第一個)。這個特定的信使將雙工連接到當時創建的所有其他信使。相反,他們之間不會有次要信使的聯繫。
這是兩個 MAVkit 實例的範例,分別由 4 個和 2 個信使組成,並透過 UDP 在它們之間連結。請注意,主站與所有其他信使相連,而其他信使之間則沒有連結。
建置完成後,您可以透過依序指定信使從命令列執行 MAVKit。
第一個使者將扮演主人的角色。
論點:
例如: --tty /dev/ttyUSB0 57600
論點:
例如: --udp_server 14550
論點:
--udp_client 192.168.1.10 14550
論點:
例如: --tcp_server 14550
論點:
--tcp_client 192.168.1.10 14550
將收到的訊息保存在 .raw 和 .ts 檔案中(.raw 包含 mavlink 原始數據,.ts 包含每個訊息的時間戳記)。
沒有爭論。
--log
重播 .raw 和 .ts 檔案的內容。
論點:
例如: --file ../myLog 2.0 50
將訊息輸出到標準輸出。
沒有爭論。
--display
您可以在命令列中組合幾乎任意數量的信使。
例 :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551