import os from sys import argv import sys import time # add python path of src to sys.path src_path = os.path.join(__file__, *(['..'] * 2)) src_path = os.path.abspath(src_path) sys.path.insert(0, src_path) from microwave.servers import MicroWaveReceiver from .tools import file_fliter def udp2bin_tool(udp_folder): UDPfolder = udp_folder # example pod1-2022-02-21-13-25-03_packet125.udp --> 125 sort_lambda = lambda x:int(x.split('packet')[1][:-4]) udp_files = file_fliter(UDPfolder,'udp', sort_lambda) receiver = MicroWaveReceiver() for file in udp_files: filename = os.path.join(UDPfolder, file) with open(filename, "rb") as f: data = f.read() receiver.AddBuf(data) if receiver.DataFrameReady: frame_number = receiver.Header.FrameNumber bin_name = os.path.join(UDPfolder, "{}.bin".format(frame_number)) print(time.asctime(),"Frame {} ready".format(frame_number)) with open(bin_name, "wb") as bin_file: bin_file.write(receiver.DataFrame) bin_file.close() if __name__ == '__main__': def help(): print("Usage: udp2bin.py [UDPfolder]") print("EXAMPLE: udp2bin.py ./manual_ply/pod1-2012-12-12-12-12-12/") exit(1) if len(sys.argv) != 2: help() try: udp_folder = str(sys.argv[1]) except Exception as e: print(e) help() udp2bin_tool(udp_folder)