123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- """
- Generate a message using different MAVLink versions, put in a buffer and then read from it.
- """
- from __future__ import print_function
- from builtins import object
- from pymavlink.dialects.v10 import ardupilotmega as mavlink1
- from pymavlink.dialects.v20 import ardupilotmega as mavlink2
- class fifo(object):
- def __init__(self):
- self.buf = []
- def write(self, data):
- self.buf += data
- return len(data)
- def read(self):
- return self.buf.pop(0)
- def test_protocol(mavlink, signing=False):
-
- f = fifo()
- print("Creating MAVLink message...")
-
- mav = mavlink.MAVLink(f)
- if signing:
- mav.signing.secret_key = chr(42)*32
- mav.signing.link_id = 0
- mav.signing.timestamp = 0
- mav.signing.sign_outgoing = True
-
- mav.param_set_send(7, 1, "WP_RADIUS", 101, mavlink.MAV_PARAM_TYPE_REAL32)
-
-
- m = mav.param_set_encode(7, 1, "WP_RADIUS", 101, mavlink.MAV_PARAM_TYPE_REAL32)
- m.pack(mav)
-
- b = m.get_msgbuf()
- bi=[]
- for c in b:
- bi.append(int(c))
- print("Buffer containing the encoded message:")
- print(bi)
- print("Decoding message...")
-
- m2 = mav.decode(b)
-
- print("Got a message with id %u and fields %s" % (m2.get_msgId(), m2.get_fieldnames()))
-
- print(m2)
- print("Testing mavlink1\n")
- test_protocol(mavlink1)
- print("\nTesting mavlink2\n")
- test_protocol(mavlink2)
- print("\nTesting mavlink2 with signing\n")
- test_protocol(mavlink2, True)
|