From 1605366b3f6a522cbc40a3b5ec52f9cb873759ba Mon Sep 17 00:00:00 2001
From: wu_xinjun <bent20140204@outlook.com>
Date: 星期三, 23 三月 2022 15:30:00 +0800
Subject: [PATCH] rearrange the dir tree

---
 scripts/bin2ply.py                  |   28 ++
 scripts_launch/udp_get.bat          |    6 
 src/slam/__init__.py                |    3 
 scripts_launch/TEST_SlamAuto.bat    |   14 
 scripts_launch/TEST_udp_get.bat     |    6 
 scripts/slamManualMode.py           |   30 ++
 scripts_launch/TEST_Slam.bat        |   53 ++++
 scripts_launch/TEST_udp2ply.bat     |    8 
 src/slam/manualMode.py              |   70 +++++
 scripts/udp2bin.py                  |   29 ++
 scripts_launch/bin2ply.bat          |    7 
 scripts_launch/TEST_bin2ply.bat     |    6 
 scripts_launch/TEST_startServer.bat |    4 
 scripts_launch/udp2bin.bat          |    7 
 scripts_launch/startServer.bat      |    4 
 scripts_launch/udp2ply.bat          |    9 
 scripts_launch/TEST_udp2bin.bat     |    7 
 scripts/udp_get.py                  |   33 ++
 scripts_launch/TEST_startClient.bat |    8 
 .vscode/settings.json               |    4 
 scripts_launch/startClient.bat      |    4 
 scripts/plot_ply.py                 |   26 ++
 src/__init__.py                     |    0 
 src/slam/autoMode.py                |   45 +++
 src/utils/__init__.py               |    5 
 /dev/null                           |   92 -------
 scripts_launch/TEST_ply_show.bat    |    7 
 src/microwave/deviceTools.py        |  165 ++++++++++++
 src/slam/core.py                    |   30 -
 scripts_launch/ply_show.bat         |    6 
 scripts/slamAutoMode.py             |   35 ++
 src/microwave/__init__.py           |    3 
 32 files changed, 602 insertions(+), 152 deletions(-)

diff --git a/.vscode/settings.json b/.vscode/settings.json
index 7e78264..71b48b3 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -15,5 +15,7 @@
             "type": "jupyterKernelspec",
             "path": "${workspaceFolder}/env/aerial_deploy/python.exe"
         }
-    ]
+    ],
+    "python.envFile": "${workspaceFolder}/env/aerial_deploy",
+    "python.defaultInterpreterPath": "${workspaceFolder}/env/aerial_deploy/python.exe"
 }
