You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							1.1 KiB
						
					
					
				| #!/usr/bin/env python
 | |
| import argparse
 | |
| import os
 | |
| import sys
 | |
| from openpilot.common.basedir import BASEDIR
 | |
| from openpilot.tools.lib.logreader import LogReader
 | |
| 
 | |
| os.environ['BASEDIR'] = BASEDIR
 | |
| 
 | |
| 
 | |
| def get_arg_parser():
 | |
|   parser = argparse.ArgumentParser(
 | |
|       description="Unlogging and save to file",
 | |
|       formatter_class=argparse.ArgumentDefaultsHelpFormatter)
 | |
| 
 | |
|   parser.add_argument("route", type=(lambda x: x.replace("#", "|")), nargs="?",
 | |
|                       help="The route whose messages will be published.")
 | |
|   parser.add_argument("--out_path", nargs='?', default='/data/ubloxRaw.stream',
 | |
|                       help="Output pickle file path")
 | |
|   return parser
 | |
| 
 | |
| 
 | |
| def main():
 | |
|   args = get_arg_parser().parse_args(sys.argv[1:])
 | |
| 
 | |
|   lr = LogReader(args.route)
 | |
| 
 | |
|   with open(args.out_path, 'wb') as f:
 | |
|     try:
 | |
|       done = False
 | |
|       i = 0
 | |
|       while not done:
 | |
|         msg = next(lr)
 | |
|         if not msg:
 | |
|           break
 | |
|         smsg = msg.as_builder()
 | |
|         typ = smsg.which()
 | |
|         if typ == 'ubloxRaw':
 | |
|           f.write(smsg.to_bytes())
 | |
|           i += 1
 | |
|     except StopIteration:
 | |
|       print('All done')
 | |
|   print(f'Writed {i} msgs')
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|   main()
 | |
| 
 |