From 8c2322adaed3d4374a7524bdb9ae8fb27f74fe7f Mon Sep 17 00:00:00 2001
From: wu_xinjun <bent20140204@outlook.com>
Date: 星期一, 21 二月 2022 17:00:05 +0800
Subject: [PATCH] optimize the udp2ply

---
 src/Microwave/demo/demoData/packet35.udp  |    0 
 src/Microwave/demo/demoData/packet78.udp  |    0 
 src/Microwave/demo/demoData/packet43.udp  |    0 
 src/Microwave/demo/demoData/packet51.udp  |    0 
 src/Microwave/demo/demoData/packet19.udp  |    0 
 src/Microwave/demo/demoData/packet27.udp  |    0 
 src/Microwave/demo/demoData/packet86.udp  |    0 
 src/Microwave/servers.py                  |    2 
 src/Microwave/demo/demoData/packet96.udp  |    0 
 src/Microwave/demo/demoData/packet3.udp   |    0 
 src/Microwave/demo/demoData/packet53.udp  |    0 
 udp2ply.bat                               |   22 +
 src/Microwave/demo/demoData/packet17.udp  |    0 
 src/Microwave/demo/demoData/packet61.udp  |    0 
 src/Microwave/demo/demoData/packet29.udp  |    0 
 src/Microwave/demo/demoData/packet92.udp  |    0 
 src/Microwave/demo/demoData/packet45.udp  |    0 
 src/Microwave/demo/demoData/packet88.udp  |    0 
 TEST_udp_get.bat                          |   21 +
 src/utils/bin2ply.py                      |   54 +++
 src/Microwave/demo/demoData/packet1.udp   |    0 
 src/Microwave/demo/demoData/packet15.udp  |    0 
 src/Microwave/demo/demoData/packet58.udp  |    0 
 src/Microwave/demo/demoData/packet94.udp  |    0 
 src/Microwave/demo/demoData/packet63.udp  |    0 
 src/Microwave/demo/demoData/packet20.udp  |    0 
 src/Microwave/demo/demoData/packet33.udp  |    0 
 src/Microwave/demo/demoData/packet76.udp  |    0 
 src/Microwave/demo/demoData/packet30.udp  |    0 
 src/utils/plot_ply.py                     |   23 +
 src/Microwave/demo/demoData/packet65.udp  |    0 
 src/Microwave/demo/demoData/packet90.udp  |    0 
 src/utils/udp2bin.py                      |   46 +++
 src/Microwave/demo/demoData/packet82.udp  |    0 
 src/Microwave/demo/demoData/packet56.udp  |    0 
 src/Microwave/demo/demoData/packet99.udp  |    0 
 src/Microwave/demo/AutoGetUDPtest.bat     |    2 
 src/Microwave/demo/demoData/packet73.udp  |    0 
 src/Client.py                             |   34 +
 src/Microwave/demo/demoData/packet13.udp  |    0 
 src/Microwave/demo/demoData/packet39.udp  |    0 
 src/Microwave/demo/demoData/packet48.udp  |    0 
 src/Microwave/demo/demoData/packet7.udp   |    0 
 src/Microwave/demo/demoData/packet22.udp  |    0 
 src/Microwave/demo/demoData/packet11.udp  |    0 
 src/Microwave/demo/demoData/packet84.udp  |    0 
 src/Microwave/demo/demoData/packet54.udp  |    0 
 src/Microwave/demo/demoData/packet71.udp  |    0 
 src/Microwave/demo/demoData/packet67.udp  |    0 
 src/Microwave/demo/demoData/packet41.udp  |    0 
 src/Microwave/demo/demoData/packet97.udp  |    0 
 udp2bin.bat                               |   20 +
 TEST_ply_show .bat                        |   18 +
 src/Microwave/demo/demoData/packet5.udp   |    0 
 src/Microwave/demo/demoData/packet24.udp  |    0 
 src/Microwave/demo/demoData/packet37.udp  |    0 
 TEST_udp2ply.bat                          |   21 +
 src/Microwave/demo/demoData/packet60.udp  |    0 
 src/Microwave/demo/demoData/packet2.udp   |    0 
 src/Microwave/demo/demoData/packet18.udp  |    0 
 src/Microwave/demo/demoData/packet95.udp  |    0 
 src/Microwave/demo/demoData/packet79.udp  |    0 
 src/Microwave/demo/demoData/packet34.udp  |    0 
 src/Microwave/demo/demoData/packet77.udp  |    0 
 src/Microwave/demo/demoData/packet36.udp  |    0 
 src/Microwave/demo/demoData/packet69.udp  |    0 
 src/Microwave/demo/demoData/packet26.udp  |    0 
 src/Microwave/demo/demoData/packet87.udp  |    0 
 src/Server.py                             |   24 +
 src/Microwave/demo/demoData/packet44.udp  |    0 
 src/Microwave/demo/demoData/packet70.udp  |    0 
 src/Microwave/demo/demoData/packet52.udp  |    0 
 startClient.bat                           |   18 +
 src/Microwave/demo/demoData/packet59.udp  |    0 
 src/Microwave/demo/demoData/packet46.udp  |    0 
 src/Microwave/demo/demoData/packet0.udp   |    0 
 src/Microwave/demo/demoData/packet16.udp  |    0 
 src/Microwave/demo/demoData/packet75.udp  |    0 
 TEST_bin2ply.bat                          |   19 +
 src/Microwave/demo/demoData/packet32.udp  |    0 
 ply_show.bat                              |   19 +
 src/Microwave/demo/demoData/packet62.udp  |    0 
 TEST_startServer.bat                      |   31 ++
 startServer.bat                           |   18 +
 src/Microwave/demo/demoData/packet28.udp  |    0 
 src/Microwave/demo/demoData/packet80.udp  |    0 
 .vscode/launch.json                       |   76 ++++
 TEST_udp2bin.bat                          |   19 +
 src/Microwave/demo/AutoSendUDPtest.bat    |    2 
 src/Microwave/demo/demoData/packet93.udp  |    0 
 src/Microwave/demo/demoData/packet9.udp   |    0 
 src/Microwave/demo/demoData/packet50.udp  |    0 
 src/Microwave/demo/demoData/packet89.udp  |    0 
 src/Microwave/demo/AutoSendAndGetTest.bat |    2 
 .gitignore                                |  157 +---------
 src/Microwave/demo/demoData/packet57.udp  |    0 
 src/Microwave/demo/demoData/packet81.udp  |    0 
 src/Microwave/demo/demoData/packet14.udp  |    0 
 bin2ply.BAT                               |   19 +
 src/utils/tools.py                        |   17 +
 src/Microwave/demo/demoData/packet6.udp   |    0 
 src/Microwave/demo/demoData/packet64.udp  |    0 
 src/engine/DeviceManager.py               |    8 
 src/Microwave/demo/demoData/packet21.udp  |    0 
 src/Microwave/demo/demoData/packet49.udp  |    0 
 src/Microwave/demo/demoData/packet8.udp   |    0 
 src/Microwave/demo/demoData/packet23.udp  |    0 
 src/Microwave/demo/demoData/packet47.udp  |    0 
 src/Microwave/demo/demoData/packet66.udp  |    0 
 src/Microwave/demo/demoData/packet91.udp  |    0 
 src/Microwave/demo/demoData/packet31.udp  |    0 
 src/Microwave/demo/demoData/packet40.udp  |    0 
 src/Microwave/demo/demoData/packet83.udp  |    0 
 udp_get.bat                               |   21 +
 src/utils/udp_get.py                      |   88 +++++
 src/Microwave/demo/demoData/packet74.udp  |    0 
 TEST_startClient.bat                      |   30 ++
 .vscode/settings.json                     |   10 
 src/Microwave/demo/demoData/packet38.udp  |    0 
 src/Microwave/demo/demoData/packet68.udp  |    0 
 src/Microwave/demo/demoData/packet25.udp  |    0 
 src/Microwave/demo/demoData/packet4.udp   |    0 
 src/Microwave/demo/AutoGetUDP.bat         |    4 
 src/Microwave/demo/demoData/packet10.udp  |    0 
 src/utils/__init__.py                     |    1 
 src/Microwave/demo/demoData/packet72.udp  |    0 
 src/Microwave/demo/demoData/packet85.udp  |    0 
 src/Microwave/demo/demoData/packet12.udp  |    0 
 src/Microwave/demo/demoData/packet55.udp  |    0 
 src/Microwave/demo/demoData/packet98.udp  |    0 
 src/Microwave/demo/demoData/packet42.udp  |    0 
 131 files changed, 670 insertions(+), 176 deletions(-)

