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_Or_list): Save = True bin_list = [] if isinstance(udp_folder_Or_list, list): udp_files = udp_folder_Or_list Save = False else: UDPfolder = udp_folder_Or_list # 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) Save = True receiver = MicroWaveReceiver() for file in udp_files: data = None if isinstance(file,str): filename = os.path.join(UDPfolder, file) with open(filename, "rb") as f: data = f.read() else: data = file receiver.AddBuf(data) if receiver.DataFrameReady: frame_number = receiver.Header.FrameNumber if Save: 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() bin_list.append((frame_number,receiver.DataFrame)) return bin_list 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)