\ No newline at end of file
diff --git a/TEST_Slam.bat b/TEST_Slam.bat
deleted file mode 100644
index 6c180a0..0000000
--- a/TEST_Slam.bat
+++ /dev/null
@@ -1,36 +0,0 @@
-@echo off
-
-@REM change to the filepath
-cd %~dp0
-echo change to path: %cd%
-
-set aerialpython=%cd%/env/aerial_deploy/python.exe
-set envsetting=%cd%/env/SettingEnv.bat
-
-@REM Setting the env
-if not exist %aerialpython% (
-    call %envsetting% 
-)
-
-echo [the folder example]: ./slamdata/
-set /p folder=Please input the slam data folder:
-
-@REM set folder=T:\\Data\\projects\\huaneng\\00_Docs\\slamtest
-set alpha=0
-set beta=-80
-@REM 姣背娉㈣澶囬潰鏈濅笅锛岄『鏃堕拡鏂瑰悜鏃嬭浆
-set gamma=auto
-set savename=test60120
-
-set PLYfile=./%savename%.ply
-
-cd %~dp0
-echo change to path: %cd%
-
-%aerialpython% ./src/mannul_slam.py %folder% %alpha% %beta% %gamma% %savename%
-
-
-@REM -------------- Usage: plot_ply.py [PLYfile]"
-%aerialpython% ./src/utils/plot_ply.py %PLYfile%
-
-
diff --git a/scripts/bin2ply.py b/scripts/bin2ply.py
new file mode 100644
index 0000000..8cb4519
--- /dev/null
+++ b/scripts/bin2ply.py
@@ -0,0 +1,28 @@
+import os
+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(1, src_path)
+
+from src.microwave.deviceTools import bin2ply_tool
+
+
+if __name__ == "__main__":
+    def help():
+        print("Usage: bin2ply.py [BINfolder]")
+        print("EXAMPLE: BIN2ply.py ./manual_ply/pod1-2012-12-12-12-12-12/")
+        exit(1)
+
+    if len(sys.argv) != 2:
+        help()
+    try:
+        BINfolder = os.path.abspath(str(sys.argv[1]))
+
+    except Exception as e:
+        print(e)
+        help()
+    
+    bin2ply_tool(BINfolder)
\ No newline at end of file
diff --git a/scripts/plot_ply.py b/scripts/plot_ply.py
new file mode 100644
index 0000000..b212486
--- /dev/null
+++ b/scripts/plot_ply.py
@@ -0,0 +1,26 @@
+import open3d as o3d
+import os,sys
+
+# 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(1, src_path)
+
+from src.microwave.deviceTools import plot_ply
+
+if __name__ == "__main__":
+    def help():
+        print("Usage: plot_ply.py [PLYfile or plyfolder]")
+        print("EXAMPLE: plot_ply ./Manual_Microwave/pod1-2022-02-21-15-34-45/2522.ply")
+        exit(1)
+
+    if len(sys.argv) != 2:
+        help()
+    try:
+        PLYfile = os.path.abspath(str(sys.argv[1]))
+
+        plot_ply(PLYfile)
+
+    except Exception as e:
+        print(e)
+        help()
\ No newline at end of file
diff --git a/scripts/slamAutoMode.py b/scripts/slamAutoMode.py
new file mode 100644
index 0000000..dc0e979
--- /dev/null
+++ b/scripts/slamAutoMode.py
@@ -0,0 +1,35 @@
+import os,sys
+
+# 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(1, src_path)
+
+from src.slam.autoMode import rotateAndMerge
+
+if __name__ == "__main__":
+    def help():
+        print("Usage: auto_slam.py [port] [speed] [degre_step] [time_delay] [alpha] [beta] [gamma] [microwaveHost] [udp_packets] [deviceName] [saveFolder]")
+        print("EXAMPLE: auto_slam.py COM11 100 5 5 0 20 auto 192.168.2.65 1000 pod1 ./data/run_test/")
+        exit(1)
+
+    if len(sys.argv) != 12:
+        help()
+    try:
+        port = str(sys.argv[1])
+        speed = str(sys.argv[2])
+        degre_step = int(sys.argv[3])
+        time_delay = int(sys.argv[4])
+        alpha = str(sys.argv[5])
+        beta = str(sys.argv[6])
+        gamma = str(sys.argv[7])
+        microwaveHost = str(sys.argv[8])
+        udp_packets = int(sys.argv[9])
+        deviceName = str(sys.argv[10])
+        saveFolder = os.path.abspath(str(sys.argv[11]))
+    except Exception as e:
+        print(e)
+        help()
+
+    rotateAndMerge(port,speed,degre_step,time_delay,alpha,beta,gamma,microwaveHost,udp_packets,deviceName,saveFolder)
+    print("Done")
\ No newline at end of file
diff --git a/scripts/slamManualMode.py b/scripts/slamManualMode.py
new file mode 100644
index 0000000..fcd330a
--- /dev/null
+++ b/scripts/slamManualMode.py
@@ -0,0 +1,30 @@
+import os,sys
+
+# 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(1, src_path)
+
+from src.slam.manualMode import manual_merge
+
+if __name__ == "__main__":
+    def help():
+        print("Usage: mannul_slam.py [folder] [alpha] [beta] [gamma] [savename]")
+        print("EXAMPLE: mannul_slam.py T:\\Data\\chuizhi60掳_shuiping120掳 0 60 auto test60120")
+        exit(1)
+
+    if len(sys.argv) != 6:
+        help()
+    try:
+        folder = os.path.abspath(str(sys.argv[1]))
+        alpha = str(sys.argv[2])
+        beta = str(sys.argv[3])
+        gamma = str(sys.argv[4])
+        savename = str(sys.argv[5])
+
+    except Exception as e:
+        print(e)
+        help()
+
+    manual_merge(folder,alpha,beta,gamma,savename)
+    print("Done")
diff --git a/scripts/udp2bin.py b/scripts/udp2bin.py
new file mode 100644
index 0000000..83c8f4c
--- /dev/null
+++ b/scripts/udp2bin.py
@@ -0,0 +1,29 @@
+import os
+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(1, src_path)
+
+
+from src.microwave.deviceTools import udp2bin_tool
+
+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 = os.path.abspath(str(sys.argv[1]))
+
+    except Exception as e:
+        print(e)
+        help()
+    
+    udp2bin_tool(udp_folder)
\ No newline at end of file
diff --git a/scripts/udp_get.py b/scripts/udp_get.py
new file mode 100644
index 0000000..b1225ba
--- /dev/null
+++ b/scripts/udp_get.py
@@ -0,0 +1,33 @@
+import time
+import os, sys
+
+# 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(1, src_path)
+
+from src.microwave.deviceTools import udp_get_tool
+
+if __name__ == '__main__':
+
+    def help():
+        print("**************************ERROR**************************")
+        print("Usage: udp_get.py [MICROWAVEhost] [PACKETthreshold] [DEVICEname] [SAVEfolder] [SUBfolder")
+        print("EXAMPLE: udp_get.py 192.168.2.65 1000 pod1 ./manual_ply 60 \n")
+        exit(1)
+        
+    if len(sys.argv) != 6:
+        help()
+    try:
+        MICROWAVEhost = str(sys.argv[1])
+        PACKETthreshold = int(sys.argv[2])
+        DEVICEname = str(sys.argv[3])
+        SAVEfolder = os.path.abspath(str(sys.argv[4]))
+        SUBfolder = str(sys.argv[5])
+
+
+    except Exception as e:
+        print(e)
+        help()
+
+    udp_get_tool(MICROWAVEhost,PACKETthreshold,DEVICEname,SAVEfolder,SUBfolder)
\ No newline at end of file
diff --git a/scripts_launch/TEST_Slam.bat b/scripts_launch/TEST_Slam.bat
new file mode 100644
index 0000000..127ce05
--- /dev/null
+++ b/scripts_launch/TEST_Slam.bat
@@ -0,0 +1,53 @@
+@echo off
+
+@REM change to the filepath
+cd %~dp0
+cd ..
+
+set aerialpython=%cd%/env/aerial_deploy/python.exe
+set envsetting=%cd%/env/SettingEnv.bat
+
+@REM Setting the env
+if not exist %aerialpython% (
+    call %envsetting% 
+)
+cd %~dp0
+cd ..
+
+echo change to path: %cd%
+
+@REM set folder=T:\\Data\\projects\\huaneng\\00_Docs\\slamtest
+set alpha=0
+set beta=20
+@REM 姣背娉㈣澶囬潰鏈濅笅锛岄『鏃堕拡鏂瑰悜鏃嬭浆
+set gamma=auto
+set savename=data
+
+echo [the folder example]: ./slamdata/
+set /p folder=Please input the slam data folder:
+
+set PLYfile=%folder%/%savename%.ply
+
+@REM verify the parameters
+echo    ################# parameters #################
+echo    alpha                   :%alpha%
+echo    beta                    :%beta%
+echo    gamma                   :%gamma%
+echo    folder                  :%folder%
+echo    savename                :%savename%
+echo    PLYfile                 :%PLYfile%
+
+set /p choice=Please verify the parameters and choice [y/n]:
+
+
+if %choice% == y (
+    %aerialpython% ./scripts/slamManualMode.py %folder% %alpha% %beta% %gamma% %savename%
+    @REM -------------- Usage: plot_ply.py [PLYfile]"
+    %aerialpython% ./scripts/plot_ply.py %PLYfile%
+) else (
+    echo you choose stop!
+    exit
+)
+pause
+
+
diff --git a/TEST_SlamAuto.bat b/scripts_launch/TEST_SlamAuto.bat
similarity index 88%
rename from TEST_SlamAuto.bat
rename to scripts_launch/TEST_SlamAuto.bat
index 8c5bcd8..5ba9907 100644
--- a/TEST_SlamAuto.bat
+++ b/scripts_launch/TEST_SlamAuto.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -11,6 +11,10 @@
 if not exist %aerialpython% (
     call %envsetting% 
 )
