#!/usr/bin/env python3 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()