diff --git a/.idea/runConfigurations/OBSW_TmTcClient_GPS0_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_GPS0_Serial.xml
index 09af589ec8c66c0128f16d1dde3460d3ffb6b47d..55ec921d26c4393b7283bb553e7954328003753e 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_GPS0_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_GPS0_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s GPS0 -c 1 --hk -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_GPS1_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_GPS1_Serial.xml
index efc9a7fb9eb4bbec015c5fc73cb6f2e5722888a1..122ed72c3db2f685eaa65d8fd213146b4c6f1d90 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_GPS1_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_GPS1_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/../../../../../../../Robin/NoSyncDokumente/sourceobsw/tmtc/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s GPS1 -c 1" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_GUI.xml b/.idea/runConfigurations/OBSW_TmTcClient_GUI.xml
index 1e2ad1a573a15dfe8f0b1f2b3fb2659a0ee2c51e..1c3f526ce8059aed5785a392d39b8ebae68931c0 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_GUI.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_GUI.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 0" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Help.xml b/.idea/runConfigurations/OBSW_TmTcClient_Help.xml
index ee7dfabfeea545c62689dd93acb3ec5661429ee3..0568677bccad9898e4a78bd0f89940f361c7f402 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Help.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Help.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-h" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Service_17_Serial_.xml b/.idea/runConfigurations/OBSW_TmTcClient_Service_17_Serial_.xml
index 8a29e3d8b7fbd4a5d9a4e0ecb98552aa3312f496..ff8bcaf108630814dfa2570fdcd941c57c0ce526 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Service_17_Serial_.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Service_17_Serial_.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 17 -p -c 1" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Service_2_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_Service_2_Serial.xml
index caaa02f4f038c4064ead2851c52361690cb55267..c32ca7a0fef9c943ea04070ebce8a9a58a4ee15a 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Service_2_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Service_2_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/../../../../../../../Robin/NoSyncDokumente/sourceobsw/tmtc/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 2 -p -c 1" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Service_3_Serial_.xml b/.idea/runConfigurations/OBSW_TmTcClient_Service_3_Serial_.xml
index b2d26715d6a80233a6b8fb332249c2daea99a1ec..889e53d68d424b2178c7af179021940fe142decf 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Service_3_Serial_.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Service_3_Serial_.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 3 -p -c 1 -t 4 --hk" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Service_8_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_Service_8_Serial.xml
index 5d938cdddcbecb7d62483648b71c122c8f48fef8..f1df18fdf5489ab6968dc070e07ef8c711d006f7 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Service_8_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Service_8_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/../../../../../../../Robin/NoSyncDokumente/sourceobsw/tmtc/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 8 -p -c 1" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Service_9_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_Service_9_Serial.xml
index 07b98328c0a8457dc11bb2a4c8ba528dd5abd5cc..e608c4b749ac04f659876a79f5243c4738ca6829 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Service_9_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Service_9_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 9 -p -c 1" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Software_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_Software_Serial.xml
index 1d7176cf51f6959c281712f3222a8c21d4a2c10d..1fad21987cb43f68650e3af96273111886aac7df 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Software_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Software_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 4 -p -c 1 --hk -t 5" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Test.xml b/.idea/runConfigurations/OBSW_TmTcClient_Test.xml
index 7524486bbfcb468b7f28b212c0ee4d734b1df5c9..5962769e4ef805d011cf162f3f98f4265b33c95f 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Test.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Test.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-h" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_TmTcClient_Unit_Test_Serial.xml b/.idea/runConfigurations/OBSW_TmTcClient_Unit_Test_Serial.xml
index 90e8e4e30a2585b94e15ba87db10a1ee56242639..1a7ced34f5d9eb18dc1265ad9db49b8ec83aa53d 100644
--- a/.idea/runConfigurations/OBSW_TmTcClient_Unit_Test_Serial.xml
+++ b/.idea/runConfigurations/OBSW_TmTcClient_Unit_Test_Serial.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 5 -c 1 --hk" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_GPS0.xml b/.idea/runConfigurations/OBSW_UdpClient_GPS0.xml
index 4c547c32a5120f963f613d578af645ee376bb324..7410c2f86c050e98caa3bd2d31e28ee0a4dea23a 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_GPS0.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_GPS0.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s GPS0" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_GPS1.xml b/.idea/runConfigurations/OBSW_UdpClient_GPS1.xml
index b1caeed6616ee33db8b7190a8d9ac5979007a7dd..8ea31179d37086fa4c7153c40d1dc8e9c3f3697f 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_GPS1.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_GPS1.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s GPS1 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Listener__Mode.xml b/.idea/runConfigurations/OBSW_UdpClient_Listener__Mode.xml
index 1868c22bc9e23b809c90f7e521a5738f2cbb21af..5a86a1e21c3215487522fe63e10cf837795e8c62 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Listener__Mode.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Listener__Mode.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 1 --hk" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Service_17_Test.xml b/.idea/runConfigurations/OBSW_UdpClient_Service_17_Test.xml
index f986218222250ff00a9211a838a94ae6fbcb303f..b882acf9c17dc569a53194046d63ae570f51c104 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Service_17_Test.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Service_17_Test.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 17 -p -t 5" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Service_200_UDP.xml b/.idea/runConfigurations/OBSW_UdpClient_Service_200_UDP.xml
index e82c31b09d7bd2cbccce34765babeb5a973d29ae..499ee35528cdc60331c75a21ea75177158176e97 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Service_200_UDP.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Service_200_UDP.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 200 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Service_2_Test.xml b/.idea/runConfigurations/OBSW_UdpClient_Service_2_Test.xml
index 3dddeac9353fe9c4357bf36c074dc64b228df3b4..921369f6b3d45cef8249650a84a6180b950175fb 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Service_2_Test.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Service_2_Test.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 2 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Service_3.xml b/.idea/runConfigurations/OBSW_UdpClient_Service_3.xml
index 22cb0b2ae3740b2a98ba12ecee6738a0646c765f..cc780367450c49877165fd71f4ab2e83c46b7f89 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Service_3.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Service_3.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="$PROJECT_DIR$/OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 3 -p --hk" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Service_8.xml b/.idea/runConfigurations/OBSW_UdpClient_Service_8.xml
index 62daaad41c1a0424bca492af8a909d5dbfc5fbe5..1be681f48680aeb71575123e0c51db18c82daea1 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Service_8.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Service_8.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s 8 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Service_Dummy.xml b/.idea/runConfigurations/OBSW_UdpClient_Service_Dummy.xml
index 60ef124b138bb8d1ddfe032ccc0978655d06e5ed..fd420b59556813af31d008717163937e951ecd97 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Service_Dummy.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Service_Dummy.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 3 -s Dummy -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Single_Command.xml b/.idea/runConfigurations/OBSW_UdpClient_Single_Command.xml
index 919cb5f515cb824183c10a05e35c8a35ed1d2436..9a5d03efc63e324b4c47daf795354d2dd5ad41bd 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Single_Command.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Single_Command.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 2 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Software_Testmode.xml b/.idea/runConfigurations/OBSW_UdpClient_Software_Testmode.xml
index 7b3249a40895404cbcd7ca39ac1a5bd869614410..7342a05ba2a74ed1ac28499da17c04c41e724789 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Software_Testmode.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Software_Testmode.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 4 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="false" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Unit_Test.xml b/.idea/runConfigurations/OBSW_UdpClient_Unit_Test.xml
index 02fa79a9e47b9f63ac02cb479cd71c91589ae25e..04e8ecf8afc09a0be252cb7987da04cdafcdbce8 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Unit_Test.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Unit_Test.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 5 -p" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/.idea/runConfigurations/OBSW_UdpClient_Unit_Test_STM32.xml b/.idea/runConfigurations/OBSW_UdpClient_Unit_Test_STM32.xml
index ccb99dbae49c46541150fa87b69891a32f43c36f..b87037e36214827c896108496bf36e64784fd064 100644
--- a/.idea/runConfigurations/OBSW_UdpClient_Unit_Test_STM32.xml
+++ b/.idea/runConfigurations/OBSW_UdpClient_Unit_Test_STM32.xml
@@ -12,7 +12,7 @@
     <option name="ADD_CONTENT_ROOTS" value="true" />
     <option name="ADD_SOURCE_ROOTS" value="true" />
     <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\OBSW_TmTcClient.py" />