+cd %~dp0
+cd ..
+
+echo change to path: %cd%
 
 @REM pre-defined parameters
 set port=COM11
@@ -55,16 +59,16 @@
 
 set /p choice=Please verify the parameters and choice [y/n]:
 
-cd %~dp0
-echo change to path: %cd%
 
 if %choice% == y (
-    %aerialpython% ./src/auto_slam.py %port% %speed% %degree_step% %time_delay% %alpha% %beta% %gamma% %microwaveHost% %udp_packets% %deviceName% %saveFolder%
+    %aerialpython% ./scripts/slamAutoMode.py %port% %speed% %degree_step% %time_delay% %alpha% %beta% %gamma% %microwaveHost% %udp_packets% %deviceName% %saveFolder%
     @REM -------------- Usage: plot_ply.py [PLYfile]"
-    %aerialpython% ./src/utils/plot_ply.py %PLYfile%
+    %aerialpython% ./scripts/plot_ply.py %PLYfile%
 ) else (
+    echo you choose stop!
     exit
 )
+pause
 
 
 
diff --git a/TEST_bin2ply.bat b/scripts_launch/TEST_bin2ply.bat
similarity index 83%
rename from TEST_bin2ply.bat
rename to scripts_launch/TEST_bin2ply.bat
index af22ebd..524c9f9 100644
--- a/TEST_bin2ply.bat
+++ b/scripts_launch/TEST_bin2ply.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,6 +12,8 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 echo [the folder example]: ./slamdata/
@@ -19,5 +21,5 @@
 
 
 @REM ---------------Usage: bin2ply.py [BINfolder]
-%aerialpython% ./src/utils/bin2ply.py %BINfolder%
+%aerialpython% ./scripts/bin2ply.py %BINfolder%
 pause
\ No newline at end of file
diff --git a/TEST_ply_show .bat b/scripts_launch/TEST_ply_show.bat
similarity index 81%
rename from TEST_ply_show .bat
rename to scripts_launch/TEST_ply_show.bat
index 6a8d43f..3c45306 100644
--- a/TEST_ply_show .bat
+++ b/scripts_launch/TEST_ply_show.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -11,11 +11,12 @@
 if not exist %aerialpython% (
     call %envsetting% 
 )
-
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 set PLYfile=./test60120.ply
 @REM -------------- Usage: plot_ply.py [PLYfile]"
-%aerialpython% ./src/utils/plot_ply.py %PLYfile%
+%aerialpython% ./scripts/plot_ply.py %PLYfile%
 pause
\ No newline at end of file
diff --git a/TEST_startClient.bat b/scripts_launch/TEST_startClient.bat
similarity index 96%
rename from TEST_startClient.bat
rename to scripts_launch/TEST_startClient.bat
index 69df83a..c7fb0e2 100644
--- a/TEST_startClient.bat
+++ b/scripts_launch/TEST_startClient.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -11,6 +11,10 @@
 if not exist %aerialpython% (
     call %envsetting% 
 )
+cd %~dp0
+cd ..
+
+echo change to path: %cd%
 
 set MQhost=192.168.1.224
 set MQuser=chai
@@ -21,8 +25,6 @@
 set MICROWAVEhost=localhost
 set LOGfile=ClientTEST.log
 
-cd %~dp0
-echo change to path: %cd%
 @REM Launch the Client
 echo the log file will be saved in the [%LOGfile%] file
 echo Client.py is running ...
diff --git a/TEST_startServer.bat b/scripts_launch/TEST_startServer.bat
similarity index 96%
rename from TEST_startServer.bat
rename to scripts_launch/TEST_startServer.bat
index 30abc3a..1c101e9 100644
--- a/TEST_startServer.bat
+++ b/scripts_launch/TEST_startServer.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,6 +12,8 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 set MQhost=localhost
diff --git a/TEST_udp2bin.bat b/scripts_launch/TEST_udp2bin.bat
similarity index 83%
rename from TEST_udp2bin.bat
rename to scripts_launch/TEST_udp2bin.bat
index a7899fe..ee9e31e 100644
--- a/TEST_udp2bin.bat
+++ b/scripts_launch/TEST_udp2bin.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,10 +12,13 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
+
 echo [the UDP folder example]: ./slamdata/60/
 set /p UDPfolder=Please input the UDP folder:
 
 @REM ---------------Usage: udp2bin.py [UDPfolder]
-%aerialpython% ./src/utils/udp2bin.py %UDPfolder%
+%aerialpython% ./scripts/udp2bin.py %UDPfolder%
 pause
\ No newline at end of file
diff --git a/TEST_udp2ply.bat b/scripts_launch/TEST_udp2ply.bat
similarity index 77%
rename from TEST_udp2ply.bat
rename to scripts_launch/TEST_udp2ply.bat
index 1a0a3cc..ffb5eed 100644
--- a/TEST_udp2ply.bat
+++ b/scripts_launch/TEST_udp2ply.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,13 +12,15 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 echo [the UDP folder example]: ./slamdata/60/
 set /p UDPfolder=Please input the UDP folder:
 
 @REM ---------------Usage: udp2bin.py [UDPfolder]
