Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def mavflightview_mav(mlog, options=None):
'''create a map for a log file'''
wp = mavwp.MAVWPLoader()
if options.mission is not None:
wp.load(options.mission)
fen = mavwp.MAVFenceLoader()
if options.fence is not None:
fen.load(options.fence)
path = [[]]
instances = {}
ekf_counter = 0
nkf_counter = 0
types = ['MISSION_ITEM','CMD']
if options.types is not None:
types.extend(options.types.split(','))
else:
types.extend(['GPS','GLOBAL_POSITION_INT'])
if options.rawgps or options.dualgps:
types.extend(['GPS', 'GPS_RAW_INT'])
def mavflightview_mav(mlog, options=None, flightmode_selections=[]):
'''create a map for a log file'''
wp = mavwp.MAVWPLoader()
if options.mission is not None:
wp.load(options.mission)
fen = mavwp.MAVFenceLoader()
if options.fence is not None:
fen.load(options.fence)
all_false = True
for s in flightmode_selections:
if s:
all_false = False
idx = 0
path = [[]]
instances = {}
ekf_counter = 0
nkf_counter = 0
types = ['MISSION_ITEM','CMD']
if options.types is not None:
types.extend(options.types.split(','))
else:
types.extend(['GPS','GLOBAL_POSITION_INT'])
def wp_to_gpx(infilename, outfilename):
'''convert a wp file to a GPX file'''
wp = mavwp.MAVWPLoader()
wp.load(infilename)
outf = open(outfilename, mode='w')
def process_wp(w, i):
t = time.localtime(i)
outf.write('''
%s
WP %u
''' % (w.x, w.y, w.z, i))
def add_header():
outf.write('''
def wp_to_gpx(infilename, outfilename):
'''convert a wp file to a GPX file'''
wp = mavwp.MAVWPLoader()
wp.load(infilename)
outf = open(outfilename, mode='w')
def process_wp(w, i):
t = time.localtime(i)
outf.write('''
%s
WP %u
''' % (w.x, w.y, w.z, i))
def add_header():
outf.write('''
def wploader(self):
'''per-sysid wploader'''
if self.target_system not in self.wploader_by_sysid:
self.wploader_by_sysid[self.target_system] = mavwp.MAVWPLoader()
return self.wploader_by_sysid[self.target_system]
def __init__(self, mavfile):
self.mavfile = mavfile
self.loader = mavwp.MAVWPLoader(target_system=1,
target_component=190)
self.count = 0
self.send_time = 0
self.recv_time = 0
self._transition_idle()
self._armed = False
self._system_status = None
@self.on_message('HEARTBEAT')
def listener(self, name, m):
self._armed = (m.base_mode & mavutil.mavlink.MAV_MODE_FLAG_SAFETY_ARMED) != 0
self.notify_attribute_listeners('armed', self.armed, cache=True)
self._flightmode = {v: k for k, v in self._master.mode_mapping().items()}[m.custom_mode]
self.notify_attribute_listeners('mode', self.mode, cache=True)
self._system_status = m.system_status
self.notify_attribute_listeners('system_status', self.system_status, cache=True)
# Waypoints.
self._home_location = None
self._wploader = mavwp.MAVWPLoader()
self._wp_loaded = True
self._wp_uploaded = None
self._wpts_dirty = False
self._commands = CommandSequence(self)
@self.on_message(['WAYPOINT_COUNT','MISSION_COUNT'])
def listener(self, name, msg):
if not self._wp_loaded:
self._wploader.clear()
self._wploader.expected_count = msg.count
self._master.waypoint_request_send(0)
@self.on_message(['WAYPOINT', 'MISSION_ITEM'])
def listener(self, name, msg):
if not self._wp_loaded:
if msg.seq == 0:
def fenceloader(self):
'''fence loader by sysid'''
if not self.target_system in self.fenceloader_by_sysid:
self.fenceloader_by_sysid[self.target_system] = mavwp.MAVFenceLoader()
return self.fenceloader_by_sysid[self.target_system]
lon=opts.lon,
download=not opts.offline,
service=opts.service,
debug=opts.debug,
max_zoom=opts.max_zoom,
elevation=opts.elevation,
tile_delay=opts.delay)
if opts.boundary:
boundary = mp_util.polygon_load(opts.boundary)
sm.add_object(SlipPolygon('boundary', boundary, layer=1, linewidth=2, colour=(0,255,0)))
if opts.mission:
from pymavlink import mavwp
for file in opts.mission:
wp = mavwp.MAVWPLoader()
wp.load(file)
boundary = wp.polygon()
sm.add_object(SlipPolygon('mission-%s' % file, boundary, layer=1, linewidth=1, colour=(255,255,255)))
if opts.grid:
sm.add_object(SlipGrid('grid', layer=3, linewidth=1, colour=(255,255,0)))
if opts.thumbnail:
thumb = cv.LoadImage(opts.thumbnail)
sm.add_object(SlipThumbnail('thumb', (opts.lat,opts.lon), layer=1, img=thumb, border_width=2, border_colour=(255,0,0)))
if opts.icon:
icon = cv.LoadImage(opts.icon)
sm.add_object(SlipIcon('icon', (opts.lat,opts.lon), icon, layer=3, rotation=90, follow=True))
sm.set_position('icon', mp_util.gps_newpos(opts.lat,opts.lon, 180, 100), rotation=45)
sm.add_object(SlipInfoImage('detail', icon))
def mavmission(logfile):
'''extract mavlink mission'''
mlog = mavutil.mavlink_connection(filename)
wp = mavwp.MAVWPLoader()
num_wps = None
while True:
m = mlog.recv_match(type=['MISSION_ITEM','CMD','WAYPOINT','MISSION_ITEM_INT'])
if m is None:
break
if m.get_type() == 'CMD':
try:
frame = m.Frame
except AttributeError:
print("Warning: assuming frame is GLOBAL_RELATIVE_ALT")
frame = mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT
num_wps = m.CTot
m = mavutil.mavlink.MAVLink_mission_item_message(0,
0,
m.CNum,