MAVkit adalah kotak alat C++ untuk MAVLink 2.0 di baris perintah.
Itu dapat menampilkan , mengalihkan , menyiarkan , mencatat , memutar ulang data dari dan ke berbagai jenis antarmuka ( Serial , UDP , TCP , File ).
MAVkit juga merupakan kerangka kerja untuk pemrogram MAVLink. Itu dibangun pada arsitektur modular di mana setiap modul dapat digunakan secara independen di dalam proyek lain. Dalam hal ini, ia menyediakan blok MAVLink sederhana yang dapat diganti sesuai dengan perangkat keras komunikasi.
Dirancang dengan mempertimbangkan latensi rendah, ini menjaga buffer IO aman dari luapan (menyebabkan kehilangan data) dengan menggunakan loop pemrosesan thread ganda per antarmuka (pembacaan dan proses cepat).
Catatan : Pastikan untuk menggunakan perintah rekursif berikut, ada dua level submodul di mavlink.
git submodule update --init --recursive
Dependensi : Boost + MAVLink dependensi biasa
mkdir build
cd build
cmake ..
make
Mavkit diatur dalam modul yang disebut messenger . Seorang utusan dapat menerima dan mengirim pesan kepada orang lain dengan cara yang sepenuhnya bersamaan.
Setiap messenger dapat berupa link serial, soket UDP, file log,...
Anda harus menentukan setidaknya satu messenger (yang pertama) untuk peran master . Yang satu ini akan terhubung secara dupleks ke setiap messenger lain yang dibuat saat itu. Sebaliknya, utusan sekunder tidak akan terhubung di antara mereka.
Berikut adalah contoh dua instance MAVkit, yang masing-masing terdiri dari 4 dan 2 messenger dan dihubungkan di antara keduanya melalui UDP. Perhatikan bahwa master terhubung ke semua messenger lainnya, sedangkan master tidak terhubung di antara mereka.
Setelah Anda membuatnya, Anda dapat menjalankan MAVKit dari baris perintah dengan menentukan messenger satu demi satu.
Utusan pertama akan mengambil peran sebagai master.
Argumen :
contoh : --tty /dev/ttyUSB0 57600
Argumen :
contoh : --udp_server 14550
Argumen :
--udp_client 192.168.1.10 14550
Argumen :
contoh : --tcp_server 14550
Argumen :
--tcp_client 192.168.1.10 14550
Simpan pesan yang diterima dalam file .raw dan .ts (.raw berisi data mentah mavlink, .ts berisi stempel waktu untuk setiap pesan).
Tidak ada argumen.
--log
Putar ulang konten file .raw dan .ts.
Argumen :
contoh : --file ../myLog 2.0 50
Keluarkan pesan ke stdout.
Tidak ada argumen.
--display
Anda dapat menggabungkan messenger sebanyak yang Anda inginkan di baris perintah.
Contoh :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551