-%aerialpython% ./src/utils/udp2bin.py %UDPfolder%
+%aerialpython% ./scripts/udp2bin.py %UDPfolder%
 @REM ---------------Usage: bin2ply.py [BINfolder]
-%aerialpython% ./src/utils/bin2ply.py %UDPfolder%
+%aerialpython% ./scripts/bin2ply.py %UDPfolder%
 pause
\ No newline at end of file
diff --git a/TEST_udp_get.bat b/scripts_launch/TEST_udp_get.bat
similarity index 83%
rename from TEST_udp_get.bat
rename to scripts_launch/TEST_udp_get.bat
index 4591180..5ad3d82 100644
--- a/TEST_udp_get.bat
+++ b/scripts_launch/TEST_udp_get.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,6 +12,8 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 set MICROWAVEhost=192.168.2.65
@@ -27,5 +29,5 @@
 set folder=./%SAVEfolder%/%SUBfolder%/
 echo the udp data will be saved in folder %folder%
 @REM ---------------Usage: udp_get.py [MICROWAVEhost] [PACKETthreshold] [DEVICEname] [SAVEfolder]
-%aerialpython% ./src/utils/udp_get.py %MICROWAVEhost% %PACKETthreshold% %DEVICEname% %SAVEfolder% %SUBfolder%
+%aerialpython% ./scripts/udp_get.py %MICROWAVEhost% %PACKETthreshold% %DEVICEname% %SAVEfolder% %SUBfolder%
 pause
\ No newline at end of file
diff --git a/bin2ply.bat b/scripts_launch/bin2ply.bat
similarity index 84%
rename from bin2ply.bat
rename to scripts_launch/bin2ply.bat
index a36a6f1..e75bddd 100644
--- a/bin2ply.bat
+++ b/scripts_launch/bin2ply.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,10 +12,13 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
+
 @REM please the folder path of the bin files.
 @REM set BINfolder=./Manual_Microwave/pod1-2012-12-12-12-12-12/
 
 @REM ---------------Usage: bin2ply.py [BINfolder]
-%aerialpython% ./src/utils/bin2ply.py %BINfolder%
+%aerialpython% ./scripts/bin2ply.py %BINfolder%
 pause
\ No newline at end of file
diff --git a/ply_show.bat b/scripts_launch/ply_show.bat
similarity index 84%
rename from ply_show.bat
rename to scripts_launch/ply_show.bat
index 672b8c6..f7ef8af 100644
--- a/ply_show.bat
+++ b/scripts_launch/ply_show.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,10 +12,12 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 @REM please the folder path of the bin files.
 @REM set PLYfile=./Manual_Microwave/pod1-2022-02-21-15-34-45/2522.ply
 
 @REM -------------- Usage: plot_ply.py [PLYfile]"
-%aerialpython% ./src/utils/plot_ply.py %PLYfile%
+%aerialpython% ./scripts/plot_ply.py %PLYfile%
 pause
\ No newline at end of file
diff --git a/startClient.bat b/scripts_launch/startClient.bat
similarity index 96%
rename from startClient.bat
rename to scripts_launch/startClient.bat
index e4b047a..eb4e5ea 100644
--- a/startClient.bat
+++ b/scripts_launch/startClient.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,6 +12,8 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 set MQhost=172.17.17.206
diff --git a/startServer.bat b/scripts_launch/startServer.bat
similarity index 96%
rename from startServer.bat
rename to scripts_launch/startServer.bat
index 95d0c07..070f7b3 100644
--- a/startServer.bat
+++ b/scripts_launch/startServer.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,6 +12,8 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 set MQhost=172.17.17.206
diff --git a/udp2bin.bat b/scripts_launch/udp2bin.bat
similarity index 84%
rename from udp2bin.bat
rename to scripts_launch/udp2bin.bat
index f7efa92..06c3894 100644
--- a/udp2bin.bat
+++ b/scripts_launch/udp2bin.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -11,13 +11,14 @@
 if not exist %aerialpython% (
     call %envsetting% 
 )
-
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 @REM please the folder path of the udp files.
 @REM set UDPfolder=./Manual_Microwave/pod1-2012-12-12-12-12-12/
 
 @REM ---------------Usage: udp2bin.py [UDPfolder]
-%aerialpython% ./src/utils/udp2bin.py %UDPfolder%
+%aerialpython% ./scripts/udp2bin.py %UDPfolder%
 pause
\ No newline at end of file
diff --git a/udp2ply.bat b/scripts_launch/udp2ply.bat
similarity index 78%
rename from udp2ply.bat
rename to scripts_launch/udp2ply.bat
index 50f393e..9b0cfb1 100644
--- a/udp2ply.bat
+++ b/scripts_launch/udp2ply.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -11,15 +11,16 @@
 if not exist %aerialpython% (
     call %envsetting% 
 )
-
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 @REM please the folder path of the udp files.
 @REM set UDPfolder=./Manual_Microwave/pod1-2012-12-12-12-12-12/
 
 @REM ---------------Usage: udp2bin.py [UDPfolder]
-%aerialpython% ./src/utils/udp2bin.py %UDPfolder%
+%aerialpython% ./scripts/udp2bin.py %UDPfolder%
 @REM ---------------Usage: bin2ply.py [BINfolder]
-%aerialpython% ./src/utils/bin2ply.py %UDPfolder%
+%aerialpython% ./scripts/bin2ply.py %UDPfolder%
 pause
\ No newline at end of file
diff --git a/udp_get.bat b/scripts_launch/udp_get.bat
similarity index 78%
rename from udp_get.bat
rename to scripts_launch/udp_get.bat
index 363fa14..1860e9f 100644
--- a/udp_get.bat
+++ b/scripts_launch/udp_get.bat
@@ -2,7 +2,7 @@
 
 @REM change to the filepath
 cd %~dp0
-echo change to path: %cd%
+cd ..
 
 set aerialpython=%cd%/env/aerial_deploy/python.exe
 set envsetting=%cd%/env/SettingEnv.bat
@@ -12,6 +12,8 @@
     call %envsetting% 
 )
 cd %~dp0