diff --git a/.gitignore b/.gitignore
index 5c8a381..7f4d4c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,145 +1,22 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
+# cache
+**/__pycache__/
 
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-share/python-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-#  Usually these files are written by a python script from a template
-#  before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.nox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-*.py,cover
-.hypothesis/
-.pytest_cache/
-cover/
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-db.sqlite3-journal
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-.pybuilder/
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# IPython
-profile_default/
-ipython_config.py
-
-# pyenv
-#   For a library or package, you might want to ignore these files since the code is
-#   intended to run in multiple environments; otherwise, check them in:
-# .python-version
-
-# pipenv
-#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
-#   However, in case of collaboration, if having platform-specific dependencies or dependencies
-#   having no cross-platform support, pipenv may install dependencies that don't work, or not
-#   install all needed dependencies.
-#Pipfile.lock
-
-# PEP 582; used by e.g. github.com/David-OConnor/pyflow
-__pypackages__/
-
-# Celery stuff
-celerybeat-schedule
-celerybeat.pid
-
-# SageMath parsed files
-*.sage.py
-
-# # Environments
-# .env
-# .venv
-# venv/
-# ENV/
-# env.bak/
-# venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
-.dmypy.json
-dmypy.json
-
-# Pyre type checker
-.pyre/
-
-# pytype static type analyzer
-.pytype/
-
-# Cython debug symbols
-cython_debug/
-/*.udp
-
-.vs
+# proto
 src/protos/aerial_pb2.py
-src/microwave/demo/*Data/
 
+# env
 env/aerial_deploy
 env/*.gz
+
+# demodata
+src/microwave/demo/saveUdPData/
+
+# data & image & microwave
+Data
+Images
+Microwaves
+Manual_Microwave*
+
+# log
+*.log
+
diff --git a/.vscode/launch.json b/.vscode/launch.json
index add5650..0c7dc89 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -5,34 +5,86 @@
     "version": "0.2.0",
     "configurations": [
         {
-            "name": "udp server test",
+            "name": "Client_local",
             "type": "python",
             "request": "launch",
-            "program": "src/udp_test/udp.py",
+            "program": "${workspaceFolder}/src/Client.py",
+            "args": [
+                "localhost",
+                "chai",
+                "password123",
+                "aerial_rpc",
+                "pod1",
+                "http://localhost/api",
+                "localhost"
+            ],
             "console": "integratedTerminal"
         },
         {
-            "name": "Python: 褰撳墠鏂囦欢",
+            "name": "Client_production",
             "type": "python",
             "request": "launch",
-            "program": "${file}",
+            "program": "${workspaceFolder}/src/Client.py",
+            "args": [
+                "172.17.17.206",
+                "chai",
+                "password123",
+                "aerial_rpc",
+                "pod1",
+                "http://172.17.17.206/api",
+                "192.168.2.65"
+            ],
             "console": "integratedTerminal"
         },
         {
-            "name": "Python: Flask-Server",
+            "name": "Server_local",
             "type": "python",
             "request": "launch",
-            "program": "${workspaceFolder}/src/Server/Server.py",
-            "console": "integratedTerminal",
-            "cwd": "${workspaceFolder}/src/Server"
+            "program": "${workspaceFolder}/src/Server.py",
+            "args": [
+                "localhost",
+                "chai",
+                "password123",
+                "aerial_rpc",
+                "5000",
+                "./Images"
+            ],
+            "console": "integratedTerminal"
         },
         {
-            "name": "Python: parser",
+            "name": "Server_production",
             "type": "python",
             "request": "launch",
-            "program": "${workspaceFolder}/src/Client/ParserTest.py",
-            "console": "integratedTerminal",
-            "cwd": "${workspaceFolder}/src/Client"
+            "program": "${workspaceFolder}/src/Server.py",
+            "args": [
+                "172.17.17.206",
+                "chai",
+                "password123",
+                "aerial_rpc",
+                "5000",
+                "./Images"
+            ],
+            "console": "integratedTerminal"
+        },
+        {
+            "name": "udp2bin",
+            "type": "python",
+            "request": "launch",
+            "program": "${workspaceFolder}/src/utils/udp2bin.py",
+            "args": [
+                "./Manual_Microwave/pod1-2022-02-21-15-34-45/"
+            ],
+            "console": "integratedTerminal"
+        },
+        {
+            "name": "bin2ply",
+            "type": "python",
+            "request": "launch",
+            "program": "${workspaceFolder}/src/utils/bin2ply.py",
+            "args": [
+                "./Manual_Microwave/pod1-2022-02-21-15-34-45/"
+            ],
+            "console": "integratedTerminal"
         }
     ]
 }
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 2082822..91b244f 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -7,5 +7,13 @@
             "--proto_path=${workspaceRoot}/proto",
             "--python_out=${workspaceRoot}/src/protos"
         ]
-    }
+    },
+    "python":{
+    },
+    "jupyter.kernels.filter": [
+        {
+            "type": "jupyterKernelspec",
+            "path": "${workspaceFolder}/env/aerial_deploy/python.exe"
+        }
+    ]
 }
\ No newline at end of file
diff --git a/TEST_bin2ply.bat b/TEST_bin2ply.bat
new file mode 100644
index 0000000..d7ec3bc
--- /dev/null
+++ b/TEST_bin2ply.bat
@@ -0,0 +1,19 @@
+@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% 
+)
+
+set BINfolder=./Manual_Microwave_test/pod1-2022-02-21-15-34-45/
+
+@REM ---------------Usage: bin2ply.py [BINfolder]
+%aerialpython% ./src/utils/bin2ply.py %BINfolder%
+pause
\ No newline at end of file
diff --git a/TEST_ply_show .bat b/TEST_ply_show .bat
new file mode 100644
index 0000000..fe15b2f
--- /dev/null
+++ b/TEST_ply_show .bat
@@ -0,0 +1,18 @@
+@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% 
+)
+
+set PLYfile=./Manual_Microwave_test/pod1-2022-02-21-15-34-45/2522.ply
+@REM -------------- Usage: plot_ply.py [PLYfile]"
+%aerialpython% ./src/utils/plot_ply.py %PLYfile%
+pause
\ No newline at end of file
diff --git a/TEST_startClient.bat b/TEST_startClient.bat
new file mode 100644
index 0000000..a736226
--- /dev/null
+++ b/TEST_startClient.bat
@@ -0,0 +1,30 @@
+@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% 
+)
+
+set MQhost=localhost
+set MQuser=chai
+set MQpassword=password123
+set QUEUEname=aerial_rpc
+set DEVICEname=pod1
+set SERVERhost=http://localhost/api
+set MICROWAVEhost=localhost
+set LOGfile=ClientTEST.log
+
+@REM Launch the Client
+echo the log file will be saved in the [%LOGfile%] file
+echo Client.py is running ...
+@REM -------- Usage: Client.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [DEVICEname] [SERVERhost] [MICROWAVEhost]
+%aerialpython% ./src/Client.py %MQhost% %MQuser% %MQpassword% %QUEUEname% %DEVICEname% %SERVERhost% %MICROWAVEhost% >> %LOGfile%
+echo Client.py has been terminited.
+pause
diff --git a/TEST_startServer.bat b/TEST_startServer.bat
new file mode 100644
index 0000000..e0f64a3
--- /dev/null
+++ b/TEST_startServer.bat
@@ -0,0 +1,31 @@
+@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% 
+)
+
+set MQhost=localhost
+set MQuser=chai
+set MQpassword=password123
+set QUEUEname=aerial_rpc
+set WEBport=5000
+set SAVEfolder=./ImagesTEST
+set LOGfile=ServerTEST.log
+
+@REM Launch the Server
+@REM -------- Usage: Server.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [WEBport] [SAVEfolder]")
+echo the log file will be saved in the [%LOGfile%] file
+echo Server.py is running ...
+@REM -------- Usage: Server.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [WEBport] [SAVEfolder]")
+%aerialpython% ./src/Server.py %MQhost% %MQuser% %MQpassword% %QUEUEname% %WEBport% %SAVEfolder% >> %LOGfile%
+echo Server.py has been terminited.
+pause
+
diff --git a/TEST_udp2bin.bat b/TEST_udp2bin.bat
new file mode 100644
index 0000000..f13891b
--- /dev/null
+++ b/TEST_udp2bin.bat
@@ -0,0 +1,19 @@
+@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% 
+)
+
+set UDPfolder=./Manual_Microwave_test/pod1-2022-02-21-15-34-45/
+
+@REM ---------------Usage: udp2bin.py [UDPfolder]
+%aerialpython% ./src/utils/udp2bin.py %UDPfolder%
+pause
\ No newline at end of file
diff --git a/TEST_udp2ply.bat b/TEST_udp2ply.bat
new file mode 100644
index 0000000..c25a644
--- /dev/null
+++ b/TEST_udp2ply.bat
@@ -0,0 +1,21 @@
+@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% 
+)
+
+set UDPfolder=./Manual_Microwave_test/pod1-2022-02-21-15-34-45/
+
+@REM ---------------Usage: udp2bin.py [UDPfolder]
+%aerialpython% ./src/utils/udp2bin.py %UDPfolder%
+@REM ---------------Usage: bin2ply.py [BINfolder]
+%aerialpython% ./src/utils/bin2ply.py %UDPfolder%
+pause
\ No newline at end of file
diff --git a/TEST_udp_get.bat b/TEST_udp_get.bat
new file mode 100644
index 0000000..6892db0
--- /dev/null
+++ b/TEST_udp_get.bat
@@ -0,0 +1,21 @@
+@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% 
+)
+
+set MICROWAVEhost=172.17.17.206
+SET PACKETthreshold=100
+SET DEVICEname=pod1
+SET SAVEfolder=./Manual_Microwave_test
+@REM ---------------Usage: udp_get.py [MICROWAVEhost] [PACKETthreshold] [DEVICEname] [SAVEfolder]
+%aerialpython% ./src/utils/udp_get.py %MICROWAVEhost% %PACKETthreshold% %DEVICEname% %SAVEfolder%
+pause
\ No newline at end of file
diff --git a/bin2ply.BAT b/bin2ply.BAT
new file mode 100644
index 0000000..55edffe
--- /dev/null
+++ b/bin2ply.BAT
@@ -0,0 +1,19 @@
+@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% 
+)
+@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%
+pause
\ No newline at end of file
diff --git a/ply_show.bat b/ply_show.bat
new file mode 100644
index 0000000..3237955
--- /dev/null
+++ b/ply_show.bat
@@ -0,0 +1,19 @@
+@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% 
+)
+@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%
+pause
\ No newline at end of file
diff --git a/src/Client.py b/src/Client.py
index 3e0b982..3758f0f 100644
--- a/src/Client.py
+++ b/src/Client.py
@@ -13,6 +13,26 @@
     sys.exit()
 
 if __name__ == '__main__':
+    def help():
+        print("Usage: Client.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [DEVICEname] [SERVERhost] [MICROWAVEhost]")
+        print("EXAMPLE: Client.py 172.17.17.206 chai password123 aerial_rpc pod1 http://172.17.17.206/api 192.168.2.65")
+        exit(1)
+
+    if len(sys.argv) != 8:
+        help()
+    try:
+        MQhost = str(sys.argv[1])
+        MQuser = str(sys.argv[2])
+        MQpassword = str(sys.argv[3])
+        QUEUEname = str(sys.argv[4])
+        DEVICEname = str(sys.argv[5])
+        SERVERhost = str(sys.argv[6])
+        MICROWAVEhost = str(sys.argv[7])
+
+    except Exception as e:
+        print(e)
+        help()
+
     print("Start AcquisitionMain")
     signal.signal(signal.SIGINT, quit)
     signal.signal(signal.SIGTERM, quit)
@@ -21,12 +41,12 @@
     config_dir = os.path.join(__file__, "..", "config.json" )
     config_path = os.path.abspath(config_dir)
     config = Config(config_path)
-    client = AcquisitionMain('localhost',
-                             'chai',
-                             'password123', 
-                             'aerial_rpc', 
-                             'pod1', 
-                             'http://localhost:5000/api', 
-                             'localhost', # udp server host, 192.168.2.65 for production
+    client = AcquisitionMain(MQhost,
+                             MQuser,
+                             MQpassword, 
+                             QUEUEname, 
+                             DEVICEname, 
+                             SERVERhost, 
+                             MICROWAVEhost, # udp server host, 192.168.2.65 for production
                              config)
     client.start()
diff --git a/src/Microwave/demo/AutoGetUDP.bat b/src/Microwave/demo/AutoGetUDP.bat
index 50193ba..9db842c 100644
--- a/src/Microwave/demo/AutoGetUDP.bat
+++ b/src/Microwave/demo/AutoGetUDP.bat
@@ -9,12 +9,12 @@
 
 @REM Setting the env
 if not exist %aerialpython% (
-    %envsetting% 
+    call %envsetting% 
 )
 
 echo All data will be save in '%cd%/saveUDPData/' folder
 
-%aerialpython% udp_test_get.py test
+%aerialpython% udp_test_get.py microwave
 
 echo =========== ALL DONE ================
 
diff --git a/src/Microwave/demo/AutoGetUDPtest.bat b/src/Microwave/demo/AutoGetUDPtest.bat
index 23bba97..c8120ce 100644
--- a/src/Microwave/demo/AutoGetUDPtest.bat
+++ b/src/Microwave/demo/AutoGetUDPtest.bat
@@ -9,7 +9,7 @@
 
 @REM Setting the env
 if not exist %aerialpython% (
-    %envsetting% 
+    call %envsetting% 
 )
 
 echo All data will be saved in '%cd%/saveUDPData/' folder
diff --git a/src/Microwave/demo/AutoSendAndGetTest.bat b/src/Microwave/demo/AutoSendAndGetTest.bat
index c3029c1..73f4873 100644
--- a/src/Microwave/demo/AutoSendAndGetTest.bat
+++ b/src/Microwave/demo/AutoSendAndGetTest.bat
@@ -9,7 +9,7 @@
 
 @REM Setting the env
 if not exist %aerialpython% (
-    %envsetting% 
+    call %envsetting% 
 )
 
 start AutoGetUDPtest.bat 
diff --git a/src/Microwave/demo/AutoSendUDPtest.bat b/src/Microwave/demo/AutoSendUDPtest.bat
index 79ca0d8..f321d14 100644
--- a/src/Microwave/demo/AutoSendUDPtest.bat
+++ b/src/Microwave/demo/AutoSendUDPtest.bat
@@ -9,7 +9,7 @@
 
 @REM Setting the env
 if not exist %aerialpython% (
-    %envsetting% 
+    call %envsetting% 
 )
 
 echo All data saved in '%cd%/demoUDPData/' folder will be sent to 127.0.0.1:9911
diff --git a/src/Microwave/demo/demoData/packet0.udp b/src/Microwave/demo/demoData/packet0.udp
new file mode 100644
index 0000000..45ec6af
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet0.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet1.udp b/src/Microwave/demo/demoData/packet1.udp
new file mode 100644
index 0000000..bdcd817
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet1.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet10.udp b/src/Microwave/demo/demoData/packet10.udp
new file mode 100644
index 0000000..cbdae1b
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet10.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet11.udp b/src/Microwave/demo/demoData/packet11.udp
new file mode 100644
index 0000000..47e9442
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet11.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet12.udp b/src/Microwave/demo/demoData/packet12.udp
new file mode 100644
index 0000000..15ae507
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet12.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet13.udp b/src/Microwave/demo/demoData/packet13.udp
new file mode 100644
index 0000000..c6b1347
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet13.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet14.udp b/src/Microwave/demo/demoData/packet14.udp
new file mode 100644
index 0000000..276ad97
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet14.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet15.udp b/src/Microwave/demo/demoData/packet15.udp
new file mode 100644
index 0000000..f1edce3
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet15.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet16.udp b/src/Microwave/demo/demoData/packet16.udp
new file mode 100644
index 0000000..3ecac02
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet16.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet17.udp b/src/Microwave/demo/demoData/packet17.udp
new file mode 100644
index 0000000..6c01a95
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet17.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet18.udp b/src/Microwave/demo/demoData/packet18.udp
new file mode 100644
index 0000000..6f5d34b
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet18.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet19.udp b/src/Microwave/demo/demoData/packet19.udp
new file mode 100644
index 0000000..979e72a
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet19.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet2.udp b/src/Microwave/demo/demoData/packet2.udp
new file mode 100644
index 0000000..c1b9840
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet2.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet20.udp b/src/Microwave/demo/demoData/packet20.udp
new file mode 100644
index 0000000..90b9361
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet20.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet21.udp b/src/Microwave/demo/demoData/packet21.udp
new file mode 100644
index 0000000..1c42e28
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet21.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet22.udp b/src/Microwave/demo/demoData/packet22.udp
new file mode 100644
index 0000000..144c58f
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet22.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet23.udp b/src/Microwave/demo/demoData/packet23.udp
new file mode 100644
index 0000000..3955833
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet23.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet24.udp b/src/Microwave/demo/demoData/packet24.udp
new file mode 100644
index 0000000..6ca2a5b
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet24.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet25.udp b/src/Microwave/demo/demoData/packet25.udp
new file mode 100644
index 0000000..ba36f9e
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet25.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet26.udp b/src/Microwave/demo/demoData/packet26.udp
new file mode 100644
index 0000000..e919a43
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet26.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet27.udp b/src/Microwave/demo/demoData/packet27.udp
new file mode 100644
index 0000000..2075503
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet27.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet28.udp b/src/Microwave/demo/demoData/packet28.udp
new file mode 100644
index 0000000..16544f4
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet28.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet29.udp b/src/Microwave/demo/demoData/packet29.udp
new file mode 100644
index 0000000..dd261f7
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet29.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet3.udp b/src/Microwave/demo/demoData/packet3.udp
new file mode 100644
index 0000000..4648123
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet3.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet30.udp b/src/Microwave/demo/demoData/packet30.udp
new file mode 100644
index 0000000..b8179c4
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet30.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet31.udp b/src/Microwave/demo/demoData/packet31.udp
new file mode 100644
index 0000000..9772cb9
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet31.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet32.udp b/src/Microwave/demo/demoData/packet32.udp
new file mode 100644
index 0000000..c64b0af
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet32.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet33.udp b/src/Microwave/demo/demoData/packet33.udp
new file mode 100644
index 0000000..702ac41
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet33.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet34.udp b/src/Microwave/demo/demoData/packet34.udp
new file mode 100644
index 0000000..79dccdc
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet34.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet35.udp b/src/Microwave/demo/demoData/packet35.udp
new file mode 100644
index 0000000..eab9861
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet35.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet36.udp b/src/Microwave/demo/demoData/packet36.udp
new file mode 100644
index 0000000..9ac7d57
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet36.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet37.udp b/src/Microwave/demo/demoData/packet37.udp
new file mode 100644
index 0000000..e851049
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet37.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet38.udp b/src/Microwave/demo/demoData/packet38.udp
new file mode 100644
index 0000000..8f3f3de
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet38.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet39.udp b/src/Microwave/demo/demoData/packet39.udp
new file mode 100644
index 0000000..218e0c0
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet39.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet4.udp b/src/Microwave/demo/demoData/packet4.udp
new file mode 100644
index 0000000..8fbfa0e
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet4.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet40.udp b/src/Microwave/demo/demoData/packet40.udp
new file mode 100644
index 0000000..30da04c
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet40.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet41.udp b/src/Microwave/demo/demoData/packet41.udp
new file mode 100644
index 0000000..427cb47
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet41.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet42.udp b/src/Microwave/demo/demoData/packet42.udp
new file mode 100644
index 0000000..580cebd
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet42.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet43.udp b/src/Microwave/demo/demoData/packet43.udp
new file mode 100644
index 0000000..efbccb5
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet43.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet44.udp b/src/Microwave/demo/demoData/packet44.udp
new file mode 100644
index 0000000..93722e8
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet44.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet45.udp b/src/Microwave/demo/demoData/packet45.udp
new file mode 100644
index 0000000..ac7f7a1
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet45.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet46.udp b/src/Microwave/demo/demoData/packet46.udp
new file mode 100644
index 0000000..7571a79
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet46.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet47.udp b/src/Microwave/demo/demoData/packet47.udp
new file mode 100644
index 0000000..022174c
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet47.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet48.udp b/src/Microwave/demo/demoData/packet48.udp
new file mode 100644
index 0000000..028df1f
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet48.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet49.udp b/src/Microwave/demo/demoData/packet49.udp
new file mode 100644
index 0000000..fd55199
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet49.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet5.udp b/src/Microwave/demo/demoData/packet5.udp
new file mode 100644
index 0000000..b1be8fa
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet5.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet50.udp b/src/Microwave/demo/demoData/packet50.udp
new file mode 100644
index 0000000..63a569c
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet50.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet51.udp b/src/Microwave/demo/demoData/packet51.udp
new file mode 100644
index 0000000..2592ed5
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet51.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet52.udp b/src/Microwave/demo/demoData/packet52.udp
new file mode 100644
index 0000000..af91f8a
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet52.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet53.udp b/src/Microwave/demo/demoData/packet53.udp
new file mode 100644
index 0000000..aa07cce
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet53.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet54.udp b/src/Microwave/demo/demoData/packet54.udp
new file mode 100644
index 0000000..a3ecd0a
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet54.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet55.udp b/src/Microwave/demo/demoData/packet55.udp
new file mode 100644
index 0000000..b02a1f3
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet55.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet56.udp b/src/Microwave/demo/demoData/packet56.udp
new file mode 100644
index 0000000..94ab22f
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet56.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet57.udp b/src/Microwave/demo/demoData/packet57.udp
new file mode 100644
index 0000000..8f7132c
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet57.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet58.udp b/src/Microwave/demo/demoData/packet58.udp
new file mode 100644
index 0000000..b78bcd5
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet58.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet59.udp b/src/Microwave/demo/demoData/packet59.udp
new file mode 100644
index 0000000..c91c8a7
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet59.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet6.udp b/src/Microwave/demo/demoData/packet6.udp
new file mode 100644
index 0000000..fde0113
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet6.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet60.udp b/src/Microwave/demo/demoData/packet60.udp
new file mode 100644
index 0000000..2f5012a
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet60.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet61.udp b/src/Microwave/demo/demoData/packet61.udp
new file mode 100644
index 0000000..efb3fd9
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet61.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet62.udp b/src/Microwave/demo/demoData/packet62.udp
new file mode 100644
index 0000000..1dc13e5
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet62.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet63.udp b/src/Microwave/demo/demoData/packet63.udp
new file mode 100644
index 0000000..39fb456
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet63.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet64.udp b/src/Microwave/demo/demoData/packet64.udp
new file mode 100644
index 0000000..2b31395
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet64.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet65.udp b/src/Microwave/demo/demoData/packet65.udp
new file mode 100644
index 0000000..cc20dd3
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet65.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet66.udp b/src/Microwave/demo/demoData/packet66.udp
new file mode 100644
index 0000000..cc9834a
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet66.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet67.udp b/src/Microwave/demo/demoData/packet67.udp
new file mode 100644
index 0000000..7bd1728
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet67.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet68.udp b/src/Microwave/demo/demoData/packet68.udp
new file mode 100644
index 0000000..cbdae1b
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet68.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet69.udp b/src/Microwave/demo/demoData/packet69.udp
new file mode 100644
index 0000000..09bbe10
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet69.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet7.udp b/src/Microwave/demo/demoData/packet7.udp
new file mode 100644
index 0000000..f39b222
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet7.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet70.udp b/src/Microwave/demo/demoData/packet70.udp
new file mode 100644
index 0000000..f0f22f1
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet70.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet71.udp b/src/Microwave/demo/demoData/packet71.udp
new file mode 100644
index 0000000..4a6e31c
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet71.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet72.udp b/src/Microwave/demo/demoData/packet72.udp
new file mode 100644
index 0000000..6aa2d01
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet72.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet73.udp b/src/Microwave/demo/demoData/packet73.udp
new file mode 100644
index 0000000..ef5e1e2
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet73.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet74.udp b/src/Microwave/demo/demoData/packet74.udp
new file mode 100644
index 0000000..abad527
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet74.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet75.udp b/src/Microwave/demo/demoData/packet75.udp
new file mode 100644
index 0000000..84cf797
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet75.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet76.udp b/src/Microwave/demo/demoData/packet76.udp
new file mode 100644
index 0000000..88b736a
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet76.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet77.udp b/src/Microwave/demo/demoData/packet77.udp
new file mode 100644
index 0000000..0b3ff02
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet77.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet78.udp b/src/Microwave/demo/demoData/packet78.udp
new file mode 100644
index 0000000..1be3d16
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet78.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet79.udp b/src/Microwave/demo/demoData/packet79.udp
new file mode 100644
index 0000000..78066c9
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet79.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet8.udp b/src/Microwave/demo/demoData/packet8.udp
new file mode 100644
index 0000000..e253b20
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet8.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet80.udp b/src/Microwave/demo/demoData/packet80.udp
new file mode 100644
index 0000000..ac896f2
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet80.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet81.udp b/src/Microwave/demo/demoData/packet81.udp
new file mode 100644
index 0000000..2b31395
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet81.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet82.udp b/src/Microwave/demo/demoData/packet82.udp
new file mode 100644
index 0000000..81c14a1
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet82.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet83.udp b/src/Microwave/demo/demoData/packet83.udp
new file mode 100644
index 0000000..c8a9c4d
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet83.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet84.udp b/src/Microwave/demo/demoData/packet84.udp
new file mode 100644
index 0000000..7fa678f
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet84.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet85.udp b/src/Microwave/demo/demoData/packet85.udp
new file mode 100644
index 0000000..a0ec621
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet85.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet86.udp b/src/Microwave/demo/demoData/packet86.udp
new file mode 100644
index 0000000..9c707b5
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet86.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet87.udp b/src/Microwave/demo/demoData/packet87.udp
new file mode 100644
index 0000000..8d608a5
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet87.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet88.udp b/src/Microwave/demo/demoData/packet88.udp
new file mode 100644
index 0000000..db31558
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet88.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet89.udp b/src/Microwave/demo/demoData/packet89.udp
new file mode 100644
index 0000000..1077acf
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet89.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet9.udp b/src/Microwave/demo/demoData/packet9.udp
new file mode 100644
index 0000000..411ee5c
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet9.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet90.udp b/src/Microwave/demo/demoData/packet90.udp
new file mode 100644
index 0000000..68a44a8
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet90.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet91.udp b/src/Microwave/demo/demoData/packet91.udp
new file mode 100644
index 0000000..aa7fac1
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet91.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet92.udp b/src/Microwave/demo/demoData/packet92.udp
new file mode 100644
index 0000000..5d4b12f
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet92.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet93.udp b/src/Microwave/demo/demoData/packet93.udp
new file mode 100644
index 0000000..273e0bf
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet93.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet94.udp b/src/Microwave/demo/demoData/packet94.udp
new file mode 100644
index 0000000..c519c4e
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet94.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet95.udp b/src/Microwave/demo/demoData/packet95.udp
new file mode 100644
index 0000000..f72c0fb
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet95.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet96.udp b/src/Microwave/demo/demoData/packet96.udp
new file mode 100644
index 0000000..a7614ef
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet96.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet97.udp b/src/Microwave/demo/demoData/packet97.udp
new file mode 100644
index 0000000..cd53dd6
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet97.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet98.udp b/src/Microwave/demo/demoData/packet98.udp
new file mode 100644
index 0000000..427d702
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet98.udp
Binary files differ
diff --git a/src/Microwave/demo/demoData/packet99.udp b/src/Microwave/demo/demoData/packet99.udp
new file mode 100644
index 0000000..6ccc285
--- /dev/null
+++ b/src/Microwave/demo/demoData/packet99.udp
Binary files differ
diff --git a/src/Microwave/servers.py b/src/Microwave/servers.py
index 9ce2a7f..e9c315b 100644
--- a/src/Microwave/servers.py
+++ b/src/Microwave/servers.py
@@ -132,7 +132,7 @@
             data1_str = data1.SerializeToString()
             msg.data1.length = len(data1_str)
             msg.data1.data = data1_str
-            self.msg_queue.put(msg)
+            self.server.msg_queue.put(msg)
 
 
 class MicroWaveUDPServer(UDPServer):
diff --git a/src/Server.py b/src/Server.py
index f0e8ca2..511d04c 100644
--- a/src/Server.py
+++ b/src/Server.py
@@ -35,9 +35,9 @@
     def _on_sys_command(self, req: pb.RequestCommand, resp: pb.ResponseCommand):
         if pb.SubCommand.POWER_ON_SUB_COMMAND == req.sub_command:
             print('power on message received')
-            self._device_manager.get_device(req.device_id)
+            self._device_manager.get_device(req.device_id,save_folder)
         elif pb.SubCommand.POWER_OFF_SUB_COMMAND == req.sub_command:
-            device = self._device_manager.get_device(req.device_id)
+            device = self._device_manager.get_device(req.device_id,save_folder)
             device['power_on'] = False
             print('power off message received')
         return
@@ -91,5 +91,25 @@
 
 
 if __name__ == "__main__":
+    def help():
+        print("Usage: Server.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [WEBport] [SAVEfolder]")
+        print("EXAMPLE: Server.py localhost chai password123 aerial_rpc 5000 ./Images")
+        exit(1)
+
+    if len(sys.argv) != 7:
+        help()
+    try:
+        MQhost = str(sys.argv[1])
+        MQuser = str(sys.argv[2])
+        MQpassword = str(sys.argv[3])
+        QUEUEname = str(sys.argv[4])
+        WEBport = int(sys.argv[5])
+        SAVEfolder = str(sys.argv[6])
+        global save_folder
+        save_folder = SAVEfolder
+
+    except Exception as e:
+        print(e)
+        help()
     server = MyServer(host="localhost", user='chai', password='password123', queue='aerial_rpc', port=5000)
     server.run_all()
diff --git a/src/engine/DeviceManager.py b/src/engine/DeviceManager.py
index 7909d32..715cc21 100644
--- a/src/engine/DeviceManager.py
+++ b/src/engine/DeviceManager.py
@@ -19,13 +19,13 @@
         channel.queue_declare(queue=device_id + "_callback")
         return channel
 
-    def get_device(self, device_id: str):
+    def get_device(self, device_id: str, save_folder: str):
         device = self._devices.get(device_id, None)
         if device is None:
             start = datetime.datetime.now()
-            if not os.path.exists('./Images'):
-                os.mkdir('./Images')
-            path = f"./Images/{device_id}-{start.strftime('%Y-%m-%d-%H-%M-%S')}"
+            if not os.path.exists(save_folder):
+                os.mkdir(save_folder)
+            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)
             device = dict(
diff --git a/src/utils/__init__.py b/src/utils/__init__.py
new file mode 100644
index 0000000..6ac1ccc
--- /dev/null
+++ b/src/utils/__init__.py
@@ -0,0 +1 @@
+from .tools import *
\ No newline at end of file
diff --git a/src/utils/bin2ply.py b/src/utils/bin2ply.py
new file mode 100644
index 0000000..38b12ba
--- /dev/null
+++ b/src/utils/bin2ply.py
@@ -0,0 +1,54 @@
+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
+
+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])
+        # example pod1-2022-02-21-13-25-03_packet125.udp --> 125
+        sort_lambda = lambda x:int(x.split('.')[0])
+        bin_files = file_fliter(BINfolder,'bin', sort_lambda)
+
+    except Exception as e:
+        print(e)
+        help()
+    
+    for file in bin_files:
+
+        filename = file
+        (fn, ext) = os.path.splitext(filename)
+        with open(os.path.join(BINfolder,file), "rb") as bin_file:
+            buf = bin_file.read()
+            point_cloud = MicroWaveParser.ParserFrame(buf)
+            with open(os.path.join(BINfolder,fn +".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"Frame {fn}.ply have been saved with {n_p} points!")
\ No newline at end of file
diff --git a/src/utils/plot_ply.py b/src/utils/plot_ply.py
new file mode 100644
index 0000000..855395a
--- /dev/null
+++ b/src/utils/plot_ply.py
@@ -0,0 +1,23 @@
+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/tools.py b/src/utils/tools.py
new file mode 100644
index 0000000..90adc7c
--- /dev/null
+++ b/src/utils/tools.py
@@ -0,0 +1,17 @@
+import os, sys
+
+def file_fliter(folder:str, file_ext:str, sort_format):
+
+    files_List = os.listdir(folder)
+    target_files = []
+
+    # flitered by file extention name
+    for file in files_List:
+        if file.split('.')[-1] == file_ext:
+            target_files.append(file)
+    # sort the list by the sort_format
+    target_files.sort(key=sort_format)
+
+    return target_files
+    
+
diff --git a/src/utils/udp2bin.py b/src/utils/udp2bin.py
new file mode 100644
index 0000000..be2250f
--- /dev/null
+++ b/src/utils/udp2bin.py
@@ -0,0 +1,46 @@
+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
+
+
+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:
+        UDPfolder = str(sys.argv[1])
+        # 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)
+
+    except Exception as e:
+        print(e)
+        help()
+
+    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()
\ No newline at end of file
diff --git a/src/utils/udp_get.py b/src/utils/udp_get.py
new file mode 100644
index 0000000..a34d386
--- /dev/null
+++ b/src/utils/udp_get.py
@@ -0,0 +1,88 @@
+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}")
+
+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)
+            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)
+
+        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()
+        packed_count += 1
+        
+        if packed_count >= packet_threshold:
+            UDPServer.server_close(server)
+
+
+if __name__ == '__main__':
+
+    def help():
+        print("Usage: udp_get.py [MICROWAVEhost] [PACKETthreshold] [DEVICEname] [SAVEfolder]")
+        print("EXAMPLE: udp_get.py 192.168.2.65 1000 pod1 ./manual_ply")
+        exit(1)
+
+    if len(sys.argv) != 5:
+        help()
+    try:
+        MICROWAVEhost = str(sys.argv[1])
+        PACKETthreshold = int(sys.argv[2])
+        DEVICEname = str(sys.argv[3])
+        SAVEfolder = str(sys.argv[4])
+
+        global packet_threshold
+        packet_threshold = PACKETthreshold
+        global device_id
+        device_id = DEVICEname
+        global save_folder
+        save_folder = SAVEfolder
+
+    except Exception as e:
+        print(e)
+        help()
+
+    global server
+    
+    # host = ''
+    # host = '192.168.2.65' # use this host to get the udp data from microwave device
+    port = 9911
+    server =UDPServer((MICROWAVEhost, port), PointCloudUDPRequestHandler)
+    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")
\ No newline at end of file
diff --git a/startClient.bat b/startClient.bat
index 87ded5b..3201c92 100644
--- a/startClient.bat
+++ b/startClient.bat
@@ -9,8 +9,22 @@
 
 @REM Setting the env
 if not exist %aerialpython% (
-    %envsetting% 
+    call %envsetting% 
 )
 
+set MQhost=172.17.17.206
+set MQuser=chai
+set MQpassword=password123
+set QUEUEname=aerial_rpc
+set DEVICEname=pod1
+set SERVERhost=http://172.17.17.206/api
+set MICROWAVEhost=192.168.2.65
+set LOGfile=Client.log
+
 @REM Launch the Client
-%aerialpython% ./src/Client.py
+echo the log file will be saved in the [%LOGfile%] file
+echo Client.py is running ...
+@REM -------- Usage: Client.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [DEVICEname] [SERVERhost] [MICROWAVEhost]
+%aerialpython% ./src/Client.py %MQhost% %MQuser% %MQpassword% %QUEUEname% %DEVICEname% %SERVERhost% %MICROWAVEhost% >> %LOGfile%
+echo Client.py has been terminited.
+pause 
diff --git a/startServer.bat b/startServer.bat
index 49b8ce6..060ec13 100644
--- a/startServer.bat
+++ b/startServer.bat
@@ -9,8 +9,22 @@
 
 @REM Setting the env
 if not exist %aerialpython% (
-    %envsetting% 
+    call %envsetting% 
 )
 
+set MQhost=172.17.17.206
+set MQuser=chai
+set MQpassword=password123
+set QUEUEname=aerial_rpc
+set WEBport=5000
+set SAVEfolder=./Images
+set LOGfile=Server.log
+
 @REM Launch the Server
-%aerialpython% ./src/Server.py
+echo the log file will be saved in the [%LOGfile%] file
+echo Server.py is running ...
+@REM -------- Usage: Server.py [MQhost] [MQuser] [MQpassword] [QUEUEname] [WEBport] [SAVEfolder]")
+%aerialpython% ./src/Server.py %MQhost% %MQuser% %MQpassword% %QUEUEname% %WEBport% %SAVEfolder% >> >> %LOGfile%
+echo Server.py has been terminited.
+pause
+
diff --git a/udp2bin.bat b/udp2bin.bat
new file mode 100644
index 0000000..f4b8353
--- /dev/null
+++ b/udp2bin.bat
@@ -0,0 +1,20 @@
+@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% 
+)
+
+@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%
+pause
\ No newline at end of file
diff --git a/udp2ply.bat b/udp2ply.bat
new file mode 100644
index 0000000..5354a5d
--- /dev/null
+++ b/udp2ply.bat
@@ -0,0 +1,22 @@
+@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% 
+)
+
+@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%
+@REM ---------------Usage: bin2ply.py [BINfolder]
+%aerialpython% ./src/utils/bin2ply.py %UDPfolder%
+pause
\ No newline at end of file
diff --git a/udp_get.bat b/udp_get.bat
new file mode 100644
index 0000000..987fdce
--- /dev/null
+++ b/udp_get.bat
@@ -0,0 +1,21 @@
+@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% 
+)
+
+set MICROWAVEhost=192.168.2.65
+SET PACKETthreshold=1000
+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%
+pause
\ No newline at end of file

--
Gitblit v1.9.1