+    <option name="SCRIPT_NAME" value="C:\Users\Robin\NoSyncDokumente\sourceobsw\tmtc\obsw_tmtc_client.py" />
     <option name="PARAMETERS" value="-m 5 -p -t 7" />
     <option name="SHOW_COMMAND_LINE" value="false" />
     <option name="EMULATE_TERMINAL" value="true" />
diff --git a/OBSW_TmTcClient.py b/OBSW_TmTcClient.py
deleted file mode 100644
index 72cec1f69c28c1b133936cfa104aae04fed392f1..0000000000000000000000000000000000000000
--- a/OBSW_TmTcClient.py
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env python3
-"""
-@file
-    OBSW_TmTcClient.py
-@date
-    01.11.2019
-@brief
-    This client was developed by KSat for the SOURCE project to test the on-board software.
-    It can be used to to send and receive TMTC packets and TMTC sequences.
-@manual
-    Manual installation of crcmod might be needed
-        1. Install pip if it is not installed yet
-        2. Install crcmod and all other reqiored packages:
-           Command: pip install crcmod
-           or use IDE (interpreter settings -> pip in PyCharm)
-
-    The script can be used by specifying command line parameters. Please run this script with the -h flag
-    or without any command line parameters to display options. GUI is work-in-progress
-    It might be necessary to set board or PC IP address if using ethernet communication.
-    Default values should work normally though. Use higher timeout value (-t Parameter) for STM32
-
-    Example command to test service 17,
-    assuming no set client IP (set manually to PC IP Address if necessary) and default board IP 169.254.1.38:
-    OBSW_TmTcClient.py -m 3 -s 17
-    Example to run Unit Test:
-    OBSW_TmTcClient.py -m 5
-    Example to test service 17 with HK output and serial communication:
-    OBSW_TmTcClient.py -m 3 -s 17 --hk -c 1
-    Get command line help:
-    OBSW_TmTcClient.py -h
-
-    There are four different Modes:
-        0. GUI Mode: Experimental mode, also called if no input parameter are specified
-        1. Listener Mode: Only Listen for incoming TM packets
-        2. SingleCommandMode: Send Single Command repeatedly until answer is received,
-            only listen after that
-        3. ServiceTestMode: Send all Telecommands belonging to a certain service
-            and scan for replies for each telecommand. Listen after that
-        4. SoftwareTestMode: Send all services and perform reply scanning like mode 3.
-            Listen after that
-        5. Unit Test Mode: Performs a unit test which returns a simple OK or NOT OK. This mode
-            has the capability to send TCs in bursts, where applicable
-
-    If there are problems receiving packets with Ethernet Communication,
-    use the tool Wireshark to track ethernet communication
-    for UDP echo packets (requests and response).
-    If the packets appear, there might be a problematic firewall setting.
-    Please ensure that python.exe UDP packets are not blocked in advanced firewall settings
-    and create a rule to allow packets from port 2008.
-
-@author:
-    S. Gaisser, J. Meier, R. Mueller
-"""
-import atexit
-from collections import deque
-import unittest
-import logging
-
-from test import OBSW_PusServiceTest
-from config import OBSW_Config as g
-from config.OBSW_Config import setGlobals
-from tc.OBSW_TcPacker import PUSTelecommand, createTotalTcQueue, serviceTestSelect
-from sendreceive.OBSW_SingleCommandSenderReceiver import SingleCommandSenderReceiver
-from sendreceive.OBSW_SequentialSenderReceiver import SequentialCommandSenderReceiver
-from sendreceive.OBSW_TmListener import TmListener
-from utility.OBSW_ArgParser import parseInputArguments
-from utility.OBSW_TmTcPrinter import TmTcPrinter, TmTcPrinterT
-from comIF.OBSW_Ethernet_ComIF import EthernetComIF
-from comIF.OBSW_Serial_ComIF import SerialComIF
-from gui.OBSW_TmtcGUI import TmTcGUI
-from gui.OBSW_BackendTest import TmTcBackend
-from utility.OBSW_ExitHandler import keyboardInterruptHandler
-from comIF.OBSW_ComInterface import ComIF_T
-
-
-def main():
-    args = parseInputArguments()
-    setGlobals(args)
-    tmtcPrinter = TmTcPrinter(g.displayMode, g.printToFile, True)
-    tmListener = 0
-    communicationInterface = 0
-    if g.modeId == g.ModeList.GUIMode:
-        backend = TmTcBackend()
-        backend.start()
-        GUI = TmTcGUI()
-        GUI.start()
-        backend.join()
-        GUI.join()
-        print("Both processes have closed")
-        exit()
-    else:
-        communicationInterface = setCommunicationInterface(tmtcPrinter)
-        atexit.register(keyboardInterruptHandler, comInterface=communicationInterface)
-        tmListener = TmListener(
-            comInterface=communicationInterface, tmTimeout=g.tmTimeout, tcTimeoutFactor=g.tcSendTimeoutFactor)
-        tmListener.start()
-    if g.modeId == g.ModeList.ListenerMode:
-        print("Listening for packages...")
-    elif g.modeId == g.ModeList.SingleCommandMode:
-        pusPacketTuple = commandPreparation()
-        SenderAndReceiver = SingleCommandSenderReceiver(
-            comInterface=communicationInterface, tmtcPrinter=tmtcPrinter, tmListener=tmListener,
-            pusPacketTuple=pusPacketTuple, tmTimeout=g.tmTimeout, tcTimeoutFactor=g.tcSendTimeoutFactor,
-            doPrintToFile=g.printToFile)
-        SenderAndReceiver.sendSingleTcAndReceiveTm()
-
-    elif g.modeId == g.ModeList.ServiceTestMode:
-        serviceQueue = deque()
-        SenderAndReceiver = SequentialCommandSenderReceiver(
-            comInterface=communicationInterface, tmtcPrinter=tmtcPrinter, tmTimeout=g.tmTimeout,
-            tcQueue=serviceTestSelect(g.service, serviceQueue), tcTimeoutFactor=g.tcSendTimeoutFactor,
-            doPrintToFile=g.printToFile, tmListener=tmListener)
-        SenderAndReceiver.sendQueueTcAndReceiveTmSequentially()
-
-    elif g.modeId == g.ModeList.SoftwareTestMode:
-        allTcQueue = createTotalTcQueue()
-        SenderAndReceiver = SequentialCommandSenderReceiver(
-            comInterface=communicationInterface, tmtcPrinter=tmtcPrinter, tmTimeout=g.tmTimeout,
-            tcQueue=allTcQueue, tcTimeoutFactor=g.tcSendTimeoutFactor, doPrintToFile=g.printToFile,
-            tmListener=tmListener)
-        SenderAndReceiver.sendQueueTcAndReceiveTmSequentially()
-
-    elif g.modeId == g.ModeList.UnitTest:
-        """
-        Set up test suite and run it with runner. Verbosity specifies detail level
-        """
-        g.tmListener = tmListener
-        g.comInterface = communicationInterface
-        g.tmtcPrinter = tmtcPrinter
-        # noinspection PyTypeChecker
-        suite = unittest.TestLoader().loadTestsFromModule(OBSW_PusServiceTest)
-        unittest.TextTestRunner(verbosity=2).run(suite)
-
-    else:
-        print("Unknown Mode, Configuration error !")
-        exit()
-    # At some later point, the program will run permanently and be able to take commands. For now
-    # we put a permanent loop here so the program doesnt exit automatically (TM Listener is daemonic)
-    while True:
-        pass
-
-
-# Prepare command for single command testing
-def commandPreparation():
-    # Direct command which triggers an additional step reply and one completion reply
-    # Single Command Testing
-    command = PUSTelecommand(service=17, subservice=1, SSC=21)
-    # command.print()
-    # file = bytearray([1, 2, 3, 4, 5])
-    # command = PUSTelecommand(service=23, subservice=1, SSC=21, data=file)
-    # command.packCommandTuple()
-    return command.packCommandTuple()
-
-
-def setCommunicationInterface(tmtcPrinter: TmTcPrinterT) -> ComIF_T:
-    """
-    Return the desired communication interface object
-    :param tmtcPrinter: TmTcPrinter object.
-    :return: CommunicationInterface object
-    """
-    try:
-        if g.comIF == g.ComIF.Ethernet:
-            communicationInterface = EthernetComIF(
-                tmtcPrinter=tmtcPrinter, tmTimeout=g.tmTimeout, tcTimeoutFactor=g.tcSendTimeoutFactor,
-                sendAddress=g.sendAddress, receiveAddress=g.recAddress)
-        else:
-            comPort = g.comPort
-            baudRate = 115200
-            g.serialTimeout = 0.05
-            communicationInterface = SerialComIF(tmtcPrinter=tmtcPrinter, comPort=comPort, baudRate=baudRate,
-                                                 serialTimeout=g.serialTimeout)
-        # else:
-        #   pass
-        return communicationInterface
-    except (IOError, OSError):
-        print("Error setting up communication interface")
-        logging.exception("Error")
-        exit()
-
-
-if __name__ == "__main__":
-    main()
-
diff --git a/README.md b/README.md
index bb3eef2e8f277f8362341104c30101bae60695f9..b9484bc9cfe86fbc1c9ad71331887c5498184434 100644
--- a/README.md
+++ b/README.md
@@ -21,16 +21,16 @@ Default values should work normally though.
 Example command to test service 17,
 assuming no set client IP (set manually to PC IP Address if necessary) and default board IP 169.254.1.38:
 ```shell script
-OBSW_TmTcClient.py -m 3 -s 17
+obsw_tmtc_client.py -m 3 -s 17
 ```
 Example to run Unit Test:
 ```shell script
-OBSW_TmTcClient.py -m 5
+obsw_tmtc_client.py -m 5
 ```
 Example to test service 3 with serial communication, printing all housekeeping packets,
 and exporting to a log file. COM port needs to be typed in manually (or set with --COM \<COM PORT>):
 ```shell script
-OBSW_TmTcClient.py -m 3 -s 3 -p --hk -c 
+obsw_tmtc_client.py -m 3 -s 3 -p --hk -c 
 ```
 
 ## Modes