+cd ..
+
 echo change to path: %cd%
 
 set MICROWAVEhost=192.168.2.65
@@ -19,5 +21,5 @@
 SET DEVICEname=pod1
 SET SAVEfolder=./Manual_Microwave
 @REM ---------------Usage: udp_get.py [MICROWAVEhost] [PACKETthreshold] [DEVICEname] [SAVEfolder]
-%aerialpython% ./src/utils/udp_get.py %MICROWAVEhost% %PACKETthreshold% %DEVICEname% %SAVEfolder%
+%aerialpython% ./scripts/udp_get.py %MICROWAVEhost% %PACKETthreshold% %DEVICEname% %SAVEfolder%
 pause
\ No newline at end of file
diff --git a/src/__init__.py b/src/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/__init__.py
diff --git a/src/auto_slam.py b/src/auto_slam.py
deleted file mode 100644
index dfac28c..0000000
--- a/src/auto_slam.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import os,sys
-import numpy as np
-import time
-from slam.slam import compose_ply
-from utils import read_ply,write_ply,file_fliter,udp_get_tool,udp2bin_tool,bin2ply_tool
-from mannul_slam import run as compose_muti_ply
-
-cudir = src_path = os.path.abspath(os.path.join(__file__, *(['..'] * 1)))
-exe_path = os.path.abspath(os.path.join(cudir,"../RUN/Test_Servo.exe"))
-
-def run(port,speed,degre_step,time_delay,alpha,beta,gamma,microwaveHost,udp_packets,deviceName,saveFolder):
-
-    # 鏃嬭浆鏈烘瀯澶嶄綅
-    os.system(f"{exe_path} {port} 400 0")
-    time.sleep(10)
-
-    # 闂撮殧鑾峰彇udp
-    for i in range(0,360,degre_step):
-        os.system(f"{exe_path} {port} {speed} {i}")
-        time.sleep(int(time_delay))
-        subFolder = str(-i)
-        print (f"Geting udp files with {subFolder} degree ...")
-        udp_get_tool(microwaveHost,udp_packets,deviceName,saveFolder,subFolder)
-    
-    # 鏃嬭浆鏈烘瀯澶嶄綅
-    os.system(f"{exe_path} {port} 100 0")
-
-    # iterate the folder
-    for root, dirs, files in os.walk(saveFolder,topdown=True):
-        break
-
-    for dir in dirs:
-        # udp2bin bin2ply
-        subdir = os.path.join(saveFolder,dir)
-        udp2bin_tool(subdir)
-        bin2ply_tool(subdir)
-
-
-    # compose ply
-    print("merge ply files, processing ...")
-    compose_muti_ply(saveFolder,alpha,beta,gamma,"data")
-
-if __name__ == "__main__":
-    def help():
-        print("Usage: auto_slam.py [port] [speed] [degre_step] [time_delay] [alpha] [beta] [gamma] [microwaveHost] [udp_packets] [deviceName] [saveFolder]")
-        print("EXAMPLE: auto_slam.py COM11 100 5 5 0 20 auto 192.168.2.65 1000 pod1 ./data/run_test/")
-        exit(1)
-
-    if len(sys.argv) != 12:
-        help()
-    try:
-        port = str(sys.argv[1])
-        speed = str(sys.argv[2])
-        degre_step = int(sys.argv[3])
-        time_delay = int(sys.argv[4])
-        alpha = str(sys.argv[5])
-        beta = str(sys.argv[6])
-        gamma = str(sys.argv[7])
-        microwaveHost = str(sys.argv[8])
-        udp_packets = int(sys.argv[9])
-        deviceName = str(sys.argv[10])
-        saveFolder = str(sys.argv[11])
-    except Exception as e:
-        print(e)
-        help()
-
-    run(port,speed,degre_step,time_delay,alpha,beta,gamma,microwaveHost,udp_packets,deviceName,saveFolder)
-    print("Done")
-
-
-
diff --git a/src/mannul_slam.py b/src/mannul_slam.py
deleted file mode 100644
index 55fd0af..0000000
--- a/src/mannul_slam.py
+++ /dev/null
@@ -1,81 +0,0 @@
-import os,sys
-import numpy as np
-from slam.slam import compose_ply
-from utils import read_ply,write_ply,file_fliter
-from tqdm import tqdm
-
-def run(folder,alpha,beta,gamma,savename):
-    
-    # # literate the folder
-    # dir_List_ = os.listdir(folder)
-    # sort_lambda = lambda x:int(x)
-    # dir_List_.sort(key=sort_lambda)
-    
-    # dir_List=dir_List_
-    # iterate the folder
-    for root, dirs, files in os.walk(folder,topdown=True):
-        break
-    
-    dir_List = dirs
-
-
-    angle = []
-    index = 0 
-    for i,degree in enumerate([alpha,beta,gamma]):
-        if degree == "auto":
-            degree = dir_List
-            index = i
-        angle.append(degree)
-
-    data = []
-    
-    print("reading ply files ...")
-    # iterate the auto angle degree
-    for an in tqdm(angle[index]):
-        ply_with_mutiangle = []
-        for z in angle:
-            if isinstance(z,list):
-                z = an
-            ply_with_mutiangle.append(-float(z))
-        ply_name_list = file_fliter(os.path.join(folder,an), "ply",lambda x:int(x.split(".")[0]))
-        # select the first ply file
-        for i in range(len(ply_name_list)):
-            ply_with_mutiangle_copy = ply_with_mutiangle.copy()
-            ply = read_ply(os.path.join(folder,an,ply_name_list[i]))
-            ply_with_mutiangle_copy.append(ply)
-            data.append(ply_with_mutiangle_copy)
-
-    # compose muti ply files to one ply file
-    cloudpoint = compose_ply(data)
-
-    # write the file
-    print("Writing the data to disk ...")
-    write_ply(cloudpoint, folder, savename)
-
-
-
-
-
-
-if __name__ == "__main__":
-    def help():
-        print("Usage: mannul_slam.py [folder] [alpha] [beta] [gamma] [savename]")
-        print("EXAMPLE: mannul_slam.py T:\\Data\\chuizhi60掳_shuiping120掳 0 60 auto test60120")
-        exit(1)
-
-    if len(sys.argv) != 6:
-        help()
-    try:
-        folder = str(sys.argv[1])
-        alpha = str(sys.argv[2])
-        beta = str(sys.argv[3])
-        gamma = str(sys.argv[4])
-        savename = str(sys.argv[5])
-
-    except Exception as e:
-        print(e)
-        help()
-
-    run(folder,alpha,beta,gamma,savename)
-    print("Done")
-
diff --git a/src/microwave/__init__.py b/src/microwave/__init__.py
index 44c7895..ba4d4a0 100644
--- a/src/microwave/__init__.py
+++ b/src/microwave/__init__.py
@@ -1,4 +1,5 @@
 from .components import *
 from  .constants import *
 from  .parsers import *
