| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -37,7 +37,7 @@ def juggle_file(fn, dbc=None, layout=None): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    extra_args += f'-l {layout}' | 
					 | 
					 | 
					 | 
					    extra_args += f'-l {layout}' | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  subprocess.call(f'{pj} --plugin_folders {os.path.join(juggle_dir, "bin")} -d {fn} {extra_args}', shell=True, env=env, cwd=juggle_dir) | 
					 | 
					 | 
					 | 
					  subprocess.call(f'{pj} --plugin_folders {os.path.join(juggle_dir, "bin")} -d {fn} {extra_args}', shell=True, env=env, cwd=juggle_dir) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					def juggle_route(route_name, segment_number, qlog, layout): | 
					 | 
					 | 
					 | 
					def juggle_route(route_name, segment_number, qlog, can, layout): | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if route_name.startswith("http://") or route_name.startswith("https://"): | 
					 | 
					 | 
					 | 
					  if route_name.startswith("http://") or route_name.startswith("https://"): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    logs = [route_name] | 
					 | 
					 | 
					 | 
					    logs = [route_name] | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -63,6 +63,9 @@ def juggle_route(route_name, segment_number, qlog, layout): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  for d in pool.map(load_segment, logs): | 
					 | 
					 | 
					 | 
					  for d in pool.map(load_segment, logs): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    all_data += d | 
					 | 
					 | 
					 | 
					    all_data += d | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  if not can: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    all_data = [d for d in all_data if d.which() not in ['can', 'sendcan']] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  # Infer DBC name from logs | 
					 | 
					 | 
					 | 
					  # Infer DBC name from logs | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  dbc = None | 
					 | 
					 | 
					 | 
					  dbc = None | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  for cp in [m for m in all_data if m.which() == 'carParams']: | 
					 | 
					 | 
					 | 
					  for cp in [m for m in all_data if m.which() == 'carParams']: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -84,6 +87,7 @@ def get_arg_parser(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                   formatter_class=argparse.ArgumentDefaultsHelpFormatter) | 
					 | 
					 | 
					 | 
					                                   formatter_class=argparse.ArgumentDefaultsHelpFormatter) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  parser.add_argument("--qlog", action="store_true", help="Use qlogs") | 
					 | 
					 | 
					 | 
					  parser.add_argument("--qlog", action="store_true", help="Use qlogs") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  parser.add_argument("--can", action="store_true", help="Parse CAN data") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  parser.add_argument("--layout", nargs='?', help="Run PlotJuggler with a pre-defined layout") | 
					 | 
					 | 
					 | 
					  parser.add_argument("--layout", nargs='?', help="Run PlotJuggler with a pre-defined layout") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  parser.add_argument("route_name", nargs='?', help="The name of the route that will be plotted.") | 
					 | 
					 | 
					 | 
					  parser.add_argument("route_name", nargs='?', help="The name of the route that will be plotted.") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  parser.add_argument("segment_number", type=int, nargs='?', help="The index of the segment that will be plotted") | 
					 | 
					 | 
					 | 
					  parser.add_argument("segment_number", type=int, nargs='?', help="The index of the segment that will be plotted") | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -95,4 +99,4 @@ if __name__ == "__main__": | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    arg_parser.print_help() | 
					 | 
					 | 
					 | 
					    arg_parser.print_help() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    sys.exit() | 
					 | 
					 | 
					 | 
					    sys.exit() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  args = arg_parser.parse_args(sys.argv[1:]) | 
					 | 
					 | 
					 | 
					  args = arg_parser.parse_args(sys.argv[1:]) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  juggle_route(args.route_name, args.segment_number, args.qlog, args.layout) | 
					 | 
					 | 
					 | 
					  juggle_route(args.route_name, args.segment_number, args.qlog, args.can, args.layout) | 
				
			
			
				
				
			
		
	
		
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					 | 
					
  |