diff --git a/config/OBSW_Config.py b/config/OBSW_Config.py
index b980e55e8a7a4a9337a6fcc1a0f02d90da08ddc6..06d0df50ccf03dc13fcc2b92f1e15d0e9a1fddd8 100644
--- a/config/OBSW_Config.py
+++ b/config/OBSW_Config.py
@@ -60,7 +60,7 @@ displayMode = "long"
 comIF = 0
 # COM Port for serial communication
 comPort = 'COM0'
-serialTimeout = 0.01
+serial_timeout = 0.01
 # Time related
 tmTimeout = 10
 tcSendTimeoutFactor = 2.0
@@ -84,7 +84,7 @@ tmtcPrinter = None
 
 # noinspection PyUnusedLocal
 def setGlobals(args):
-    global recAddress, sendAddress, scriptMode, modeId, service, displayMode, comIF, comPort, serialTimeout
+    global recAddress, sendAddress, scriptMode, modeId, service, displayMode, comIF, comPort, serial_timeout
     global tmTimeout, tcSendTimeoutFactor, printToFile, printHkData, printRawTmData
     if args.mode == 0:
         print("GUI mode not implemented yet !")
diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py
new file mode 100644
index 0000000000000000000000000000000000000000..dcac207aa53cdc5ab5b7f0f7f4d986bfa73d317a
--- /dev/null
+++ b/obsw_tmtc_client.py
@@ -0,0 +1,197 @@
+#!/usr/bin/env python3
+"""
+@file
+    obsw_tmtc_client.py
+@date
+    01.11.2019
+@brief
+    This client was developed by KSat for the SOURCE project to test the on-board software.
+    It can be used to to send and receive TMTC packets and TMTC sequences.
+@manual
+Manual installation of crcmod might be needed
+    1. Install pip if it is not installed yet
+    2. Install crcmod and all other reqiored packages:
+        Command: pip install crcmod
+        or use IDE (interpreter settings -> pip in PyCharm)
+
+The script can be used by specifying command line parameters.
+Please run this script with the -h flag or without any command line parameters to display options.
+GUI is work-in-progress
+It might be necessary to set board or PC IP address if using ethernet communication.
+Default values should work normally though. Use higher timeout value (-t Parameter) for STM32
+
+Example command to test service 17,
+assuming no set client IP (set manually to PC IP Address if necessary)
+and default board IP 169.254.1.38:
+    obsw_tmtc_client.py -m 3 -s 17
+Example to run Unit Test:
+    obsw_tmtc_client.py -m 5
+Example to test service 17 with HK output and serial communication:
+    obsw_tmtc_client.py -m 3 -s 17 --hk -c 1
+Get command line help:
+    obsw_tmtc_client.py -h
+
+There are four different Modes:
+    0. GUI Mode: Experimental mode, also called if no input parameter are specified
+    1. Listener Mode: Only Listen for incoming TM packets
+    2. SingleCommandMode: Send Single Command repeatedly until answer is received,
+       only listen after that
+    3. ServiceTestMode: Send all Telecommands belonging to a certain service
+       and scan for replies for each telecommand. Listen after that
+    4. SoftwareTestMode: Send all services and perform reply scanning like mode 3.
+        Listen after that
+    5. Unit Test Mode: Performs a unit test which returns a simple OK or NOT OK. This mode
+        has the capability to send TCs in bursts, where applicable
+
+If there are problems receiving packets with Ethernet Communication,
+use the tool Wireshark to track ethernet communication
+for UDP echo packets (requests and response).
+If the packets appear, there might be a problematic firewall setting.
+Please ensure that python.exe UDP packets are not blocked in advanced firewall settings
+and create a rule to allow packets from port 2008.
+
+@author:
+    S. Gaisser, J. Meier, R. Mueller
+"""
+import atexit
+import unittest
+import logging
+import sys
+from collections import deque
+
+from test import OBSW_PusServiceTest
+from config import OBSW_Config as g
+from config.OBSW_Config import setGlobals
+from tc.OBSW_TcPacker import PUSTelecommand, createTotalTcQueue, serviceTestSelect
+
+from sendreceive.OBSW_SingleCommandSenderReceiver import SingleCommandSenderReceiver
+from sendreceive.OBSW_SequentialSenderReceiver import SequentialCommandSenderReceiver
+from sendreceive.OBSW_TmListener import TmListener
+
+from utility.OBSW_ArgParser import parseInputArguments
+from utility.OBSW_TmTcPrinter import TmTcPrinter, TmTcPrinterT
+from utility.OBSW_ExitHandler import keyboardInterruptHandler
+
+from comIF.OBSW_Ethernet_ComIF import EthernetComIF
+from comIF.OBSW_Serial_ComIF import SerialComIF
+from comIF.OBSW_ComInterface import ComIF_T
+
+from gui.OBSW_TmtcGUI import TmTcGUI
+from gui.OBSW_BackendTest import TmTcBackend
+
+
+def main():
+    """
+    Runs the TMTC client, depending on input arguments
+    :return:
+    """
+    args = parseInputArguments()
+    setGlobals(args)
+    tmtc_printer = TmTcPrinter(g.displayMode, g.printToFile, True)
+    if g.modeId == g.ModeList.GUIMode:
+        backend = TmTcBackend()
+        backend.start()
+        gui = TmTcGUI()
+        gui.start()
+        backend.join()
+        gui.join()
+        print("Both processes have closed")
+        sys.exit()
+    else:
+        communication_interface = set_communication_interface(tmtc_printer)
+        atexit.register(keyboardInterruptHandler, comInterface=communication_interface)
+        tm_listener = TmListener(
+            comInterface=communication_interface, tmTimeout=g.tmTimeout,
+            tcTimeoutFactor=g.tcSendTimeoutFactor)
+        tm_listener.start()
+    if g.modeId == g.ModeList.ListenerMode:
+        print("Listening for packages...")
+    elif g.modeId == g.ModeList.SingleCommandMode:
+        pus_packet_tuple = command_preparation()
+        sender_and_receiver = SingleCommandSenderReceiver(
+            comInterface=communication_interface, tmtcPrinter=tmtc_printer, tmListener=tm_listener,
+            pusPacketTuple=pus_packet_tuple, tmTimeout=g.tmTimeout,
+            tcTimeoutFactor=g.tcSendTimeoutFactor, doPrintToFile=g.printToFile)
+        sender_and_receiver.sendSingleTcAndReceiveTm()
+
+    elif g.modeId == g.ModeList.ServiceTestMode:
+        service_queue = deque()
+        sender_and_receiver = SequentialCommandSenderReceiver(
+            comInterface=communication_interface, tmtcPrinter=tmtc_printer, tmTimeout=g.tmTimeout,
+            tcQueue=serviceTestSelect(g.service, service_queue),
+            tcTimeoutFactor=g.tcSendTimeoutFactor, doPrintToFile=g.printToFile,
+            tmListener=tm_listener)
+        sender_and_receiver.sendQueueTcAndReceiveTmSequentially()
+
+    elif g.modeId == g.ModeList.SoftwareTestMode:
+        all_tc_queue = createTotalTcQueue()
+        sender_and_receiver = SequentialCommandSenderReceiver(
+            comInterface=communication_interface, tmtcPrinter=tmtc_printer, tmTimeout=g.tmTimeout,
+            tcQueue=all_tc_queue, tcTimeoutFactor=g.tcSendTimeoutFactor,
+            doPrintToFile=g.printToFile, tmListener=tm_listener)
+        sender_and_receiver.sendQueueTcAndReceiveTmSequentially()
+
+    elif g.modeId == g.ModeList.UnitTest:
+        # Set up test suite and run it with runner. Verbosity specifies detail level
+        g.tmListener = tm_listener
+        g.comInterface = communication_interface
+        g.tmtcPrinter = tmtc_printer
+        # noinspection PyTypeChecker
+        suite = unittest.TestLoader().loadTestsFromModule(OBSW_PusServiceTest)
+        unittest.TextTestRunner(verbosity=2).run(suite)
+
+    else:
+        print("Unknown Mode, Configuration error !")
+        sys.exit()
+    # At some later point, the program will run permanently and be able to take commands.
+    # For now we put a permanent loop here so the program
+    # doesn't exit automatically (TM Listener is daemonic)
+    while True:
+        pass
+
+
+def command_preparation():
+    """
+    Prepare command for single command testing
+    :return:
+    """
+    # Direct command which triggers an additional step reply and one completion reply
+    # Single Command Testing
+    command = PUSTelecommand(service=17, subservice=1, SSC=21)
+    # command.print()
+    # file = bytearray([1, 2, 3, 4, 5])
+    # command = PUSTelecommand(service=23, subservice=1, SSC=21, data=file)
+    # command.packCommandTuple()
+    return command.packCommandTuple()
+
+
+def set_communication_interface(tmtc_printer: TmTcPrinterT) -> ComIF_T:
+    """
+    Return the desired communication interface object
+    :param tmtc_printer: TmTcPrinter object.
+    :return: CommunicationInterface object
+    """
+    try:
+        if g.comIF == g.ComIF.Ethernet:
+            communication_interface = EthernetComIF(
+                tmtcPrinter=tmtc_printer, tmTimeout=g.tmTimeout,
+                tcTimeoutFactor=g.tcSendTimeoutFactor, sendAddress=g.sendAddress,
+                receiveAddress=g.recAddress)
+        else:
+            com_port = g.comPort
+            baud_rate = 115200
+            g.serial_timeout = 0.05
+            communication_interface = SerialComIF(
+                tmtcPrinter=tmtc_printer, comPort=com_port, baudRate=baud_rate,
+                serialTimeout=g.serial_timeout)
+        # else:
+        #   pass
+        return communication_interface
+    except (IOError, OSError):
+        print("Error setting up communication interface")
+        logging.exception("Error")
+        sys.exit()
+
+
+if __name__ == "__main__":
+    main()