From 8f8099f618d6b910103555a04ae3b9830e1e6c92 Mon Sep 17 00:00:00 2001
From: wu_xinjun <bent20140204@outlook.com>
Date: 星期二, 22 三月 2022 13:00:56 +0800
Subject: [PATCH] optimization for auto slam

---
 src/utils/udp2bin.py |   44 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/src/utils/udp2bin.py b/src/utils/udp2bin.py
index 9715d43..dc3a703 100644
--- a/src/utils/udp2bin.py
+++ b/src/utils/udp2bin.py
@@ -11,25 +11,47 @@
 from microwave.servers import MicroWaveReceiver
 from .tools import file_fliter
 
-def udp2bin_tool(udp_folder):
+def udp2bin_tool(udp_folder_Or_list):
+    Save = True
+    bin_list = []
 
-    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)
+    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:
-        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
+        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
+    
+
 
 
 

--
Gitblit v1.9.1