MAVkit เป็นกล่องเครื่องมือ C++ สำหรับ MAVLink 2.0 ในบรรทัดคำสั่ง
มันสามารถ แสดง เปลี่ยนเส้นทาง ออกอากาศ บันทึก เล่น ซ้ำ ข้อมูลจากและไปยังอินเทอร์เฟซประเภทต่างๆ ( Serial , UDP , TCP , File )
MAVkit ยังเป็นเฟรมเวิร์กสำหรับโปรแกรมเมอร์ MAVLink มันถูกสร้างขึ้นบนสถาปัตยกรรมแบบโมดูลาร์ซึ่งแต่ละโมดูลสามารถใช้งานได้อย่างอิสระภายในโปรเจ็กต์อื่น ในกรณีดังกล่าว จะมีบล็อก MAVLink แบบธรรมดาที่สามารถเปลี่ยนได้ตามฮาร์ดแวร์การสื่อสาร
ออกแบบโดยคำนึงถึงเวลาแฝงต่ำ ช่วยให้บัฟเฟอร์ IO ปลอดภัยจากการโอเวอร์โฟลว์ (ทำให้ข้อมูลสูญหาย) โดยใช้ลูปการประมวลผลเธรดคู่ต่ออินเทอร์เฟซ (อ่านและประมวลผลอย่างรวดเร็ว)
หมายเหตุ : อย่าลืมใช้คำสั่งแบบเรียกซ้ำต่อไปนี้ mavlink มีสองระดับย่อย
git submodule update --init --recursive
การพึ่งพา : Boost + MAVLink การพึ่งพาตามปกติ
mkdir build
cd build
cmake ..
make
Mavkit ถูกจัดอยู่ในโมดูลที่เรียกว่า Messenger ผู้ส่งสารสามารถรับและส่งข้อความถึงผู้อื่นได้พร้อมกันอย่างสมบูรณ์
Messenger แต่ละตัวสามารถเป็นลิงก์อนุกรม, ซ็อกเก็ต UDP, ไฟล์บันทึก,...
คุณต้องระบุอย่างน้อยหนึ่งผู้ส่งสาร (คนแรก) สำหรับบทบาทของ master อันนี้โดยเฉพาะจะเชื่อมต่อแบบดูเพล็กซ์กับผู้ส่งสารอื่น ๆ ที่สร้างขึ้นในตอนนั้น ในทางตรงกันข้าม ผู้ส่งสารรองจะไม่เชื่อมต่อระหว่างกัน
นี่คือตัวอย่างของอินสแตนซ์ MAVkit สองรายการซึ่งประกอบด้วย Messenger 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
ข้อความเอาท์พุตไปที่ stdout
ไม่มีข้อโต้แย้ง
--display
คุณสามารถรวม Messenger ได้มากเท่าที่คุณต้องการในบรรทัดคำสั่ง
ตัวอย่าง :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551