3 from __future__
import (absolute_import, division,
4 print_function, unicode_literals)
10 from time
import sleep
11 from argparse
import ArgumentParser
12 from threading
import Thread
13 from pymavlink
import mavutil
21 parser = ArgumentParser(description=
'Log incoming MAVLink packets.')
22 parser.add_argument(
'system', type=int, help=
'system ID')
23 parser.add_argument(
'component', type=int, help=
'component ID')
25 '--verbose',
'-v', action=
'store_true', help=
'enable verbosity')
27 '--noheartbeat', action=
'store_true', help=
'disable heartbeat')
29 '--udp', action=
'store', help=
'UDP address:port to connect to')
31 '--serial', action=
'store', help=
'serial port device string')
32 args = vars(parser.parse_args())
33 if not args[
'udp']
and not args[
'serial']:
34 print(
'expected --udp or --serial option')
36 if args[
'udp']
and args[
'serial']:
37 print(
'expected --udp or --serial option, but not both')
44 mav.mav.heartbeat_send(0, 0, 0, 0, 0)
49 hbthread = Thread(target=heartbeat, args=(mav,))
50 hbthread.daemon =
True 55 signal.signal(signal.SIGINT, signal_handler)
56 os.environ[
'MAVLINK20'] =
'1' 57 mavutil.set_dialect(
'common')
60 mav = mavutil.mavlink_connection(
'udpout:' + args[
'udp'],
61 source_system=args[
'system'], source_component=args[
'component'])
63 mav = mavutil.mavlink_connection(args[
'serial'], baud=57600,
64 source_system=args[
'system'], source_component=args[
'component'])
67 if not args[
'noheartbeat']:
70 msg = mav.recv_match(blocking=
True)
72 msg_string =
"{:s} from {:d}.{:d}".format(
73 msg.get_type(), msg.get_srcSystem(), msg.get_srcComponent())
75 dest_string =
" to {:d}.{:d}".format(
76 msg.target_system, msg.target_component)
77 msg_string += dest_string
86 if __name__ ==
'__main__':
def signal_handler(signal, frame)
def start_heartbeats(mav)