-from  .servers import *
\ No newline at end of file
+from  .servers import *
+from .deviceTools import *
\ No newline at end of file
diff --git a/src/microwave/deviceTools.py b/src/microwave/deviceTools.py
new file mode 100644
index 0000000..b26422e
--- /dev/null
+++ b/src/microwave/deviceTools.py
@@ -0,0 +1,165 @@
+import datetime
+from socketserver import BaseRequestHandler, UDPServer
+import time
+import os, sys
+import open3d as o3d
+
+from ..utils import file_fliter, write_ply
+from .servers import MicroWaveReceiver
+from .parsers import MicroWaveParser
+
+# # 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(1, src_path)
+
+# udp_get
+class PointCloudUDPRequestHandler(BaseRequestHandler):
+
+    def handle(self):
+        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
+        msg, sock = self.request
+        time_tag = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
+        f = open('{}/{}_packet{}.udp'.format(path,time_tag,packed_count), 'wb')
+        f.write(msg)
+        f.close()
+        self.server.packed_count += 1
+        self.server.udp_list.append(msg)
+        
+        if packed_count >= packet_threshold:
+            UDPServer.server_close(self.server)
+
+def udp_get_tool(microwaveHost,packetThreshold,deviceName,saveFolder,subFolder):
+
+    # 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.')
+    try:
+        server.serve_forever()
+    except KeyboardInterrupt:
+        server.server_close()
+        print(time.asctime(),"Server Stopped")
+    except:
+        server.server_close()
+        print(time.asctime(),"Server Stopped")
+    return server.udp_list
+
+# udp2bin
+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
+
+# bin2ply
+def bin2ply_tool(folder):
+    bin_files = file_fliter(folder,'bin')
+
+    for file in bin_files:
+
+        filename = file
+        # (fn, ext) = os.path.splitext(filename)
+        with open(os.path.join(folder,file), "rb") as bin_file:
+            buf = bin_file.read()
+            buf_data = MicroWaveParser.ParserFrame(buf)
+
+
+            for frame in buf_data:
+                Frame_id = frame[0]
+                FrameNumber = frame[1]
+                point_cloud = frame[2]
+                if len(point_cloud) != 0 :
+                    with open(os.path.join(folder,str(FrameNumber) +".ply"), "w") as f:
+                        f.write("ply\n")
+                        f.write("format ascii 1.0\n")
+                        f.write("comment MicroWave2Ply generated\n")
+                        f.write("element vertex %d\n" % len(point_cloud))
+                        f.write("property float x\n")
+                        f.write("property float y\n")
+                        f.write("property float z\n")
+                        f.write("element face 0\n")
+                        f.write("property list uchar int vertex_indices\n")
+                        f.write("end_header\n")
+                        n_p = 0
+                        for p in point_cloud:
+                            x, y, z = p
+                            f.write("{:.5f} {:.5f} {:.5f}\n".format(x, y, z))
+                            n_p += 1
+                        print(time.asctime(),f"File {file} Frame {FrameNumber}.ply have been saved with {n_p} points!")
+
+def plot_ply(path):
+    if isinstance(path,str):
+        abspath = os.path.abspath(path)
+    else:
+        raise ValueError("Not a path!")
+    
+    if os.path.isdir(abspath):
+        # open folder to load all ply files
+        ply_files = file_fliter(abspath,'ply')
+        show = []
+        for ply in ply_files:
+            pcd = o3d.io.read_point_cloud(os.path.join(abspath,ply))
+            show.append(pcd)
+    else:
+        show = [o3d.io.read_point_cloud(abspath)]
+
+    o3d.visualization.draw_geometries(show)
+    return
diff --git a/src/slam/__init__.py b/src/slam/__init__.py
new file mode 100644
index 0000000..dd48035
--- /dev/null
+++ b/src/slam/__init__.py
@@ -0,0 +1,3 @@
+from .core import *
+from .manualMode import *
+from .autoMode import *
\ No newline at end of file
diff --git a/src/slam/autoMode.py b/src/slam/autoMode.py
new file mode 100644
index 0000000..18663f2
--- /dev/null
+++ b/src/slam/autoMode.py
@@ -0,0 +1,45 @@
+import os,sys
+import numpy as np
+import time
+from ..microwave.deviceTools import udp_get_tool,udp2bin_tool,bin2ply_tool
+from .manualMode import manual_merge
+
+cudir = os.path.abspath(os.path.join(__file__, *(['..'] * 1)))
+exe_path = os.path.abspath(os.path.join(cudir,"../RUN/Test_Servo.exe"))
+
+def rotateAndMerge(port,speed,degre_step,time_delay,alpha,beta,gamma,microwaveHost,udp_packets,deviceName,saveFolder):
+
+    # 鏃嬭浆鏈烘瀯澶嶄綅
+    os.system(f"{exe_path} {port} 400 0")
+    time.sleep(10)
+
+    # 闂撮殧鑾峰彇udp
+    for i in range(0,360,degre_step):
+        os.system(f"{exe_path} {port} {speed} {i}")
+        time.sleep(int(time_delay))
+        subFolder = str(-i)
+        print (f"Geting udp files with {subFolder} degree ...")
+        udp_get_tool(microwaveHost,udp_packets,deviceName,saveFolder,subFolder)
+    
+    # 鏃嬭浆鏈烘瀯澶嶄綅
+    os.system(f"{exe_path} {port} 100 0")
+
+    # iterate the folder
+    for root, dirs, files in os.walk(saveFolder,topdown=True):
+        break
+
+    for dir in dirs:
+        # udp2bin bin2ply
+        subdir = os.path.join(saveFolder,dir)
+        udp2bin_tool(subdir)
+        bin2ply_tool(subdir)
+
+
+    # compose ply
+    print("merge ply files, processing ...")
+    manual_merge(saveFolder,alpha,beta,gamma,"data")
+
+
+
+
+
diff --git a/src/slam/slam.py b/src/slam/core.py
similarity index 84%
rename from src/slam/slam.py
rename to src/slam/core.py
index de3904d..c277da8 100644
--- a/src/slam/slam.py
+++ b/src/slam/core.py
@@ -1,11 +1,11 @@
 import numpy as np
 import os, sys
