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

---
 src/utils/udp_get.py |   57 +++++++++++++++++++++++----------------------------------
 1 files changed, 23 insertions(+), 34 deletions(-)

diff --git a/src/utils/udp_get.py b/src/utils/udp_get.py
index 1dcea13..bf4f68e 100644
--- a/src/utils/udp_get.py
+++ b/src/utils/udp_get.py
@@ -12,26 +12,12 @@
 #     os.makedirs(file_folder)
 #     print(f"make a new folder: {file_folder}")
 
-packed_count = 0
-
 class PointCloudUDPRequestHandler(BaseRequestHandler):
 
     def handle(self):
-
-        global packed_count
-        global path
-
-        if packed_count == 0:
-            start = datetime.datetime.now()
-            if not os.path.exists(save_folder):
-                os.mkdir(save_folder)
-            if sub_folder is not None:
-                path = os.path.join(save_folder,sub_folder)
-            else:
-                path = os.path.join(save_folder,f"{device_id}-{start.strftime('%Y-%m-%d-%H-%M-%S')}")
-            if not os.path.exists(path):
-                os.mkdir(path)
-            path = os.path.abspath(path)
+        packet_threshold = self.server.packet_threshold 
+        packed_count = self.server.packed_count
+        path = self.server.path
 
         print(time.asctime(),' Got connection from {}, {}'.format(self.client_address, packed_count))
         # Get message and client socket
@@ -40,29 +26,33 @@
         f = open('{}/{}_packet{}.udp'.format(path,time_tag,packed_count), 'wb')
         f.write(msg)
         f.close()
-        packed_count += 1
+        self.server.packed_count += 1
+        self.server.udp_list.append(msg)
         
         if packed_count >= packet_threshold:
-            UDPServer.server_close(server)
-
+            UDPServer.server_close(self.server)
 
 def udp_get_tool(microwaveHost,packetThreshold,deviceName,saveFolder,subFolder):
 
-    global packet_threshold
-    packet_threshold = packetThreshold,
-    global device_id
-    device_id = deviceName
-    global save_folder
-    save_folder = saveFolder
-    global sub_folder
-    sub_folder = subFolder
-
-    global server
-
-        # host = ''
+    # host = ''
     # host = '192.168.2.65' # use this host to get the udp data from microwave device
     port = 9911
     server =UDPServer((microwaveHost, port), PointCloudUDPRequestHandler)
+
+
+    if subFolder is not None:
+        path = os.path.join(saveFolder,subFolder)
+    else:
+        start = datetime.datetime.now()
+        path = os.path.join(saveFolder,f"{deviceName}-{start.strftime('%Y-%m-%d-%H-%M-%S')}")
+    if not os.path.exists(path):
+        os.makedirs(path)
+
+    server.path = os.path.abspath(path)
+    server.packet_threshold = packetThreshold
+    server.packed_count = 0
+    server.udp_list = []
+
     print(time.asctime(),'Server started on port', port)
     print('....')
     print('ctrl-c to quit server.')
@@ -74,8 +64,7 @@
     except:
         server.server_close()
         print(time.asctime(),"Server Stopped")
-
-
+    return server.udp_list
 
 
 if __name__ == '__main__':

--
Gitblit v1.9.1