-# 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)
+# # 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 utils.tools import read_ply
+from ..utils.tools import read_ply
 from tqdm import tqdm
 
 
@@ -84,7 +84,7 @@
     """
 
     # 骞崇Щ
-    moved_data = current + np.array([x,y,z])
+    moved_data = data + np.array([x,y,z])
     # 鏃嬭浆
     rotation_matrix = get_rotation_matrix(-alpha,-beta,-gamma)
     rotated_data = np.matmul(moved_data,rotation_matrix)
@@ -97,10 +97,10 @@
     return rotated_data
 
 
-def compose_ply(muti_ply_with_angle: list):
+def merge_ply(muti_ply_with_angle: list):
 
     ply_nums = len(muti_ply_with_angle)
-    composed_ply_array = None
+    merged_ply_array = None
 
     print ("rotating the ply ...")
     for i, ply_with_angle in enumerate(tqdm(muti_ply_with_angle)):
@@ -116,18 +116,12 @@
         # np.matmul(rotation_matrix,ply.transpose()).transpose() == np.matmul(ply,rotation_matrix)
         rotated_ply = np.matmul(ply,rotation_matrix)
         if i == 0:
-            composed_ply_array = rotated_ply.copy()
+            merged_ply_array = rotated_ply.copy()
         else:
-            composed_ply_array = np.concatenate((composed_ply_array,rotated_ply),axis= 0 )
+            merged_ply_array = np.concatenate((merged_ply_array,rotated_ply),axis= 0 )
     
-    composed_ply_array = np.array(composed_ply_array).reshape(-1,3)
-    return composed_ply_array
+    merged_ply_array = np.array(merged_ply_array).reshape(-1,3)
+    return merged_ply_array
 
-
-if __name__ == "__main__":
-    current = np.array([[1,1,1],[1,3,9],[4,8,5]])
-    print(current)
-    target = transferTo(current,1,1,1,0,0,0,True)
-    print(target)
 
 
diff --git a/src/slam/manualMode.py b/src/slam/manualMode.py
new file mode 100644
index 0000000..71372da
--- /dev/null
+++ b/src/slam/manualMode.py
@@ -0,0 +1,70 @@
+from aifc import Error
+import os,sys
+from tkinter import E
+import numpy as np
+from tqdm import tqdm
+
+from .core import merge_ply
+from ..utils import read_ply,write_ply,file_fliter
+from ..microwave.deviceTools import udp2bin_tool,bin2ply_tool
+
+def manual_merge(folder,alpha,beta,gamma,savename):
+    """ 
+    merge the ply files according to the sub folder name, like 0, 20, -30 ...
+    """
+
+    for root, dirs, files in os.walk(folder,topdown=True):
+        break
+    
+    dir_List = dirs
+
+
+    angle = []
+    index = 0 
+    for i,degree in enumerate([alpha,beta,gamma]):
+        if degree == "auto":
+            degree = dir_List
+            index = i
+        angle.append(degree)
+
+    data = []
+    
+    print("reading ply files ...")
+    # iterate the auto angle degree
+    for an in tqdm(angle[index]):
+        ply_with_mutiangle = []
+        for z in angle:
+            if isinstance(z,list):
+                z = an
+            ply_with_mutiangle.append(-float(z))
+        ply_name_list = file_fliter(os.path.join(folder,an), "ply",lambda x:int(x.split(".")[0]))
+        if len(ply_name_list) == 0:
+            try:
+                udp2bin_tool(os.path.join(folder,an))
+                bin2ply_tool(os.path.join(folder,an))
+                ply_name_list = file_fliter(os.path.join(folder,an), "ply",lambda x:int(x.split(".")[0]))
+            except Exception as e:
+                raise ValueError(f"Can't find any .udp .bin or .ply files in folder {os.path.join(folder,an)}")
+        else:
+            pass
+
+        # select the all ply files
+        for i in range(len(ply_name_list)):
+            ply_with_mutiangle_copy = ply_with_mutiangle.copy()
+            ply = read_ply(os.path.join(folder,an,ply_name_list[i]))
+            ply_with_mutiangle_copy.append(ply)
+            data.append(ply_with_mutiangle_copy)
+
+    # compose muti ply files to one ply file
+    cloudpoint = merge_ply(data)
+
+    # write the file
+    print("Writing the data to disk ...")
+    write_ply(cloudpoint, folder, savename)
+
+
+
+
+
+
+
diff --git a/src/utils/__init__.py b/src/utils/__init__.py
index 34a0a9c..6ac1ccc 100644
--- a/src/utils/__init__.py
+++ b/src/utils/__init__.py
@@ -1,4 +1 @@
-from .tools import *
-from .udp_get import *
-from .udp2bin import *
-from .bin2ply import *
\ No newline at end of file
+from .tools import *
\ No newline at end of file
diff --git a/src/utils/bin2ply.py b/src/utils/bin2ply.py
deleted file mode 100644
index 085d392..0000000
--- a/src/utils/bin2ply.py
+++ /dev/null
@@ -1,65 +0,0 @@
-import os
-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.parsers import MicroWaveParser
-from .tools import file_fliter
-
-def bin2ply_tool(folder):
-    bin_files = file_fliter(folder,'bin')
-
-    for file in bin_files:
-
-        filename = file
-        # (fn, ext) = os.path.splitext(filename)
-        with open(os.path.join(folder,file), "rb") as bin_file:
-            buf = bin_file.read()
-            buf_data = MicroWaveParser.ParserFrame(buf)
-
-
-            for frame in buf_data:
-                Frame_id = frame[0]
-                FrameNumber = frame[1]
-                point_cloud = frame[2]
-                if len(point_cloud) != 0 :
-                    with open(os.path.join(folder,str(FrameNumber) +".ply"), "w") as f:
-                        f.write("ply\n")
-                        f.write("format ascii 1.0\n")
-                        f.write("comment MicroWave2Ply generated\n")
-                        f.write("element vertex %d\n" % len(point_cloud))
-                        f.write("property float x\n")
-                        f.write("property float y\n")
-                        f.write("property float z\n")
-                        f.write("element face 0\n")
-                        f.write("property list uchar int vertex_indices\n")
-                        f.write("end_header\n")
-                        n_p = 0
-                        for p in point_cloud:
-                            x, y, z = p
-                            f.write("{:.5f} {:.5f} {:.5f}\n".format(x, y, z))
-                            n_p += 1
-                        print(time.asctime(),f"File {file} Frame {FrameNumber}.ply have been saved with {n_p} points!")
-
-
-
-if __name__ == "__main__":
-    def help():
-        print("Usage: bin2ply.py [BINfolder]")
-        print("EXAMPLE: BIN2ply.py ./manual_ply/pod1-2012-12-12-12-12-12/")
-        exit(1)
-
-    if len(sys.argv) != 2:
-        help()
-    try:
-        BINfolder = str(sys.argv[1])
-
-    except Exception as e:
-        print(e)
-        help()
-    
-    bin2ply_tool(BINfolder)
\ No newline at end of file
diff --git a/src/utils/plot_ply.py b/src/utils/plot_ply.py
deleted file mode 100644
index 855395a..0000000
--- a/src/utils/plot_ply.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import open3d as o3d
-import sys
-
-if __name__ == "__main__":
-    def help():
-        print("Usage: plot_ply.py [PLYfile]")
-        print("EXAMPLE: plot_ply ./Manual_Microwave/pod1-2022-02-21-15-34-45/2522.ply")
-        exit(1)
-
-    if len(sys.argv) != 2:
-        help()
-    try:
-        PLYfile = str(sys.argv[1])
-
-        pcd = o3d.io.read_point_cloud(PLYfile)
-
-    except Exception as e:
-        print(e)
-        help()
-    
-    show = [pcd]
-
-    o3d.visualization.draw_geometries(show)
\ No newline at end of file
diff --git a/src/utils/udp2bin.py b/src/utils/udp2bin.py
deleted file mode 100644
index dc3a703..0000000
--- a/src/utils/udp2bin.py
+++ /dev/null
@@ -1,74 +0,0 @@
-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)
\ No newline at end of file
diff --git a/src/utils/udp_get.py b/src/utils/udp_get.py
deleted file mode 100644
index bf4f68e..0000000
--- a/src/utils/udp_get.py
+++ /dev/null
@@ -1,92 +0,0 @@
-import datetime
-from pickle import GLOBAL
-from socketserver import BaseRequestHandler, UDPServer
-import time
-import os, sys
-
-
-# cudir,_ = os.path.split(__file__)
-# file_folder = os.path.join(cudir,"saveUDPData")
-
-# if not os.path.exists(file_folder):
-#     os.makedirs(file_folder)
-#     print(f"make a new folder: {file_folder}")
-
-class PointCloudUDPRequestHandler(BaseRequestHandler):
-
-    def handle(self):
-        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
-        msg, sock = self.request
-        time_tag = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
-        f = open('{}/{}_packet{}.udp'.format(path,time_tag,packed_count), 'wb')
-        f.write(msg)
-        f.close()
-        self.server.packed_count += 1
-        self.server.udp_list.append(msg)
-        
-        if packed_count >= packet_threshold:
-            UDPServer.server_close(self.server)
-
-def udp_get_tool(microwaveHost,packetThreshold,deviceName,saveFolder,subFolder):
-
-    # 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.')
-    try:
-        server.serve_forever()
-    except KeyboardInterrupt:
-        server.server_close()
-        print(time.asctime(),"Server Stopped")
-    except:
-        server.server_close()
-        print(time.asctime(),"Server Stopped")
-    return server.udp_list
-
-
-if __name__ == '__main__':
-
-    def help():
-        print("**************************ERROR**************************")
-        print("Usage: udp_get.py [MICROWAVEhost] [PACKETthreshold] [DEVICEname] [SAVEfolder] [SUBfolder")
-        print("EXAMPLE: udp_get.py 192.168.2.65 1000 pod1 ./manual_ply 60 \n")
-        exit(1)
-        
-    if len(sys.argv) != 6:
-        help()
-    try:
-        MICROWAVEhost = str(sys.argv[1])
-        PACKETthreshold = int(sys.argv[2])
-        DEVICEname = str(sys.argv[3])
-        SAVEfolder = str(sys.argv[4])
-        SUBfolder = str(sys.argv[5])
-
-
-    except Exception as e:
-        print(e)
-        help()
-
-    udp_get_tool(MICROWAVEhost,PACKETthreshold,DEVICEname,SAVEfolder,SUBfolder)
\ No newline at end of file

--
Gitblit v1.9.1