diff --git a/.gitignore b/.gitignore
index 564a96fd..c51106ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,19 +1,15 @@
/build*
-Debug
-Debug*
-Release
-Release*
-
+# Eclipse
.settings
.metadata
.project
.cproject
-__pycache__
-
-.idea
-
!misc/eclipse/**/.cproject
!misc/eclipse/**/.project
+# Python
+__pycache__
+.idea
+
generators/*.db
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f56a4fc..d057de50 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,12 +14,13 @@ cmake_minimum_required(VERSION 3.13)
set(CMAKE_SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
if(TGT_BSP MATCHES "arm/q7s")
- option(BUILD_WATCHDOG "Compile the OBSW watchdog insted" OFF)
+ option(EIVE_BUILD_WATCHDOG "Compile the OBSW watchdog insted" OFF)
option(BUILD_Q7S_SIMPLE_MODE OFF "Simple mode with a minimal main function")
endif()
option(ADD_ETL_LIB "Add ETL library" ON)
-option(ADD_JSON_LIB "Add JSON librara" ON)
+option(ADD_JSON_LIB "Add JSON library" ON)
+option(EIVE_SYSROOT_MAGIC "Perform sysroot magic which might not be necessary" OFF)
if(NOT FSFW_OSAL)
set(FSFW_OSAL host CACHE STRING "OS for the FSFW.")
@@ -34,7 +35,7 @@ include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake)
pre_project_config()
set(PROJECT_NAME_TO_SET eive-obsw-$ENV{USERNAME})
-if(BUILD_WATCHDOG)
+if(EIVE_BUILD_WATCHDOG)
set(PROJECT_NAME_TO_SET eive-watchdog)
endif()
@@ -117,7 +118,7 @@ else()
endif()
# Configuration files
-if(NOT BUILD_WATCHDOG)
+if(NOT EIVE_BUILD_WATCHDOG)
configure_file(${COMMON_CONFIG_PATH}/commonConfig.h.in commonConfig.h)
configure_file(${FSFW_CONFIG_PATH}/FSFWConfig.h.in FSFWConfig.h)
configure_file(${FSFW_CONFIG_PATH}/OBSWConfig.h.in OBSWConfig.h)
@@ -154,7 +155,7 @@ endif()
-if(NOT BUILD_WATCHDOG)
+if(NOT EIVE_BUILD_WATCHDOG)
if(ADD_LINUX_FILES)
add_subdirectory(${LINUX_PATH})
endif()
@@ -165,7 +166,7 @@ if(NOT BUILD_WATCHDOG)
endif()
endif()
-if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT BUILD_WATCHDOG))
+if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT EIVE_BUILD_WATCHDOG))
add_subdirectory(${LWGPS_LIB_PATH})
add_subdirectory(${FSFW_PATH})
add_subdirectory(${MISSION_PATH})
@@ -173,7 +174,7 @@ if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT BUILD_WATCHDOG))
add_subdirectory(${ARCSEC_LIB_PATH})
endif()
-if(BUILD_WATCHDOG)
+if(EIVE_BUILD_WATCHDOG)
add_subdirectory(${WATCHDOG_PATH})
endif()
@@ -183,7 +184,7 @@ endif()
set_property(CACHE FSFW_OSAL PROPERTY STRINGS host linux)
-if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT BUILD_WATCHDOG))
+if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT EIVE_BUILD_WATCHDOG))
# Add libraries for all sources.
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_FSFW_NAME}
@@ -193,7 +194,7 @@ if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT BUILD_WATCHDOG))
)
endif()
-if(NOT BUILD_WATCHDOG)
+if(NOT EIVE_BUILD_WATCHDOG)
if(ADD_CSP_LIB)
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_CSP_NAME}
@@ -274,7 +275,7 @@ if(NOT CMAKE_SIZE)
endif()
endif()
-if(BUILD_WATCHDOG)
+if(EIVE_BUILD_WATCHDOG)
set(TARGET_STRING "OBSW Watchdog")
else()
if(TGT_BSP)
diff --git a/README.md b/README.md
index fc4163e1..a5947a93 100644
--- a/README.md
+++ b/README.md
@@ -167,7 +167,7 @@ cmake --build . -j
```sh
mkdir build-Debug-Q7S && cd build-Debug-Q7S
-cmake -DTGT_BSP=arm/q7s -DFSFW_OSAL=linux -DBUILD_WATCHDOG=ON -DCMAKE_BUILD_TYPE=Debug ..
+cmake -DTGT_BSP=arm/q7s -DFSFW_OSAL=linux -DEIVE_BUILD_WATCHDOG=ON -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . -j
```
diff --git a/cmake/Q7SCrossCompileConfig.cmake b/cmake/Q7SCrossCompileConfig.cmake
index 746df453..006b2c96 100644
--- a/cmake/Q7SCrossCompileConfig.cmake
+++ b/cmake/Q7SCrossCompileConfig.cmake
@@ -54,21 +54,23 @@ set(CMAKE_SYSTEM_PROCESSOR "armv7")
set(CMAKE_C_COMPILER ${CROSS_COMPILE_CC})
set(CMAKE_CXX_COMPILER ${CROSS_COMPILE_CXX})
-# List of library dirs where LD has to look. Pass them directly through gcc.
-set(LIB_DIRS
- "${SYSROOT_PATH}/usr/include"
- "${SYSROOT_PATH}/usr/include/linux"
- "${SYSROOT_PATH}/usr/lib"
- "${SYSROOT_PATH}/lib"
- "${SYSROOT_PATH}"
- "${SYSROOT_PATH}/usr/lib/arm-xiphos-linux-gnueabi"
-)
-# You can additionally check the linker paths if you add the
-# flags ' -Xlinker --verbose'
-set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/lib")
-foreach(LIB ${LIB_DIRS})
- set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}")
-endforeach()
+if(EIVE_SYSROOT_MAGIC)
+ # List of library dirs where LD has to look. Pass them directly through gcc.
+ set(LIB_DIRS
+ "${SYSROOT_PATH}/usr/include"
+ "${SYSROOT_PATH}/usr/include/linux"
+ "${SYSROOT_PATH}/usr/lib"
+ "${SYSROOT_PATH}/lib"
+ "${SYSROOT_PATH}"
+ "${SYSROOT_PATH}/usr/lib/arm-xiphos-linux-gnueabi"
+ )
+ # You can additionally check the linker paths if you add the
+ # flags ' -Xlinker --verbose'
+ set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/lib")
+ foreach(LIB ${LIB_DIRS})
+ set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}")
+ endforeach()
+endif()
set(CMAKE_PREFIX_PATH
"${CMAKE_PREFIX_PATH}"
diff --git a/cmake/scripts/BeagleBoneBlack/create_cmake_debug_cfg.sh b/cmake/scripts/BeagleBoneBlack/create_cmake_debug_cfg.sh
deleted file mode 100644
index cfa71d02..00000000
--- a/cmake/scripts/BeagleBoneBlack/create_cmake_debug_cfg.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
-fi
-
-os_fsfw="linux"
-tgt_bsp="arm/beagleboneblack"
-build_generator=""
-builddir="build-Debug-BBB"
-defines="LINUX_CROSS_COMPILE=OFF"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
- -l "${builddir}" -d "${defines}"
diff --git a/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_debug_cfg.sh b/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_debug_cfg.sh
deleted file mode 100644
index b413d07f..00000000
--- a/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_debug_cfg.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
-fi
-
-os_fsfw="linux"
-tgt_bsp="arm/beagleboneblack"
-build_generator=""
-builddir="build-Debug-BBB"
-defines="LINUX_CROSS_COMPILE=ON"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
- -l "${builddir}" -d "${defines}"
diff --git a/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_release_cfg.sh b/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_release_cfg.sh
deleted file mode 100644
index 81e3322d..00000000
--- a/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_release_cfg.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
-fi
-
-os_fsfw="linux"
-tgt_bsp="arm/beagleboneblack"
-build_generator=""
-builddir="build-Release-BBB"
-defines="LINUX_CROSS_COMPILE=ON"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
- -l "${builddir}" -d "${defines}"
diff --git a/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_relwithdeb_cfg.sh b/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_relwithdeb_cfg.sh
deleted file mode 100644
index 81e3322d..00000000
--- a/cmake/scripts/BeagleBoneBlack/crosscompile/create_cmake_relwithdeb_cfg.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
-fi
-
-os_fsfw="linux"
-tgt_bsp="arm/beagleboneblack"
-build_generator=""
-builddir="build-Release-BBB"
-defines="LINUX_CROSS_COMPILE=ON"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
- -l "${builddir}" -d "${defines}"
diff --git a/cmake/scripts/BeagleBoneBlack/crosscompile/make-debug-cfg.sh b/cmake/scripts/BeagleBoneBlack/crosscompile/make-debug-cfg.sh
new file mode 100755
index 00000000..ba8d94cc
--- /dev/null
+++ b/cmake/scripts/BeagleBoneBlack/crosscompile/make-debug-cfg.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+os_fsfw="linux"
+tgt_bsp="arm/beagleboneblack"
+build_generator=""
+builddir="build-Debug-BBB"
+defines="LINUX_CROSS_COMPILE=ON"
+if [ "${OS}" = "Windows_NT" ]; then
+ build_generator="MinGW Makefiles"
+# Could be other OS but this works for now.
+else
+ build_generator="Unix Makefiles"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+ -l "${builddir}" -d "${defines}"
+# Use this if commands are added which should not be printed
+# set +x
diff --git a/cmake/scripts/BeagleBoneBlack/crosscompile/make-release-cfg.sh b/cmake/scripts/BeagleBoneBlack/crosscompile/make-release-cfg.sh
new file mode 100755
index 00000000..59d548c5
--- /dev/null
+++ b/cmake/scripts/BeagleBoneBlack/crosscompile/make-release-cfg.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+os_fsfw="linux"
+tgt_bsp="arm/beagleboneblack"
+build_generator=""
+builddir="build-Release-BBB"
+defines="LINUX_CROSS_COMPILE=ON"
+if [ "${OS}" = "Windows_NT" ]; then
+ build_generator="MinGW Makefiles"
+# Could be other OS but this works for now.
+else
+ build_generator="Unix Makefiles"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+ -l "${builddir}" -d "${defines}"
+# Use this if commands are added which should not be printed
+# set +x
diff --git a/cmake/scripts/BeagleBoneBlack/make-debug-cfg.sh b/cmake/scripts/BeagleBoneBlack/make-debug-cfg.sh
new file mode 100755
index 00000000..ede76acf
--- /dev/null
+++ b/cmake/scripts/BeagleBoneBlack/make-debug-cfg.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+os_fsfw="linux"
+tgt_bsp="arm/beagleboneblack"
+build_generator=""
+builddir="build-Debug-BBB"
+defines="LINUX_CROSS_COMPILE=OFF"
+if [ "${OS}" = "Windows_NT" ]; then
+ build_generator="MinGW Makefiles"
+# Could be other OS but this works for now.
+else
+ build_generator="Unix Makefiles"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+ -l "${builddir}" -d "${defines}"
+# Use this if commands are added which should not be printed
+# set +x
diff --git a/cmake/scripts/Host/create_cmake_release_cfg.sh b/cmake/scripts/Host/create_cmake_release_cfg.sh
deleted file mode 100644
index 19ae5b32..00000000
--- a/cmake/scripts/Host/create_cmake_release_cfg.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
-fi
-
-build_generator=""
-os_fsfw="host"
-build_dir="Release-Host"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -l"${build_dir}"
diff --git a/cmake/scripts/Host/create_cmake_relwithdeb_cfg.sh b/cmake/scripts/Host/create_cmake_relwithdeb_cfg.sh
deleted file mode 100644
index f9321e69..00000000
--- a/cmake/scripts/Host/create_cmake_relwithdeb_cfg.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
-fi
-
-build_generator=""
-os_fsfw="host"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "reldeb"
diff --git a/cmake/scripts/Host/create_cmake_size_cfg.sh b/cmake/scripts/Host/create_cmake_size_cfg.sh
deleted file mode 100644
index 6a3cbe60..00000000
--- a/cmake/scripts/Host/create_cmake_size_cfg.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
-fi
-
-build_generator=""
-os_fsfw="host"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "size"
\ No newline at end of file
diff --git a/cmake/scripts/Host/make-debug-cfg.sh b/cmake/scripts/Host/make-debug-cfg.sh
new file mode 100755
index 00000000..3bda2da2
--- /dev/null
+++ b/cmake/scripts/Host/make-debug-cfg.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+build_generator="Unix Makefiles"
+os_fsfw="host"
+builddir="build-Debug-Host"
+if [ "${OS}" = "Windows_NT" ]; then
+ python="py"
+# Could be other OS but this works for now.
+else
+ python="python3"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
+# Use this if commands are added which should not be printed
+# set +x
diff --git a/cmake/scripts/Host/make-release-cfg.sh b/cmake/scripts/Host/make-release-cfg.sh
new file mode 100755
index 00000000..eb0a9f57
--- /dev/null
+++ b/cmake/scripts/Host/make-release-cfg.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+build_generator="Unix Makefiles"
+os_fsfw="host"
+builddir="build-Release-Host"
+if [ "${OS}" = "Windows_NT" ]; then
+ python="py"
+# Could be other OS but this works for now.
+else
+ python="python3"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -l "${builddir}"
+# Use this if commands are added which should not be printed
+# set +x
diff --git a/cmake/scripts/Host/make_debug_cfg.sh b/cmake/scripts/Host/make_debug_cfg.sh
deleted file mode 100755
index 24be2099..00000000
--- a/cmake/scripts/Host/make_debug_cfg.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
-fi
-
-build_generator=""
-build_dir="build-Debug-Host"
-os_fsfw="host"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l"${build_dir}"
diff --git a/cmake/scripts/Host/ninja-debug-cfg.sh b/cmake/scripts/Host/ninja-debug-cfg.sh
new file mode 100755
index 00000000..d1627174
--- /dev/null
+++ b/cmake/scripts/Host/ninja-debug-cfg.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+build_generator="Ninja"
+os_fsfw="host"
+builddir="build-Debug-Host"
+if [ "${OS}" = "Windows_NT" ]; then
+ python="py"
+# Could be other OS but this works for now.
+else
+ python="python3"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
+# Use this if commands are added which should not be printed
+# set +x
diff --git a/cmake/scripts/Linux/make_debug_cfg.sh b/cmake/scripts/Linux/make-debug-cfg.sh
similarity index 58%
rename from cmake/scripts/Linux/make_debug_cfg.sh
rename to cmake/scripts/Linux/make-debug-cfg.sh
index dc21896d..e2130416 100755
--- a/cmake/scripts/Linux/make_debug_cfg.sh
+++ b/cmake/scripts/Linux/make-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
build_generator="Unix Makefiles"
@@ -26,7 +27,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x
-
diff --git a/cmake/scripts/Linux/make_release_cfg.sh b/cmake/scripts/Linux/make-release-cfg.sh
similarity index 58%
rename from cmake/scripts/Linux/make_release_cfg.sh
rename to cmake/scripts/Linux/make-release-cfg.sh
index 95d87e70..0426967b 100755
--- a/cmake/scripts/Linux/make_release_cfg.sh
+++ b/cmake/scripts/Linux/make-release-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
build_generator="Unix Makefiles"
@@ -26,6 +27,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -l "${builddir}"
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x
diff --git a/cmake/scripts/Linux/ninja_debug_cfg.sh b/cmake/scripts/Linux/ninja-debug-cfg.sh
similarity index 57%
rename from cmake/scripts/Linux/ninja_debug_cfg.sh
rename to cmake/scripts/Linux/ninja-debug-cfg.sh
index 9627ccf6..905612e0 100755
--- a/cmake/scripts/Linux/ninja_debug_cfg.sh
+++ b/cmake/scripts/Linux/ninja-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "create_cmake_cfg.sh not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
build_generator="Ninja"
@@ -26,7 +27,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x
diff --git a/cmake/scripts/Q7S/make_debug_cfg.sh b/cmake/scripts/Q7S/make-debug-cfg.sh
similarity index 59%
rename from cmake/scripts/Q7S/make_debug_cfg.sh
rename to cmake/scripts/Q7S/make-debug-cfg.sh
index 4613d36a..c0807320 100755
--- a/cmake/scripts/Q7S/make_debug_cfg.sh
+++ b/cmake/scripts/Q7S/make-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -29,7 +30,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x
diff --git a/cmake/scripts/Q7S/make_release_cfg.sh b/cmake/scripts/Q7S/make-release-cfg.sh
similarity index 59%
rename from cmake/scripts/Q7S/make_release_cfg.sh
rename to cmake/scripts/Q7S/make-release-cfg.sh
index 9d7992f3..c421f336 100755
--- a/cmake/scripts/Q7S/make_release_cfg.sh
+++ b/cmake/scripts/Q7S/make-release-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -29,6 +30,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x
diff --git a/cmake/scripts/Q7S/ninja_debug_cfg.sh b/cmake/scripts/Q7S/ninja-debug-cfg.sh
similarity index 56%
rename from cmake/scripts/Q7S/ninja_debug_cfg.sh
rename to cmake/scripts/Q7S/ninja-debug-cfg.sh
index abb68de2..9a6b35c8 100755
--- a/cmake/scripts/Q7S/ninja_debug_cfg.sh
+++ b/cmake/scripts/Q7S/ninja-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -27,7 +28,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${build_dir}"
# set +x
diff --git a/cmake/scripts/Q7S/ninja_release_cfg.sh b/cmake/scripts/Q7S/ninja-release-cfg.sh
similarity index 56%
rename from cmake/scripts/Q7S/ninja_release_cfg.sh
rename to cmake/scripts/Q7S/ninja-release-cfg.sh
index f5431d9a..a9c82d54 100755
--- a/cmake/scripts/Q7S/ninja_release_cfg.sh
+++ b/cmake/scripts/Q7S/ninja-release-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -27,7 +28,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x
diff --git a/cmake/scripts/Q7S/simple/simple_make_debug_cfg.sh b/cmake/scripts/Q7S/simple/make-simple-debug-cfg.sh
similarity index 62%
rename from cmake/scripts/Q7S/simple/simple_make_debug_cfg.sh
rename to cmake/scripts/Q7S/simple/make-simple-debug-cfg.sh
index 50b87101..93f4a087 100755
--- a/cmake/scripts/Q7S/simple/simple_make_debug_cfg.sh
+++ b/cmake/scripts/Q7S/simple/make-simple-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -30,6 +31,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${build_dir}" -d "${definitions}"
# set +x
diff --git a/cmake/scripts/Q7S/simple/simple_ninja_debug_cfg.sh b/cmake/scripts/Q7S/simple/ninja-simple-debug-cfg.sh
similarity index 59%
rename from cmake/scripts/Q7S/simple/simple_ninja_debug_cfg.sh
rename to cmake/scripts/Q7S/simple/ninja-simple-debug-cfg.sh
index c97b1e54..c1805eff 100755
--- a/cmake/scripts/Q7S/simple/simple_ninja_debug_cfg.sh
+++ b/cmake/scripts/Q7S/simple/ninja-simple-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -28,7 +29,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${build_dir}" -d "${definitions}"
# set +x
diff --git a/cmake/scripts/Q7S/watchdog/make_debug_cfg.sh b/cmake/scripts/Q7S/watchdog/make-debug-cfg.sh
similarity index 58%
rename from cmake/scripts/Q7S/watchdog/make_debug_cfg.sh
rename to cmake/scripts/Q7S/watchdog/make-debug-cfg.sh
index d5b58df9..0f829fea 100755
--- a/cmake/scripts/Q7S/watchdog/make_debug_cfg.sh
+++ b/cmake/scripts/Q7S/watchdog/make-debug-cfg.sh
@@ -1,24 +1,25 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Debug-Watchdog"
build_generator=""
-definitions="BUILD_WATCHDOG=ON"
+definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
python="py"
@@ -30,7 +31,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-d "${definitions}" -l"${build_dir}"
# set +x
diff --git a/cmake/scripts/Q7S/watchdog/make_release_cfg.sh b/cmake/scripts/Q7S/watchdog/make-release-cfg.sh
similarity index 95%
rename from cmake/scripts/Q7S/watchdog/make_release_cfg.sh
rename to cmake/scripts/Q7S/watchdog/make-release-cfg.sh
index 726e82ed..c8df73d5 100755
--- a/cmake/scripts/Q7S/watchdog/make_release_cfg.sh
+++ b/cmake/scripts/Q7S/watchdog/make-release-cfg.sh
@@ -18,7 +18,7 @@ os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Release-Watchdog"
build_generator=""
-definitions="BUILD_WATCHDOG=ON"
+definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
python="py"
diff --git a/cmake/scripts/Q7S/watchdog/ninja_debug_cfg.sh b/cmake/scripts/Q7S/watchdog/ninja-debug-cfg.sh
similarity index 55%
rename from cmake/scripts/Q7S/watchdog/ninja_debug_cfg.sh
rename to cmake/scripts/Q7S/watchdog/ninja-debug-cfg.sh
index 99a414e7..ed23bb6a 100755
--- a/cmake/scripts/Q7S/watchdog/ninja_debug_cfg.sh
+++ b/cmake/scripts/Q7S/watchdog/ninja-debug-cfg.sh
@@ -1,24 +1,25 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Debug-Watchdog"
build_generator="Ninja"
-definitions="-DBUILD_WATCHDOG=ON"
+definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
@@ -28,7 +29,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-d "${definitions}" -l "${build_dir}"
# set +x
diff --git a/cmake/scripts/Q7S/watchdog/ninja_release_cfg.sh b/cmake/scripts/Q7S/watchdog/ninja-release-cfg.sh
similarity index 54%
rename from cmake/scripts/Q7S/watchdog/ninja_release_cfg.sh
rename to cmake/scripts/Q7S/watchdog/ninja-release-cfg.sh
index 3e6beac3..d8f5e18e 100755
--- a/cmake/scripts/Q7S/watchdog/ninja_release_cfg.sh
+++ b/cmake/scripts/Q7S/watchdog/ninja-release-cfg.sh
@@ -1,24 +1,25 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Release-Watchdog"
build_generator="Ninja"
-definitions="BUILD_WATCHDOG=ON"
+definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
@@ -28,7 +29,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-d "${definitions}" -l"${build_dir}"
# set +x
diff --git a/cmake/scripts/RPi/make_debug_cfg.sh b/cmake/scripts/RPi/make-debug-cfg.sh
similarity index 60%
rename from cmake/scripts/RPi/make_debug_cfg.sh
rename to cmake/scripts/RPi/make-debug-cfg.sh
index dbb178de..3b95ceee 100755
--- a/cmake/scripts/RPi/make_debug_cfg.sh
+++ b/cmake/scripts/RPi/make-debug-cfg.sh
@@ -1,19 +1,21 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
+
os_fsfw="linux"
tgt_bsp="arm/raspberrypi"
build_generator=""
@@ -29,7 +31,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x
-
diff --git a/cmake/scripts/RPi/make-release-cfg.sh b/cmake/scripts/RPi/make-release-cfg.sh
new file mode 100755
index 00000000..56b48735
--- /dev/null
+++ b/cmake/scripts/RPi/make-release-cfg.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+counter=0
+cfg_script_name="cmake-build-cfg.py"
+while [ ${counter} -lt 5 ]
+do
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
+done
+
+if [ "${counter}" -ge 5 ];then
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
+fi
+
+os_fsfw="linux"
+tgt_bsp="arm/raspberrypi"
+build_generator=""
+build_dir="build-Release-RPi"
+if [ "${OS}" = "Windows_NT" ]; then
+ build_generator="MinGW Makefiles"
+# Could be other OS but this works for now.
+else
+ build_generator="Unix Makefiles"
+fi
+
+echo "Running command (without the leading +):"
+set -x # Print command
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
+ -l"${build_dir}"
+# set +x
diff --git a/cmake/scripts/RPi/make_release_cfg.sh b/cmake/scripts/RPi/make_release_cfg.sh
deleted file mode 100755
index 10e4b777..00000000
--- a/cmake/scripts/RPi/make_release_cfg.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-counter=0
-while [ ${counter} -lt 5 ]
-do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
-done
-
-if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
-fi
-
-os_fsfw="linux"
-tgt_bsp="arm/raspberrypi"
-build_generator=""
-build_dir="build-Release-RPi"
-if [ "${OS}" = "Windows_NT" ]; then
- build_generator="MinGW Makefiles"
-# Could be other OS but this works for now.
-else
- build_generator="Unix Makefiles"
-fi
-
-python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
- -l"${build_dir}"
diff --git a/cmake/scripts/RPi/ninja_debug_cfg.sh b/cmake/scripts/RPi/ninja-debug-cfg.sh
similarity index 56%
rename from cmake/scripts/RPi/ninja_debug_cfg.sh
rename to cmake/scripts/RPi/ninja-debug-cfg.sh
index 3fa0e5f4..4cfb9854 100755
--- a/cmake/scripts/RPi/ninja_debug_cfg.sh
+++ b/cmake/scripts/RPi/ninja-debug-cfg.sh
@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
+cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
- cd ..
- if [ -f "cmake_build_config.py" ];then
- break
- fi
- counter=$((counter=counter + 1))
+ cd ..
+ if [ -f ${cfg_script_name} ];then
+ break
+ fi
+ counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
- echo "cmake_build_config.py not found in upper directories!"
- exit 1
+ echo "${cfg_script_name} not found in upper directories!"
+ exit 1
fi
os_fsfw="linux"
@@ -27,7 +28,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
-${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
+${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x
diff --git a/cmake/scripts/cmake_build_config.py b/cmake/scripts/cmake-build-cfg.py
similarity index 100%
rename from cmake/scripts/cmake_build_config.py
rename to cmake/scripts/cmake-build-cfg.py
diff --git a/common/config/commonClassIds.h b/common/config/commonClassIds.h
index 977cbdb2..6a27c286 100644
--- a/common/config/commonClassIds.h
+++ b/common/config/commonClassIds.h
@@ -13,12 +13,12 @@ enum commonClassIds: uint8_t {
HEATER_HANDLER, //HEATER
SYRLINKS_HANDLER, //SYRLINKS
IMTQ_HANDLER, //IMTQ
- RW_HANDLER, //Reaction Wheels
- STR_HANDLER, //Star tracker
- PLOC_MPSOC_HANDLER, //PLOC MPSoC
- PLOC_SUPERVISOR_HANDLER, //PLOC Supervisor
+ RW_HANDLER, //RWHA
+ STR_HANDLER, //STRH
+ PLOC_MPSOC_HANDLER, //PLMP
+ PLOC_SUPERVISOR_HANDLER, //PLSV
SUS_HANDLER, //SUSS
- CCSDS_IP_CORE_BRIDGE, // IP Core interface
+ CCSDS_IP_CORE_BRIDGE, //IPCI
COMMON_CLASS_ID_END // [EXPORT] : [END]
};
diff --git a/fsfw b/fsfw
index 54c028f9..0ff81294 160000
--- a/fsfw
+++ b/fsfw
@@ -1 +1 @@
-Subproject commit 54c028f913e81077855aa1ed727bac43e7efea82
+Subproject commit 0ff81294e7e209bb4a26171b10d80fe522e65bcf
diff --git a/generators/.run/events.run.xml b/generators/.run/events.run.xml
new file mode 100644
index 00000000..18f71033
--- /dev/null
+++ b/generators/.run/events.run.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/generators/.run/objects.run.xml b/generators/.run/objects.run.xml
new file mode 100644
index 00000000..961b8ed9
--- /dev/null
+++ b/generators/.run/objects.run.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/generators/.run/returnvalues.run.xml b/generators/.run/returnvalues.run.xml
new file mode 100644
index 00000000..51b16449
--- /dev/null
+++ b/generators/.run/returnvalues.run.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/generators/bsp_q7s_events.csv b/generators/bsp_q7s_events.csv
index d19a79a3..4635788b 100644
--- a/generators/bsp_q7s_events.csv
+++ b/generators/bsp_q7s_events.csv
@@ -1,96 +1,96 @@
-2200;STORE_SEND_WRITE_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2201;STORE_WRITE_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2202;STORE_SEND_READ_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2203;STORE_READ_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2204;UNEXPECTED_MSG;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2205;STORING_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2206;TM_DUMP_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2207;STORE_INIT_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2208;STORE_INIT_EMPTY;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2209;STORE_CONTENT_CORRUPTED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2210;STORE_INITIALIZE;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2211;INIT_DONE;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2212;DUMP_FINISHED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2213;DELETION_FINISHED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2214;DELETION_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2215;AUTO_CATALOGS_SENDING_FAILED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
-2600;GET_DATA_FAILED;LOW; ;../../fsfw/storagemanager/StorageManagerIF.h
-2601;STORE_DATA_FAILED;LOW; ;../../fsfw/storagemanager/StorageManagerIF.h
-2800;DEVICE_BUILDING_COMMAND_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2801;DEVICE_SENDING_COMMAND_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2802;DEVICE_REQUESTING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2803;DEVICE_READING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2804;DEVICE_INTERPRETING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2805;DEVICE_MISSED_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2806;DEVICE_UNKNOWN_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2807;DEVICE_UNREQUESTED_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2808;INVALID_DEVICE_COMMAND;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2809;MONITORING_LIMIT_EXCEEDED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-2810;MONITORING_AMBIGUOUS;HIGH; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
-4201;FUSE_CURRENT_HIGH;LOW; ;../../fsfw/power/Fuse.h
-4202;FUSE_WENT_OFF;LOW; ;../../fsfw/power/Fuse.h
-4204;POWER_ABOVE_HIGH_LIMIT;LOW; ;../../fsfw/power/Fuse.h
-4205;POWER_BELOW_LOW_LIMIT;LOW; ;../../fsfw/power/Fuse.h
-4300;SWITCH_WENT_OFF;LOW; ;../../fsfw/power/PowerSwitchIF.h
-5000;HEATER_ON;INFO; ;../../fsfw/thermal/Heater.h
-5001;HEATER_OFF;INFO; ;../../fsfw/thermal/Heater.h
-5002;HEATER_TIMEOUT;LOW; ;../../fsfw/thermal/Heater.h
-5003;HEATER_STAYED_ON;LOW; ;../../fsfw/thermal/Heater.h
-5004;HEATER_STAYED_OFF;LOW; ;../../fsfw/thermal/Heater.h
-5200;TEMP_SENSOR_HIGH;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h
-5201;TEMP_SENSOR_LOW;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h
-5202;TEMP_SENSOR_GRADIENT;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h
-5901;COMPONENT_TEMP_LOW;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
-5902;COMPONENT_TEMP_HIGH;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
-5903;COMPONENT_TEMP_OOL_LOW;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
-5904;COMPONENT_TEMP_OOL_HIGH;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
-5905;TEMP_NOT_IN_OP_RANGE;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
-7101;FDIR_CHANGED_STATE;INFO; ;../../fsfw/fdir/FailureIsolationBase.h
-7102;FDIR_STARTS_RECOVERY;MEDIUM; ;../../fsfw/fdir/FailureIsolationBase.h
-7103;FDIR_TURNS_OFF_DEVICE;MEDIUM; ;../../fsfw/fdir/FailureIsolationBase.h
-7201;MONITOR_CHANGED_STATE;LOW; ;../../fsfw/monitoring/MonitoringIF.h
-7202;VALUE_BELOW_LOW_LIMIT;LOW; ;../../fsfw/monitoring/MonitoringIF.h
-7203;VALUE_ABOVE_HIGH_LIMIT;LOW; ;../../fsfw/monitoring/MonitoringIF.h
-7204;VALUE_OUT_OF_RANGE;LOW; ;../../fsfw/monitoring/MonitoringIF.h
-7301;SWITCHING_TM_FAILED;LOW; ;../../fsfw/datapool/HkSwitchHelper.h
-7400;CHANGING_MODE;INFO; ;../../fsfw/modes/HasModesIF.h
-7401;MODE_INFO;INFO; ;../../fsfw/modes/HasModesIF.h
-7402;FALLBACK_FAILED;HIGH; ;../../fsfw/modes/HasModesIF.h
-7403;MODE_TRANSITION_FAILED;LOW; ;../../fsfw/modes/HasModesIF.h
-7404;CANT_KEEP_MODE;HIGH; ;../../fsfw/modes/HasModesIF.h
-7405;OBJECT_IN_INVALID_MODE;LOW; ;../../fsfw/modes/HasModesIF.h
-7406;FORCING_MODE;MEDIUM; ;../../fsfw/modes/HasModesIF.h
-7407;MODE_CMD_REJECTED;LOW; ;../../fsfw/modes/HasModesIF.h
-7506;HEALTH_INFO;INFO; ;../../fsfw/health/HasHealthIF.h
-7507;CHILD_CHANGED_HEALTH;INFO; ;../../fsfw/health/HasHealthIF.h
-7508;CHILD_PROBLEMS;LOW; ;../../fsfw/health/HasHealthIF.h
-7509;OVERWRITING_HEALTH;LOW; ;../../fsfw/health/HasHealthIF.h
-7510;TRYING_RECOVERY;MEDIUM; ;../../fsfw/health/HasHealthIF.h
-7511;RECOVERY_STEP;MEDIUM; ;../../fsfw/health/HasHealthIF.h
-7512;RECOVERY_DONE;MEDIUM; ;../../fsfw/health/HasHealthIF.h
-7900;RF_AVAILABLE;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
-7901;RF_LOST;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
-7902;BIT_LOCK;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
-7903;BIT_LOCK_LOST;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
-7905;FRAME_PROCESSING_FAILED;LOW; ;../../fsfw/datalinklayer/DataLinkLayer.h
-8900;CLOCK_SET;INFO; ;../../fsfw/pus/Service9TimeManagement.h
-8901;CLOCK_SET_FAILURE;LOW; ;../../fsfw/pus/Service9TimeManagement.h
-9700;TEST;INFO; ;../../fsfw/pus/Service17Test.h
-10600;CHANGE_OF_SETUP_PARAMETER;LOW; ;../../mission/devices/MGMHandlerLIS3MDL.h
-11101;MEMORY_READ_RPT_CRC_FAILURE;LOW; ;../../mission/devices/PlocMPSoCHandler.h
-11102;ACK_FAILURE;LOW; ;../../mission/devices/PlocMPSoCHandler.h
-11103;EXE_FAILURE;LOW; ;../../mission/devices/PlocMPSoCHandler.h
-11104;CRC_FAILURE_EVENT;LOW; ;../../mission/devices/PlocMPSoCHandler.h
-11201;SELF_TEST_I2C_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11202;SELF_TEST_SPI_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11203;SELF_TEST_ADC_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11204;SELF_TEST_PWM_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11205;SELF_TEST_TC_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11206;SELF_TEST_MTM_RANGE_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11207;SELF_TEST_COIL_CURRENT_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
-11208;INVALID_ERROR_BYTE;LOW; ;../../mission/devices/IMTQHandler.h
-11301;ERROR_STATE;HIGH; ;../../mission/devices/RwHandler.h
-11501;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW; ;../../mission/devices/PlocSupervisorHandler.h
-11502;SUPV_ACK_FAILURE;LOW; ;../../mission/devices/PlocSupervisorHandler.h
-11503;SUPV_EXE_FAILURE;LOW; ;../../mission/devices/PlocSupervisorHandler.h
-11504;SUPV_CRC_FAILURE_EVENT;LOW; ;../../mission/devices/PlocSupervisorHandler.h
+2200;STORE_SEND_WRITE_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2201;STORE_WRITE_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2202;STORE_SEND_READ_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2203;STORE_READ_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2204;UNEXPECTED_MSG;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2205;STORING_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2206;TM_DUMP_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2207;STORE_INIT_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2208;STORE_INIT_EMPTY;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2209;STORE_CONTENT_CORRUPTED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2210;STORE_INITIALIZE;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2211;INIT_DONE;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2212;DUMP_FINISHED;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2213;DELETION_FINISHED;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2214;DELETION_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2215;AUTO_CATALOGS_SENDING_FAILED;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
+2600;GET_DATA_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h
+2601;STORE_DATA_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h
+2800;DEVICE_BUILDING_COMMAND_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2801;DEVICE_SENDING_COMMAND_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2802;DEVICE_REQUESTING_REPLY_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2803;DEVICE_READING_REPLY_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2804;DEVICE_INTERPRETING_REPLY_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2805;DEVICE_MISSED_REPLY;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2806;DEVICE_UNKNOWN_REPLY;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2807;DEVICE_UNREQUESTED_REPLY;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2808;INVALID_DEVICE_COMMAND;LOW;Indicates a SW bug in child class.;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2809;MONITORING_LIMIT_EXCEEDED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+2810;MONITORING_AMBIGUOUS;HIGH;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
+4201;FUSE_CURRENT_HIGH;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/Fuse.h
+4202;FUSE_WENT_OFF;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/Fuse.h
+4204;POWER_ABOVE_HIGH_LIMIT;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/Fuse.h
+4205;POWER_BELOW_LOW_LIMIT;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/Fuse.h
+4300;SWITCH_WENT_OFF;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitchIF.h
+5000;HEATER_ON;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/Heater.h
+5001;HEATER_OFF;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/Heater.h
+5002;HEATER_TIMEOUT;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/Heater.h
+5003;HEATER_STAYED_ON;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/Heater.h
+5004;HEATER_STAYED_OFF;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/Heater.h
+5200;TEMP_SENSOR_HIGH;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
+5201;TEMP_SENSOR_LOW;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
+5202;TEMP_SENSOR_GRADIENT;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
+5901;COMPONENT_TEMP_LOW;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
+5902;COMPONENT_TEMP_HIGH;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
+5903;COMPONENT_TEMP_OOL_LOW;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
+5904;COMPONENT_TEMP_OOL_HIGH;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
+5905;TEMP_NOT_IN_OP_RANGE;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
+7101;FDIR_CHANGED_STATE;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
+7102;FDIR_STARTS_RECOVERY;MEDIUM;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
+7103;FDIR_TURNS_OFF_DEVICE;MEDIUM;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
+7201;MONITOR_CHANGED_STATE;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
+7202;VALUE_BELOW_LOW_LIMIT;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
+7203;VALUE_ABOVE_HIGH_LIMIT;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
+7204;VALUE_OUT_OF_RANGE;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
+7301;SWITCHING_TM_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/HkSwitchHelper.h
+7400;CHANGING_MODE;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7401;MODE_INFO;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7402;FALLBACK_FAILED;HIGH;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7403;MODE_TRANSITION_FAILED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7404;CANT_KEEP_MODE;HIGH;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7405;OBJECT_IN_INVALID_MODE;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7406;FORCING_MODE;MEDIUM;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7407;MODE_CMD_REJECTED;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h
+7506;HEALTH_INFO;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7507;CHILD_CHANGED_HEALTH;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7508;CHILD_PROBLEMS;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7509;OVERWRITING_HEALTH;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7510;TRYING_RECOVERY;MEDIUM;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7511;RECOVERY_STEP;MEDIUM;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7512;RECOVERY_DONE;MEDIUM;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h
+7900;RF_AVAILABLE;INFO;A RF available signal was detected. P1: raw RFA state, P2: 0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
+7901;RF_LOST;INFO;A previously found RF available signal was lost. P1: raw RFA state, P2: 0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
+7902;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
+7903;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
+7905;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
+8900;CLOCK_SET;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/pus/Service9TimeManagement.h
+8901;CLOCK_SET_FAILURE;LOW;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/pus/Service9TimeManagement.h
+9700;TEST;INFO;;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/pus/Service17Test.h
+10600;CHANGE_OF_SETUP_PARAMETER;LOW;;/home/rmueller/EIVE/eive-obsw/mission/devices/MGMHandlerLIS3MDL.h
+11101;MEMORY_READ_RPT_CRC_FAILURE;LOW;;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h
+11102;ACK_FAILURE;LOW;;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h
+11103;EXE_FAILURE;LOW;;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h
+11104;CRC_FAILURE_EVENT;LOW;;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h
+11201;SELF_TEST_I2C_FAILURE;LOW;Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11202;SELF_TEST_SPI_FAILURE;LOW;Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11203;SELF_TEST_ADC_FAILURE;LOW;Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11204;SELF_TEST_PWM_FAILURE;LOW;Get self test result returns PWM failure which concerns the coil actuation. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11205;SELF_TEST_TC_FAILURE;LOW;Get self test result returns TC failure (system failure) P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11206;SELF_TEST_MTM_RANGE_FAILURE;LOW;Get self test result returns failure that MTM values were outside of the expected range. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11207;SELF_TEST_COIL_CURRENT_FAILURE;LOW;Get self test result returns failure indicating that the coil current was outside of the expected range P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11208;INVALID_ERROR_BYTE;LOW;Received invalid error byte. This indicates an error of the communication link between IMTQ and OBC.;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h
+11301;ERROR_STATE;HIGH;Reaction wheel signals an error state;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h
+11501;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervrisor crc failure in telemetry packet;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h
+11502;SUPV_ACK_FAILURE;LOW;PLOC supervisor received acknowledgment failure report;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h
+11503;SUPV_EXE_FAILURE;LOW;PLOC received execution failure report;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h
+11504;SUPV_CRC_FAILURE_EVENT;LOW;PLOC supervisor reply has invalid crc;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h
diff --git a/generators/bsp_q7s_objects.csv b/generators/bsp_q7s_objects.csv
index cf3e082a..d0e9bfb6 100644
--- a/generators/bsp_q7s_objects.csv
+++ b/generators/bsp_q7s_objects.csv
@@ -68,8 +68,9 @@
0x49050001;CSP_COM_IF
0x50000100;CCSDS_PACKET_DISTRIBUTOR
0x50000200;PUS_PACKET_DISTRIBUTOR
-0x50000300;UDP_BRIDGE
-0x50000400;UDP_POLLING_TASK
+0x50000300;TMTC_BRIDGE
+0x50000400;TMTC_POLLING_TASK
+0x50000500;FILE_SYSTEM_HANDLER
0x51000500;PUS_SERVICE_6
0x53000000;FSFW_OBJECTS_START
0x53000001;PUS_SERVICE_1_VERIFICATION
diff --git a/generators/bsp_q7s_returnvalues.csv b/generators/bsp_q7s_returnvalues.csv
index 9cad2a74..99529d17 100644
--- a/generators/bsp_q7s_returnvalues.csv
+++ b/generators/bsp_q7s_returnvalues.csv
@@ -1,407 +1,451 @@
0x0;OK;System-wide code for ok.;RETURN_OK;HasReturnvaluesIF.h;HasReturnvaluesIF
0x1;Failed;Unspecified system-wide code for failed.;RETURN_FAILED;HasReturnvaluesIF.h;HasReturnvaluesIF
-0xe0;_PacketTooLong;;0xE0;../../mission/devices/GomspaceDeviceHandler.h;
-0xe1;_InvalidTableId;;0xE1;../../mission/devices/GomspaceDeviceHandler.h;
-0xe2;_InvalidAddress;;0xE2;../../mission/devices/GomspaceDeviceHandler.h;
-0xe3;_InvalidParamSize;;0xE3;../../mission/devices/GomspaceDeviceHandler.h;
-0xe4;_InvalidPayloadSize;;0xE4;../../mission/devices/GomspaceDeviceHandler.h;
-0xe5;_UnknownReplyId;;0xE5;../../mission/devices/GomspaceDeviceHandler.h;
-0x4da0;PLOC_CrcFailure;;0xA0;../../mission/devices/PlocHandler.h;PLOC_HANDLER
-0x4da1;PLOC_ReceivedAckFailure;;0xA1;../../mission/devices/PlocHandler.h;PLOC_HANDLER
-0x4da2;PLOC_ReceivedExeFailure;;0xA2;../../mission/devices/PlocHandler.h;PLOC_HANDLER
-0x4da3;PLOC_InvalidApid;;0xA3;../../mission/devices/PlocHandler.h;PLOC_HANDLER
-0x4ca0;IMTQ_InvalidCommandCode;;0xA0;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ca1;IMTQ_ParameterMissing;;0xA1;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ca2;IMTQ_ParameterInvalid;;0xA2;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ca3;IMTQ_CcUnavailable;;0xA3;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ca4;IMTQ_InternalProcessingError;;0xA4;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ca5;IMTQ_RejectedWithoutReason;;0xA5;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ca6;IMTQ_CmdErrUnknown;;0xA6;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
-0x4ba0;SYRLINKS_CrcFailure;;0xA0;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba1;SYRLINKS_UartFraminOrParityErrorAck;;0xA1;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba2;SYRLINKS_BadCharacterAck;;0xA2;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba3;SYRLINKS_BadParameterValueAck;;0xA3;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba4;SYRLINKS_BadEndOfFrameAck;;0xA4;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba5;SYRLINKS_UnknownCommandIdAck;;0xA5;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba6;SYRLINKS_BadCrcAck;;0xA6;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba7;SYRLINKS_ReplyWrongSize;;0xA7;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x4ba8;SYRLINKS_MissingStartFrameCharacter;;0xA8;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
-0x2b01;CCS_BcIsSetVrCommand;;0x01;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2b02;CCS_BcIsUnlockCommand;;0x02;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bb0;CCS_BcIllegalCommand;;0xB0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bb1;CCS_BoardReadingNotFinished;;0xB1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bf0;CCS_NsPositiveW;;0xF0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bf1;CCS_NsNegativeW;;0xF1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bf2;CCS_NsLockout;;0xF2;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bf3;CCS_FarmInLockout;;0xF3;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bf4;CCS_FarmInWait;;0xF4;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be0;CCS_WrongSymbol;;0xE0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be1;CCS_DoubleStart;;0xE1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be2;CCS_StartSymbolMissed;;0xE2;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be3;CCS_EndWithoutStart;;0xE3;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be4;CCS_TooLarge;;0xE4;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be5;CCS_TooShort;;0xE5;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be6;CCS_WrongTfVersion;;0xE6;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be7;CCS_WrongSpacecraftId;;0xE7;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be8;CCS_NoValidFrameType;;0xE8;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2be9;CCS_CrcFailed;;0xE9;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bea;CCS_VcNotFound;;0xEA;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2beb;CCS_ForwardingFailed;;0xEB;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bec;CCS_ContentTooLarge;;0xEC;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bed;CCS_ResidualData;;0xED;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bee;CCS_DataCorrupted;;0xEE;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bef;CCS_IllegalSegmentationFlag;;0xEF;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bd0;CCS_IllegalFlagCombination;;0xD0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bd1;CCS_ShorterThanHeader;;0xD1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bd2;CCS_TooShortBlockedPacket;;0xD2;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2bd3;CCS_TooShortMapExtraction;;0xD3;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
-0x2901;IEC_NoConfigurationTable;;0x01;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2902;IEC_NoCpuTable;;0x02;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2903;IEC_InvalidWorkspaceAddress;;0x03;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2904;IEC_TooLittleWorkspace;;0x04;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2905;IEC_WorkspaceAllocation;;0x05;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2906;IEC_InterruptStackTooSmall;;0x06;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2907;IEC_ThreadExitted;;0x07;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2908;IEC_InconsistentMpInformation;;0x08;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2909;IEC_InvalidNode;;0x09;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x290a;IEC_NoMpci;;0x0a;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x290b;IEC_BadPacket;;0x0b;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x290c;IEC_OutOfPackets;;0x0c;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x290d;IEC_OutOfGlobalObjects;;0x0d;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x290e;IEC_OutOfProxies;;0x0e;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x290f;IEC_InvalidGlobalId;;0x0f;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2910;IEC_BadStackHook;;0x10;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2911;IEC_BadAttributes;;0x11;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2912;IEC_ImplementationKeyCreateInconsistency;;0x12;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2913;IEC_ImplementationBlockingOperationCancel;;0x13;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2914;IEC_MutexObtainFromBadState;;0x14;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0x2915;IEC_UnlimitedAndMaximumIs0;;0x15;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
-0xe01;HM_InvalidMode;;0x01;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
-0xe02;HM_TransNotAllowed;;0x02;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
-0xe03;HM_InTransition;;0x03;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
-0xe04;HM_InvalidSubmode;;0x04;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
-0x2d01;HPA_InvalidIdentifierId;;0x01;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
-0x2d02;HPA_InvalidDomainId;;0x02;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
-0x2d03;HPA_InvalidValue;;0x03;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
-0x2d05;HPA_ReadOnly;;0x05;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
-0x2c01;PAW_UnknownDatatype;;0x01;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c02;PAW_DatatypeMissmatch;;0x02;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c03;PAW_Readonly;;0x03;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c04;PAW_TooBig;;0x04;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c05;PAW_SourceNotSet;;0x05;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c06;PAW_OutOfBounds;;0x06;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c07;PAW_NotSet;;0x07;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x2c08;PAW_ColumnOrRowsZero;;0x08;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
-0x3101;CF_ObjectHasNoFunctions;;1;../../fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
-0x3102;CF_AlreadyCommanding;;2;../../fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
-0x3201;HF_IsBusy;;1;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
-0x3202;HF_InvalidParameters;;2;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
-0x3203;HF_ExecutionFinished;;3;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
-0x3204;HF_InvalidActionId;;4;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
-0x201;OM_InsertionFailed;;1;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
-0x202;OM_NotFound;;2;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
-0x203;OM_ChildInitFailed;;3;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
-0x204;OM_InternalErrReporterUninit;;4;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
-0x2500;FDI_YourFault;;0;../../fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
-0x2501;FDI_MyFault;;1;../../fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
-0x2502;FDI_ConfirmLater;;2;../../fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
-0x2101;TMF_Busy;;1;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2102;TMF_LastPacketFound;;2;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2103;TMF_StopFetch;;3;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2104;TMF_Timeout;;4;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2105;TMF_TmChannelFull;;5;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2106;TMF_NotStored;;6;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2107;TMF_AllDeleted;;7;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2108;TMF_InvalidData;;8;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2109;TMF_NotReady;;9;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
-0x2001;TMB_Busy;;1;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2002;TMB_Full;;2;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2003;TMB_Empty;;3;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2004;TMB_NullRequested;;4;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2005;TMB_TooLarge;;5;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2006;TMB_NotReady;;6;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2007;TMB_DumpError;;7;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2008;TMB_CrcError;;8;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x2009;TMB_Timeout;;9;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x200a;TMB_IdlePacketFound;;10;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x200b;TMB_TelecommandFound;;11;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x200c;TMB_NoPusATm;;12;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x200d;TMB_TooSmall;;13;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x200e;TMB_BlockNotFound;;14;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x200f;TMB_InvalidRequest;;15;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
-0x1c01;TCD_PacketLost;;1;../../fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
-0x1c02;TCD_DestinationNotFound;;2;../../fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
-0x1c03;TCD_ServiceIdAlreadyExists;;3;../../fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
-0x1b00;TCC_IllegalApid;;0;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x1b01;TCC_IncompletePacket;;1;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x1b02;TCC_IncorrectChecksum;;2;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x1b03;TCC_IllegalPacketType;;3;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x1b04;TCC_IllegalPacketSubtype;;4;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x1b05;TCC_IncorrectPrimaryHeader;;5;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x1b06;TCC_IncorrectSecondaryHeader;;6;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
-0x4e1;RMP_CommandNoDescriptorsAvailable;;0xE1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4e2;RMP_CommandBufferFull;;0xE2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4e3;RMP_CommandChannelOutOfRange;;0xE3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4e6;RMP_CommandChannelDeactivated;;0xE6;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4e7;RMP_CommandPortOutOfRange;;0xE7;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4e8;RMP_CommandPortInUse;;0xE8;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4e9;RMP_CommandNoChannel;;0xE9;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4ea;RMP_NoHwCrc;;0xEA;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4d0;RMP_ReplyNoReply;;0xD0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4d1;RMP_ReplyNotSent;;0xD1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4d2;RMP_ReplyNotYetSent;;0xD2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4d3;RMP_ReplyMissmatch;;0xD3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4d4;RMP_ReplyTimeout;;0xD4;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4c0;RMP_ReplyInterfaceBusy;;0xC0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4c1;RMP_ReplyTransmissionError;;0xC1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4c2;RMP_ReplyInvalidData;;0xC2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4c3;RMP_ReplyNotSupported;;0xC3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f0;RMP_LinkDown;;0xF0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f1;RMP_SpwCredit;;0xF1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f2;RMP_SpwEscape;;0xF2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f3;RMP_SpwDisconnect;;0xF3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f4;RMP_SpwParity;;0xF4;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f5;RMP_SpwWriteSync;;0xF5;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f6;RMP_SpwInvalidAddress;;0xF6;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f7;RMP_SpwEarlyEop;;0xF7;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f8;RMP_SpwDma;;0xF8;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x4f9;RMP_SpwLinkError;;0xF9;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x400;RMP_ReplyOk;;0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x401;RMP_ReplyGeneralErrorCode;;1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x402;RMP_ReplyUnusedPacketTypeOrCommandCode;;2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x403;RMP_ReplyInvalidKey;;3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x404;RMP_ReplyInvalidDataCrc;;4;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x405;RMP_ReplyEarlyEop;;5;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x406;RMP_ReplyTooMuchData;;6;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x407;RMP_ReplyEep;;7;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x408;RMP_ReplyReserved;;8;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x409;RMP_ReplyVerifyBufferOverrun;;9;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x40a;RMP_ReplyCommandNotImplementedOrNotAuthorised;;10;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x40b;RMP_ReplyRmwDataLengthError;;11;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x40c;RMP_ReplyInvalidTargetLogicalAddress;;12;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
-0x2701;SM_DataTooLarge;;1;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
-0x2702;SM_DataStorageFull;;2;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
-0x2703;SM_IllegalStorageId;;3;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
-0x2704;SM_DataDoesNotExist;;4;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
-0x2705;SM_IllegalAddress;;5;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
-0x2706;SM_PoolTooLarge;;6;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
-0x36a1;SGP4_InvalidEccentricity;;0xA1;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36a2;SGP4_InvalidMeanMotion;;0xA2;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36a3;SGP4_InvalidPerturbationElements;;0xA3;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36a4;SGP4_InvalidSemiLatusRectum;;0xA4;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36a5;SGP4_InvalidEpochElements;;0xA5;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36a6;SGP4_SatelliteHasDecayed;;0xA6;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36b1;SGP4_TleTooOld;;0xB1;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x36b2;SGP4_TleNotInitialized;;0xB2;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
-0x2301;MT_TooDetailedRequest;;1;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
-0x2302;MT_TooGeneralRequest;;2;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
-0x2303;MT_NoMatch;;3;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
-0x2304;MT_Full;;4;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
-0x2305;MT_NewNodeCreated;;5;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
-0x3d01;DLEE_StreamTooShort;;0x01;../../fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
-0x3d02;DLEE_DecodingError;;0x02;../../fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
-0x2e01;ASC_TooLongForTargetType;;1;../../fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
-0x2e02;ASC_InvalidCharacters;;2;../../fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
-0x2e03;ASC_BufferTooSmall;;0x3;../../fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
-0xf01;CM_UnknownCommand;;1;../../fsfw/ipc/CommandMessageIF.h;COMMAND_MESSAGE
-0x3801;MQI_Empty;;1;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
-0x3802;MQI_Full; No space left for more messages;2;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
-0x3803;MQI_NoReplyPartner; Returned if a reply method was called without partner;3;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
-0x3804;MQI_DestinationInvalid; Returned if the target destination is invalid.;4;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
-0x3701;MUX_NotEnoughResources;;1;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3702;MUX_InsufficientMemory;;2;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3703;MUX_NoPrivilege;;3;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3704;MUX_WrongAttributeSetting;;4;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3705;MUX_MutexAlreadyLocked;;5;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3706;MUX_MutexNotFound;;6;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3707;MUX_MutexMaxLocks;;7;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3708;MUX_CurrThreadAlreadyOwnsMutex;;8;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3709;MUX_CurrThreadDoesNotOwnMutex;;9;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x370a;MUX_MutexTimeout;;10;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x370b;MUX_MutexInvalidId;;11;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x370c;MUX_MutexDestroyedWhileWaiting;;12;../../fsfw/ipc/MutexIF.h;MUTEX_IF
-0x3901;SPH_SemaphoreTimeout;;1;../../fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
-0x3902;SPH_SemaphoreNotOwned;;2;../../fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
-0x3903;SPH_SemaphoreInvalid;;3;../../fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
-0x2801;TC_InvalidTargetState;;1;../../fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
-0x28f1;TC_AboveOperationalLimit;;0xF1;../../fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
-0x28f2;TC_BelowOperationalLimit;;0xF2;../../fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
-0xc02;MS_InvalidEntry;;0x02;../../fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
-0xc03;MS_TooManyElements;;0x03;../../fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
-0xc04;MS_CantStoreEmpty;;0x04;../../fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
-0xd01;SS_SequenceAlreadyExists;;0x01;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd02;SS_TableAlreadyExists;;0x02;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd03;SS_TableDoesNotExist;;0x03;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd04;SS_TableOrSequenceLengthInvalid;;0x04;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd05;SS_SequenceDoesNotExist;;0x05;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd06;SS_TableContainsInvalidObjectId;;0x06;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd07;SS_FallbackSequenceDoesNotExist;;0x07;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd08;SS_NoTargetTable;;0x08;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd09;SS_SequenceOrTableTooLong;;0x09;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd0b;SS_IsFallbackSequence;;0x0B;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd0c;SS_AccessDenied;;0x0C;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xd0e;SS_TableInUse;;0x0E;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xda1;SS_TargetTableNotReached;;0xA1;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xda2;SS_TableCheckFailed;;0xA2;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
-0xb01;SB_ChildNotFound;;0x01;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
-0xb02;SB_ChildInfoUpdated;;0x02;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
-0xb03;SB_ChildDoesntHaveModes;;0x03;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
-0xb04;SB_CouldNotInsertChild;;0x04;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
-0xb05;SB_TableContainsInvalidObjectId;;0x05;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
-0x3c00;HKM_QueueOrDestinationInvalid;;0;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
-0x3c01;HKM_WrongHkPacketType;;1;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
-0x3c02;HKM_ReportingStatusUnchanged;;2;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
-0x3c03;HKM_PeriodicHelperInvalid;;3;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
-0x3c04;HKM_PoolobjectNotFound;;4;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
-0x3c05;HKM_DatasetNotFound;;5;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
-0x3a00;LPIF_PoolEntryNotFound;;0x00;../../fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
-0x3a01;LPIF_PoolEntryTypeConflict;;0x01;../../fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
-0x3ba0;PVA_InvalidReadWriteMode;;0xA0;../../fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
-0x3ba1;PVA_InvalidPoolEntry;;0xA1;../../fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
-0x801;DPS_InvalidParameterDefinition;;1;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
-0x802;DPS_SetWasAlreadyRead;;2;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
-0x803;DPS_CommitingWithoutReading;;3;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
-0x804;DPS_DataSetUninitialised;;4;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
-0x805;DPS_DataSetFull;;5;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
-0x806;DPS_PoolVarNull;;6;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
-0x1000;TIM_UnsupportedTimeFormat;;0;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
-0x1001;TIM_NotEnoughInformationForTargetFormat;;1;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
-0x1002;TIM_LengthMismatch;;2;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
-0x1003;TIM_InvalidTimeFormat;;3;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
-0x1004;TIM_InvalidDayOfYear;;4;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
-0x1005;TIM_TimeDoesNotFitFormat;;5;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
-0x3501;TSI_BadTimestamp;;1;../../fsfw/timemanager/TimeStamperIF.h;TIME_STAMPER_IF
-0x1d01;PUS_ActivityStarted;;1;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
-0x1d02;PUS_InvalidSubservice;;2;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
-0x1d03;PUS_IllegalApplicationData;;3;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
-0x1d04;PUS_SendTmFailed;;4;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
-0x1d05;PUS_Timeout;;5;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
-0x1f01;CSB_ExecutionComplete;;1;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1f02;CSB_NoStepMessage;;2;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1f03;CSB_ObjectBusy;;3;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1f04;CSB_Busy;;4;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1f05;CSB_InvalidTc;;5;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1f06;CSB_InvalidObject;;6;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1f07;CSB_InvalidReply;;7;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
-0x1101;AL_Full;;0x01;../../fsfw/container/ArrayList.h;ARRAY_LIST
-0x1801;FF_Full;;1;../../fsfw/container/FIFOBase.h;FIFO_CLASS
-0x1802;FF_Empty;;2;../../fsfw/container/FIFOBase.h;FIFO_CLASS
-0x1601;FMM_MapFull;;0x01;../../fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
-0x1602;FMM_KeyDoesNotExist;;0x02;../../fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
-0x1501;FM_KeyAlreadyExists;;0x01;../../fsfw/container/FixedMap.h;FIXED_MAP
-0x1502;FM_MapFull;;0x02;../../fsfw/container/FixedMap.h;FIXED_MAP
-0x1503;FM_KeyDoesNotExist;;0x03;../../fsfw/container/FixedMap.h;FIXED_MAP
-0x2401;EV_ListenerNotFound;;1;../../fsfw/events/EventManagerIF.h;EVENT_MANAGER_IF
-0x1701;HHI_ObjectNotHealthy;;1;../../fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
-0x1702;HHI_InvalidHealthState;;2;../../fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
-0x2f01;POS_InPowerTransition;;1;../../fsfw/power/PowerSwitcher.h;POWER_SWITCHER
-0x2f02;POS_SwitchStateMismatch;;2;../../fsfw/power/PowerSwitcher.h;POWER_SWITCHER
-0x501;PS_SwitchOn;;1;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
-0x500;PS_SwitchOff;;0;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
-0x502;PS_SwitchTimeout;;2;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
-0x503;PS_FuseOn;;3;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
-0x504;PS_FuseOff;;4;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
-0x1a01;TRC_NotEnoughSensors;;1;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
-0x1a02;TRC_LowestValueOol;;2;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
-0x1a03;TRC_HighestValueOol;;3;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
-0x1a04;TRC_BothValuesOol;;4;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
-0x1a05;TRC_DuplexOol;;5;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
-0x3001;LIM_Unchecked;;1;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x3002;LIM_Invalid;;2;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x3003;LIM_Unselected;;3;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x3004;LIM_BelowLowLimit;;4;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x3005;LIM_AboveHighLimit;;5;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x3006;LIM_UnexpectedValue;;6;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x3007;LIM_OutOfRange;;7;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x30a0;LIM_FirstSample;;0xA0;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x30e0;LIM_InvalidSize;;0xE0;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x30e1;LIM_WrongType;;0xE1;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x30e2;LIM_WrongPid;;0xE2;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x30e3;LIM_WrongLimitId;;0xE3;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x30ee;LIM_MonitorNotFound;;0xEE;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
-0x4000;FILS_GenericFileError;;0;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x4001;FILS_IsBusy;;1;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x4002;FILS_InvalidParameters;;2;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x4005;FILS_FileDoesNotExist;;5;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x4006;FILS_FileAlreadyExists;;6;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x4007;FILS_FileLocked;;7;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x400a;FILS_DirectoryDoesNotExist;;10;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x400b;FILS_DirectoryAlreadyExists;;11;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x400c;FILS_DirectoryNotEmpty;;12;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x400f;FILS_SequencePacketMissingWrite;;15;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x4010;FILS_SequencePacketMissingRead;;16;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
-0x601;PP_DoItMyself;;1;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x602;PP_PointsToVariable;;2;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x603;PP_PointsToMemory;;3;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x604;PP_ActivityCompleted;;4;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x605;PP_PointsToVectorUint8;;5;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x606;PP_PointsToVectorUint16;;6;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x607;PP_PointsToVectorUint32;;7;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x608;PP_PointsToVectorFloat;;8;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x6a0;PP_DumpNotSupported;;0xA0;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x6e0;PP_InvalidSize;;0xE0;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x6e1;PP_InvalidAddress;;0xE1;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x6e2;PP_InvalidContent;;0xE2;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x6e3;PP_UnalignedAccess;;0xE3;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x6e4;PP_WriteProtected;;0xE4;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
-0x13e0;MH_UnknownCmd;;0xE0;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
-0x13e1;MH_InvalidAddress;;0xE1;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
-0x13e2;MH_InvalidSize;;0xE2;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
-0x13e3;MH_StateMismatch;;0xE3;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
-0x1201;AB_NeedSecondStep;;0x01;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
-0x1202;AB_NeedToReconfigure;;0x02;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
-0x1203;AB_ModeFallback;;0x03;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
-0x1204;AB_ChildNotCommandable;;0x04;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
-0x1205;AB_NeedToChangeHealth;;0x05;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
-0x12a1;AB_NotEnoughChildrenInCorrectState;;0xa1;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
-0x3a0;DHB_InvalidChannel;;0xA0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3b0;DHB_AperiodicReply;;0xB0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3b1;DHB_IgnoreReplyData;;0xB1;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3b2;DHB_IgnoreFullPacket;;0xB2;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3c0;DHB_NothingToSend;;0xC0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3c2;DHB_CommandMapError;;0xC2;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3d0;DHB_NoSwitch;;0xD0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3e0;DHB_ChildTimeout;;0xE0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3e1;DHB_SwitchFailed;;0xE1;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
-0x3301;DC_NoReplyReceived;;0x01;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
-0x3302;DC_ProtocolError;;0x02;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
-0x3303;DC_Nullpointer;;0x03;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
-0x3304;DC_InvalidCookieType;;0x04;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
-0x3305;DC_NotActive;;0x05;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
-0x3306;DC_TooMuchData;;0x06;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
-0x26a0;DHI_NoCommandData;;0xA0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a1;DHI_CommandNotSupported;;0xA1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a2;DHI_CommandAlreadySent;;0xA2;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a3;DHI_CommandWasNotSent;;0xA3;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a4;DHI_CantSwitchAddress;;0xA4;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a5;DHI_WrongModeForCommand;;0xA5;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a6;DHI_Timeout;;0xA6;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a7;DHI_Busy;;0xA7;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a8;DHI_NoReplyExpected;;0xA8;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26a9;DHI_NonOpTemperature;;0xA9;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26aa;DHI_CommandNotImplemented;;0xAA;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26b0;DHI_ChecksumError;;0xB0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26b1;DHI_LengthMissmatch;;0xB1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26b2;DHI_InvalidData;;0xB2;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26b3;DHI_ProtocolError;;0xB3;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26c0;DHI_DeviceDidNotExecute;;0xC0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26c1;DHI_DeviceReportedError;;0xC1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26c2;DHI_UnknownDeviceReply;;0xC2;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26c3;DHI_DeviceReplyInvalid;;0xC3;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26d0;DHI_InvalidCommandParameter;;0xD0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x26d1;DHI_InvalidNumberOrLengthOfParameters;;0xD1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
-0x1401;SE_BufferTooShort;;1;../../fsfw/serialize/SerializeIF.h;SERIALIZE_IF
-0x1402;SE_StreamTooShort;;2;../../fsfw/serialize/SerializeIF.h;SERIALIZE_IF
-0x1403;SE_TooManyElements;;3;../../fsfw/serialize/SerializeIF.h;SERIALIZE_IF
-0x4aa1;HEATER_CommandNotSupported;;0xA1;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
-0x4aa2;HEATER_InitFailed;;0xA2;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
-0x4aa3;HEATER_InvalidSwitchNr;;0xA3;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
-0x4aa4;HEATER_MainSwitchSetTimeout;;0xA4;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
-0x4aa5;HEATER_CommandAlreadyWaiting;;0xA5;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
-0x4ea0;SUSS_ErrorUnlockMutex;;0xA0;../../linux/devices/SusHandler.h;SUS_HANDLER
-0x4ea1;SUSS_ErrorLockMutex;;0xA1;../../linux/devices/SusHandler.h;SUS_HANDLER
-0x57a0;SADPL_CommandNotSupported;;0xA0;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
-0x57a1;SADPL_DeploymentAlreadyExecuting;;0xA1;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
-0x57a2;SADPL_MainSwitchTimeoutFailure;;0xA2;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
-0x57a3;SADPL_SwitchingDeplSa1Failed;;0xA3;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
-0x57a4;SADPL_SwitchingDeplSa2Failed;;0xA4;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
+0x5d00;GOMS_PacketTooLong;;0;/home/rmueller/EIVE/eive-obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
+0x5d01;GOMS_InvalidTableId;;1;/home/rmueller/EIVE/eive-obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
+0x5d02;GOMS_InvalidAddress;;2;/home/rmueller/EIVE/eive-obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
+0x5d03;GOMS_InvalidParamSize;;3;/home/rmueller/EIVE/eive-obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
+0x5d04;GOMS_InvalidPayloadSize;;4;/home/rmueller/EIVE/eive-obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
+0x5d05;GOMS_UnknownReplyId;;5;/home/rmueller/EIVE/eive-obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
+0x54a0;PLSV_CrcFailure;Space Packet received from PLOC supervisor has invalid CRC;0xA0;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
+0x54a1;PLSV_ReceivedAckFailure;Received ACK failure reply from PLOC supervisor;0xA1;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
+0x54a2;PLSV_ReceivedExeFailure;Received execution failure reply from PLOC supervisor;0xA2;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
+0x54a3;PLSV_InvalidApid;Received space packet with invalid APID from PLOC supervisor;0xA3;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
+0x54a4;PLSV_GetTimeFailure;Failed to read current system time;0xA4;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
+0x54a5;PLSV_InvalidUartComIf;Invalid communication interface specified;0xA5;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
+0x51b0;RWHA_SpiWriteFailure;;0xB0;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51b1;RWHA_SpiReadFailure;Used by the spi send function to tell a failing read call;0xB1;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51b2;RWHA_MissingStartSign;Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E;0xB2;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51b3;RWHA_InvalidSubstitute;Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination;0xB3;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51b4;RWHA_MissingEndSign;HDLC decoding mechanism never receives the end sign 0x7E;0xB4;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51b5;RWHA_NoReply;Reaction wheel only responds with empty frames.;0xB5;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51a0;RWHA_InvalidSpeed;Action Message with invalid speed was received. Valid speeds must be in the range of [-65000; 1000] or [1000; 65000];0xA0;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51a1;RWHA_InvalidRampTime;Action Message with invalid ramp time was received.;0xA1;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51a2;RWHA_SetSpeedCommandInvalidLength;Received set speed command has invalid length. Should be 6.;0xA2;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51a3;RWHA_ExecutionFailed;Command execution failed;0xA3;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x51a4;RWHA_CrcError;Reaction wheel reply has invalid crc;0xA4;/home/rmueller/EIVE/eive-obsw/mission/devices/RwHandler.h;RW_HANDLER
+0x52b0;STRH_CrcFailure;Received reply with invalid CRC;0xB0;/home/rmueller/EIVE/eive-obsw/mission/devices/StarTrackerHandler.h;STR_HANDLER
+0x52a0;STRH_TmReplyError;Result code of tm reply indicates an error;0xA0;/home/rmueller/EIVE/eive-obsw/mission/devices/StarTrackerHandler.h;STR_HANDLER
+0x50a0;IMTQ_InvalidCommandCode;;0xA0;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a1;IMTQ_ParameterMissing;;0xA1;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a2;IMTQ_ParameterInvalid;;0xA2;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a3;IMTQ_CcUnavailable;;0xA3;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a4;IMTQ_InternalProcessingError;;0xA4;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a5;IMTQ_RejectedWithoutReason;;0xA5;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a6;IMTQ_CmdErrUnknown;;0xA6;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x50a7;IMTQ_UnexpectedSelfTestReply;The status reply to a self test command was received but no self test command has been sent. This should normally never happen.;0xA7;/home/rmueller/EIVE/eive-obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
+0x4fa0;SYRLINKS_CrcFailure;;0xA0;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa1;SYRLINKS_UartFraminOrParityErrorAck;;0xA1;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa2;SYRLINKS_BadCharacterAck;;0xA2;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa3;SYRLINKS_BadParameterValueAck;;0xA3;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa4;SYRLINKS_BadEndOfFrameAck;;0xA4;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa5;SYRLINKS_UnknownCommandIdAck;;0xA5;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa6;SYRLINKS_BadCrcAck;;0xA6;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa7;SYRLINKS_ReplyWrongSize;;0xA7;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x4fa8;SYRLINKS_MissingStartFrameCharacter;;0xA8;/home/rmueller/EIVE/eive-obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
+0x53a0;PLMP_CrcFailure;;0xA0;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
+0x53a1;PLMP_ReceivedAckFailure;;0xA1;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
+0x53a2;PLMP_ReceivedExeFailure;;0xA2;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
+0x53a3;PLMP_InvalidApid;;0xA3;/home/rmueller/EIVE/eive-obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
+0x4100;HSPI_HalTimeoutRetval;;0;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h;HAL_SPI
+0x4101;HSPI_HalBusyRetval;;1;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h;HAL_SPI
+0x4102;HSPI_HalErrorRetval;;2;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h;HAL_SPI
+0x4201;HURT_UartReadFailure;;1;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/uart/UartComIF.h;HAL_UART
+0x4202;HURT_UartReadSizeMissmatch;;2;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/uart/UartComIF.h;HAL_UART
+0x4203;HURT_UartRxBufferTooSmall;;3;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/uart/UartComIF.h;HAL_UART
+0x4401;HGIO_UnknownGpioId;;1;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
+0x4402;HGIO_DriveGpioFailure;;2;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
+0x4403;HGIO_GpioTypeFailure;;3;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
+0x4404;HGIO_GpioInvalidInstance;;4;/home/rmueller/EIVE/eive-obsw/fsfw/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
+0x2b01;CCS_BcIsSetVrCommand;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2b02;CCS_BcIsUnlockCommand;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bb0;CCS_BcIllegalCommand;;0xB0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bb1;CCS_BoardReadingNotFinished;;0xB1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bf0;CCS_NsPositiveW;;0xF0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bf1;CCS_NsNegativeW;;0xF1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bf2;CCS_NsLockout;;0xF2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bf3;CCS_FarmInLockout;;0xF3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bf4;CCS_FarmInWait;;0xF4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be0;CCS_WrongSymbol;;0xE0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be1;CCS_DoubleStart;;0xE1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be2;CCS_StartSymbolMissed;;0xE2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be3;CCS_EndWithoutStart;;0xE3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be4;CCS_TooLarge;;0xE4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be5;CCS_TooShort;;0xE5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be6;CCS_WrongTfVersion;;0xE6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be7;CCS_WrongSpacecraftId;;0xE7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be8;CCS_NoValidFrameType;;0xE8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2be9;CCS_CrcFailed;;0xE9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bea;CCS_VcNotFound;;0xEA;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2beb;CCS_ForwardingFailed;;0xEB;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bec;CCS_ContentTooLarge;;0xEC;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bed;CCS_ResidualData;;0xED;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bee;CCS_DataCorrupted;;0xEE;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bef;CCS_IllegalSegmentationFlag;;0xEF;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bd0;CCS_IllegalFlagCombination;;0xD0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bd1;CCS_ShorterThanHeader;;0xD1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bd2;CCS_TooShortBlockedPacket;;0xD2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2bd3;CCS_TooShortMapExtraction;;0xD3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
+0x2901;IEC_NoConfigurationTable;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2902;IEC_NoCpuTable;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2903;IEC_InvalidWorkspaceAddress;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2904;IEC_TooLittleWorkspace;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2905;IEC_WorkspaceAllocation;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2906;IEC_InterruptStackTooSmall;;0x06;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2907;IEC_ThreadExitted;;0x07;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2908;IEC_InconsistentMpInformation;;0x08;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2909;IEC_InvalidNode;;0x09;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x290a;IEC_NoMpci;;0x0a;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x290b;IEC_BadPacket;;0x0b;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x290c;IEC_OutOfPackets;;0x0c;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x290d;IEC_OutOfGlobalObjects;;0x0d;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x290e;IEC_OutOfProxies;;0x0e;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x290f;IEC_InvalidGlobalId;;0x0f;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2910;IEC_BadStackHook;;0x10;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2911;IEC_BadAttributes;;0x11;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2912;IEC_ImplementationKeyCreateInconsistency;;0x12;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2913;IEC_ImplementationBlockingOperationCancel;;0x13;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2914;IEC_MutexObtainFromBadState;;0x14;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0x2915;IEC_UnlimitedAndMaximumIs0;;0x15;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
+0xe01;HM_InvalidMode;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
+0xe02;HM_TransNotAllowed;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
+0xe03;HM_InTransition;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
+0xe04;HM_InvalidSubmode;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
+0x2d01;HPA_InvalidIdentifierId;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
+0x2d02;HPA_InvalidDomainId;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
+0x2d03;HPA_InvalidValue;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
+0x2d05;HPA_ReadOnly;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
+0x2c01;PAW_UnknownDatatype;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c02;PAW_DatatypeMissmatch;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c03;PAW_Readonly;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c04;PAW_TooBig;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c05;PAW_SourceNotSet;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c06;PAW_OutOfBounds;;0x06;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c07;PAW_NotSet;;0x07;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x2c08;PAW_ColumnOrRowsZero;;0x08;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
+0x3101;CF_ObjectHasNoFunctions;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
+0x3102;CF_AlreadyCommanding;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
+0x3201;HF_IsBusy;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
+0x3202;HF_InvalidParameters;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
+0x3203;HF_ExecutionFinished;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
+0x3204;HF_InvalidActionId;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
+0x201;OM_InsertionFailed;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
+0x202;OM_NotFound;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
+0x203;OM_ChildInitFailed;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
+0x204;OM_InternalErrReporterUninit;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
+0x2500;FDI_YourFault;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
+0x2501;FDI_MyFault;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
+0x2502;FDI_ConfirmLater;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
+0x2101;TMF_Busy;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2102;TMF_LastPacketFound;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2103;TMF_StopFetch;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2104;TMF_Timeout;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2105;TMF_TmChannelFull;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2106;TMF_NotStored;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2107;TMF_AllDeleted;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2108;TMF_InvalidData;;8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2109;TMF_NotReady;;9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
+0x2001;TMB_Busy;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2002;TMB_Full;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2003;TMB_Empty;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2004;TMB_NullRequested;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2005;TMB_TooLarge;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2006;TMB_NotReady;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2007;TMB_DumpError;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2008;TMB_CrcError;;8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x2009;TMB_Timeout;;9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x200a;TMB_IdlePacketFound;;10;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x200b;TMB_TelecommandFound;;11;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x200c;TMB_NoPusATm;;12;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x200d;TMB_TooSmall;;13;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x200e;TMB_BlockNotFound;;14;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x200f;TMB_InvalidRequest;;15;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
+0x1c01;TCD_PacketLost;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
+0x1c02;TCD_DestinationNotFound;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
+0x1c03;TCD_ServiceIdAlreadyExists;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
+0x1b00;TCC_IllegalApid;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x1b01;TCC_IncompletePacket;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x1b02;TCC_IncorrectChecksum;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x1b03;TCC_IllegalPacketType;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x1b04;TCC_IllegalPacketSubtype;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x1b05;TCC_IncorrectPrimaryHeader;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x1b06;TCC_IncorrectSecondaryHeader;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
+0x4e1;RMP_CommandNoDescriptorsAvailable;;0xE1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4e2;RMP_CommandBufferFull;;0xE2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4e3;RMP_CommandChannelOutOfRange;;0xE3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4e6;RMP_CommandChannelDeactivated;;0xE6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4e7;RMP_CommandPortOutOfRange;;0xE7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4e8;RMP_CommandPortInUse;;0xE8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4e9;RMP_CommandNoChannel;;0xE9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4ea;RMP_NoHwCrc;;0xEA;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4d0;RMP_ReplyNoReply;;0xD0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4d1;RMP_ReplyNotSent;;0xD1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4d2;RMP_ReplyNotYetSent;;0xD2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4d3;RMP_ReplyMissmatch;;0xD3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4d4;RMP_ReplyTimeout;;0xD4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4c0;RMP_ReplyInterfaceBusy;;0xC0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4c1;RMP_ReplyTransmissionError;;0xC1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4c2;RMP_ReplyInvalidData;;0xC2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4c3;RMP_ReplyNotSupported;;0xC3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f0;RMP_LinkDown;;0xF0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f1;RMP_SpwCredit;;0xF1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f2;RMP_SpwEscape;;0xF2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f3;RMP_SpwDisconnect;;0xF3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f4;RMP_SpwParity;;0xF4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f5;RMP_SpwWriteSync;;0xF5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f6;RMP_SpwInvalidAddress;;0xF6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f7;RMP_SpwEarlyEop;;0xF7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f8;RMP_SpwDma;;0xF8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x4f9;RMP_SpwLinkError;;0xF9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x400;RMP_ReplyOk;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x401;RMP_ReplyGeneralErrorCode;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x402;RMP_ReplyUnusedPacketTypeOrCommandCode;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x403;RMP_ReplyInvalidKey;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x404;RMP_ReplyInvalidDataCrc;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x405;RMP_ReplyEarlyEop;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x406;RMP_ReplyTooMuchData;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x407;RMP_ReplyEep;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x408;RMP_ReplyReserved;;8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x409;RMP_ReplyVerifyBufferOverrun;;9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x40a;RMP_ReplyCommandNotImplementedOrNotAuthorised;;10;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x40b;RMP_ReplyRmwDataLengthError;;11;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x40c;RMP_ReplyInvalidTargetLogicalAddress;;12;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
+0x2701;SM_DataTooLarge;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
+0x2702;SM_DataStorageFull;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
+0x2703;SM_IllegalStorageId;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
+0x2704;SM_DataDoesNotExist;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
+0x2705;SM_IllegalAddress;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
+0x2706;SM_PoolTooLarge;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
+0x36a1;SGP4_InvalidEccentricity;;0xA1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36a2;SGP4_InvalidMeanMotion;;0xA2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36a3;SGP4_InvalidPerturbationElements;;0xA3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36a4;SGP4_InvalidSemiLatusRectum;;0xA4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36a5;SGP4_InvalidEpochElements;;0xA5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36a6;SGP4_SatelliteHasDecayed;;0xA6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36b1;SGP4_TleTooOld;;0xB1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x36b2;SGP4_TleNotInitialized;;0xB2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
+0x2301;MT_TooDetailedRequest;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
+0x2302;MT_TooGeneralRequest;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
+0x2303;MT_NoMatch;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
+0x2304;MT_Full;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
+0x2305;MT_NewNodeCreated;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
+0x3d01;DLEE_StreamTooShort;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
+0x3d02;DLEE_DecodingError;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
+0x2e01;ASC_TooLongForTargetType;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
+0x2e02;ASC_InvalidCharacters;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
+0x2e03;ASC_BufferTooSmall;;0x3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
+0xf01;CM_UnknownCommand;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/CommandMessageIF.h;COMMAND_MESSAGE
+0x3801;MQI_Empty;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
+0x3802;MQI_Full;No space left for more messages;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
+0x3803;MQI_NoReplyPartner;Returned if a reply method was called without partner;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
+0x3804;MQI_DestinationInvalid;Returned if the target destination is invalid.;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
+0x3701;MUX_NotEnoughResources;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3702;MUX_InsufficientMemory;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3703;MUX_NoPrivilege;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3704;MUX_WrongAttributeSetting;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3705;MUX_MutexAlreadyLocked;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3706;MUX_MutexNotFound;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3707;MUX_MutexMaxLocks;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3708;MUX_CurrThreadAlreadyOwnsMutex;;8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3709;MUX_CurrThreadDoesNotOwnMutex;;9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x370a;MUX_MutexTimeout;;10;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x370b;MUX_MutexInvalidId;;11;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x370c;MUX_MutexDestroyedWhileWaiting;;12;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
+0x3901;SPH_SemaphoreTimeout;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
+0x3902;SPH_SemaphoreNotOwned;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
+0x3903;SPH_SemaphoreInvalid;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
+0x2801;TC_InvalidTargetState;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
+0x28f1;TC_AboveOperationalLimit;;0xF1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
+0x28f2;TC_BelowOperationalLimit;;0xF2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
+0xc02;MS_InvalidEntry;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
+0xc03;MS_TooManyElements;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
+0xc04;MS_CantStoreEmpty;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
+0xd01;SS_SequenceAlreadyExists;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd02;SS_TableAlreadyExists;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd03;SS_TableDoesNotExist;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd04;SS_TableOrSequenceLengthInvalid;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd05;SS_SequenceDoesNotExist;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd06;SS_TableContainsInvalidObjectId;;0x06;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd07;SS_FallbackSequenceDoesNotExist;;0x07;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd08;SS_NoTargetTable;;0x08;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd09;SS_SequenceOrTableTooLong;;0x09;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd0b;SS_IsFallbackSequence;;0x0B;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd0c;SS_AccessDenied;;0x0C;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xd0e;SS_TableInUse;;0x0E;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xda1;SS_TargetTableNotReached;;0xA1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xda2;SS_TableCheckFailed;;0xA2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
+0xb01;SB_ChildNotFound;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
+0xb02;SB_ChildInfoUpdated;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
+0xb03;SB_ChildDoesntHaveModes;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
+0xb04;SB_CouldNotInsertChild;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
+0xb05;SB_TableContainsInvalidObjectId;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
+0x3c00;HKM_QueueOrDestinationInvalid;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
+0x3c01;HKM_WrongHkPacketType;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
+0x3c02;HKM_ReportingStatusUnchanged;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
+0x3c03;HKM_PeriodicHelperInvalid;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
+0x3c04;HKM_PoolobjectNotFound;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
+0x3c05;HKM_DatasetNotFound;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
+0x3a00;LPIF_PoolEntryNotFound;;0x00;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
+0x3a01;LPIF_PoolEntryTypeConflict;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
+0x3ba0;PVA_InvalidReadWriteMode;;0xA0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
+0x3ba1;PVA_InvalidPoolEntry;;0xA1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
+0x801;DPS_InvalidParameterDefinition;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
+0x802;DPS_SetWasAlreadyRead;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
+0x803;DPS_CommitingWithoutReading;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
+0x804;DPS_DataSetUninitialised;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
+0x805;DPS_DataSetFull;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
+0x806;DPS_PoolVarNull;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
+0x1000;TIM_UnsupportedTimeFormat;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
+0x1001;TIM_NotEnoughInformationForTargetFormat;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
+0x1002;TIM_LengthMismatch;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
+0x1003;TIM_InvalidTimeFormat;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
+0x1004;TIM_InvalidDayOfYear;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
+0x1005;TIM_TimeDoesNotFitFormat;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
+0x3501;TSI_BadTimestamp;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/timemanager/TimeStamperIF.h;TIME_STAMPER_IF
+0x1d01;PUS_ActivityStarted;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
+0x1d02;PUS_InvalidSubservice;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
+0x1d03;PUS_IllegalApplicationData;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
+0x1d04;PUS_SendTmFailed;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
+0x1d05;PUS_Timeout;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
+0x1f01;CSB_ExecutionComplete;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1f02;CSB_NoStepMessage;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1f03;CSB_ObjectBusy;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1f04;CSB_Busy;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1f05;CSB_InvalidTc;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1f06;CSB_InvalidObject;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1f07;CSB_InvalidReply;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
+0x1101;AL_Full;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/ArrayList.h;ARRAY_LIST
+0x1801;FF_Full;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FIFOBase.h;FIFO_CLASS
+0x1802;FF_Empty;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FIFOBase.h;FIFO_CLASS
+0x1601;FMM_MapFull;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
+0x1602;FMM_KeyDoesNotExist;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
+0x1501;FM_KeyAlreadyExists;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP
+0x1502;FM_MapFull;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP
+0x1503;FM_KeyDoesNotExist;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP
+0x2401;EV_ListenerNotFound;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/events/EventManagerIF.h;EVENT_MANAGER_IF
+0x1701;HHI_ObjectNotHealthy;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
+0x1702;HHI_InvalidHealthState;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
+0x2f01;POS_InPowerTransition;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitcher.h;POWER_SWITCHER
+0x2f02;POS_SwitchStateMismatch;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitcher.h;POWER_SWITCHER
+0x501;PS_SwitchOn;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
+0x500;PS_SwitchOff;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
+0x502;PS_SwitchTimeout;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
+0x503;PS_FuseOn;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
+0x504;PS_FuseOff;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
+0x1a01;TRC_NotEnoughSensors;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
+0x1a02;TRC_LowestValueOol;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
+0x1a03;TRC_HighestValueOol;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
+0x1a04;TRC_BothValuesOol;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
+0x1a05;TRC_DuplexOol;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
+0x3001;LIM_Unchecked;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x3002;LIM_Invalid;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x3003;LIM_Unselected;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x3004;LIM_BelowLowLimit;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x3005;LIM_AboveHighLimit;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x3006;LIM_UnexpectedValue;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x3007;LIM_OutOfRange;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x30a0;LIM_FirstSample;;0xA0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x30e0;LIM_InvalidSize;;0xE0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x30e1;LIM_WrongType;;0xE1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x30e2;LIM_WrongPid;;0xE2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x30e3;LIM_WrongLimitId;;0xE3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x30ee;LIM_MonitorNotFound;;0xEE;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
+0x4000;FILS_GenericFileError;;0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x4001;FILS_IsBusy;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x4002;FILS_InvalidParameters;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x4005;FILS_FileDoesNotExist;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x4006;FILS_FileAlreadyExists;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x4007;FILS_FileLocked;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x400a;FILS_DirectoryDoesNotExist;;10;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x400b;FILS_DirectoryAlreadyExists;;11;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x400c;FILS_DirectoryNotEmpty;;12;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x400f;FILS_SequencePacketMissingWrite;;15;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x4010;FILS_SequencePacketMissingRead;;16;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
+0x601;PP_DoItMyself;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x602;PP_PointsToVariable;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x603;PP_PointsToMemory;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x604;PP_ActivityCompleted;;4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x605;PP_PointsToVectorUint8;;5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x606;PP_PointsToVectorUint16;;6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x607;PP_PointsToVectorUint32;;7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x608;PP_PointsToVectorFloat;;8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x6a0;PP_DumpNotSupported;;0xA0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x6e0;PP_InvalidSize;;0xE0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x6e1;PP_InvalidAddress;;0xE1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x6e2;PP_InvalidContent;;0xE2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x6e3;PP_UnalignedAccess;;0xE3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x6e4;PP_WriteProtected;;0xE4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
+0x13e0;MH_UnknownCmd;;0xE0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
+0x13e1;MH_InvalidAddress;;0xE1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
+0x13e2;MH_InvalidSize;;0xE2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
+0x13e3;MH_StateMismatch;;0xE3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
+0x1201;AB_NeedSecondStep;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
+0x1202;AB_NeedToReconfigure;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
+0x1203;AB_ModeFallback;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
+0x1204;AB_ChildNotCommandable;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
+0x1205;AB_NeedToChangeHealth;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
+0x12a1;AB_NotEnoughChildrenInCorrectState;;0xa1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
+0x3a0;DHB_InvalidChannel;;0xA0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3b0;DHB_AperiodicReply;;0xB0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3b1;DHB_IgnoreReplyData;;0xB1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3b2;DHB_IgnoreFullPacket;;0xB2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3c0;DHB_NothingToSend;;0xC0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3c2;DHB_CommandMapError;;0xC2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3d0;DHB_NoSwitch;;0xD0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3e0;DHB_ChildTimeout;;0xE0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3e1;DHB_SwitchFailed;;0xE1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
+0x3301;DC_NoReplyReceived;;0x01;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
+0x3302;DC_ProtocolError;;0x02;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
+0x3303;DC_Nullpointer;;0x03;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
+0x3304;DC_InvalidCookieType;;0x04;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
+0x3305;DC_NotActive;;0x05;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
+0x3306;DC_TooMuchData;;0x06;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
+0x26a0;DHI_NoCommandData;;0xA0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a1;DHI_CommandNotSupported;;0xA1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a2;DHI_CommandAlreadySent;;0xA2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a3;DHI_CommandWasNotSent;;0xA3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a4;DHI_CantSwitchAddress;;0xA4;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a5;DHI_WrongModeForCommand;;0xA5;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a6;DHI_Timeout;;0xA6;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a7;DHI_Busy;;0xA7;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a8;DHI_NoReplyExpected;;0xA8;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26a9;DHI_NonOpTemperature;;0xA9;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26aa;DHI_CommandNotImplemented;;0xAA;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26b0;DHI_ChecksumError;;0xB0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26b1;DHI_LengthMissmatch;;0xB1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26b2;DHI_InvalidData;;0xB2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26b3;DHI_ProtocolError;;0xB3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26c0;DHI_DeviceDidNotExecute;;0xC0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26c1;DHI_DeviceReportedError;;0xC1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26c2;DHI_UnknownDeviceReply;;0xC2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26c3;DHI_DeviceReplyInvalid;;0xC3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26d0;DHI_InvalidCommandParameter;;0xD0;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x26d1;DHI_InvalidNumberOrLengthOfParameters;;0xD1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
+0x1401;SE_BufferTooShort;;1;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF
+0x1402;SE_StreamTooShort;;2;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF
+0x1403;SE_TooManyElements;;3;/home/rmueller/EIVE/eive-obsw/fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF
+0x5f00;SDMA_AlreadyOn;;0;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f01;SDMA_AlreadyMounted;;1;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f02;SDMA_AlreadyOff;;2;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f0a;SDMA_StatusFileNexists;;10;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f0b;SDMA_StatusFileFormatInvalid;;11;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f0c;SDMA_MountError;;12;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f0d;SDMA_UnmountError;;13;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x5f0e;SDMA_SystemCallError;;14;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
+0x6000;SCBU_KeyNotFound;;0;/home/rmueller/EIVE/eive-obsw/bsp_q7s/memory/scratchApi.h;SCRATCH_BUFFER
+0x4ea1;HEATER_CommandNotSupported;;0xA1;/home/rmueller/EIVE/eive-obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
+0x4ea2;HEATER_InitFailed;;0xA2;/home/rmueller/EIVE/eive-obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
+0x4ea3;HEATER_InvalidSwitchNr;;0xA3;/home/rmueller/EIVE/eive-obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
+0x4ea4;HEATER_MainSwitchSetTimeout;;0xA4;/home/rmueller/EIVE/eive-obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
+0x4ea5;HEATER_CommandAlreadyWaiting;;0xA5;/home/rmueller/EIVE/eive-obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
+0x55a0;SUSS_ErrorUnlockMutex;;0xA0;/home/rmueller/EIVE/eive-obsw/linux/devices/SusHandler.h;SUS_HANDLER
+0x55a1;SUSS_ErrorLockMutex;;0xA1;/home/rmueller/EIVE/eive-obsw/linux/devices/SusHandler.h;SUS_HANDLER
+0x5ea0;SADPL_CommandNotSupported;;0xA0;/home/rmueller/EIVE/eive-obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
+0x5ea1;SADPL_DeploymentAlreadyExecuting;;0xA1;/home/rmueller/EIVE/eive-obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
+0x5ea2;SADPL_MainSwitchTimeoutFailure;;0xA2;/home/rmueller/EIVE/eive-obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
+0x5ea3;SADPL_SwitchingDeplSa1Failed;;0xA3;/home/rmueller/EIVE/eive-obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
+0x5ea4;SADPL_SwitchingDeplSa2Failed;;0xA4;/home/rmueller/EIVE/eive-obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
+0x5e01;SADPL_UnknownGpioId;;1;/home/rmueller/EIVE/eive-obsw/linux/archive/gpio/LinuxLibgpioIF.h;SA_DEPL_HANDLER
+0x5e02;SADPL_DriveGpioFailure;;2;/home/rmueller/EIVE/eive-obsw/linux/archive/gpio/LinuxLibgpioIF.h;SA_DEPL_HANDLER
+0x5e03;SADPL_GpioTypeFailure;;3;/home/rmueller/EIVE/eive-obsw/linux/archive/gpio/LinuxLibgpioIF.h;SA_DEPL_HANDLER
+0x5e04;SADPL_GpioInvalidInstance;;4;/home/rmueller/EIVE/eive-obsw/linux/archive/gpio/LinuxLibgpioIF.h;SA_DEPL_HANDLER
+0x56a0;IPCI_PapbBusy;;0xA0;/home/rmueller/EIVE/eive-obsw/linux/obc/CCSDSIPCoreBridge.h;CCSDS_IP_CORE_BRIDGE
diff --git a/generators/definitions.py b/generators/definitions.py
index 42cf4f7b..528c3019 100644
--- a/generators/definitions.py
+++ b/generators/definitions.py
@@ -1,5 +1,10 @@
+import os
import enum
+from pathlib import Path
+PATH_VAR_ROOT = Path(os.path.abspath(os.curdir))
+ROOT_DIR = PATH_VAR_ROOT.absolute()
+OBSW_ROOT_DIR = PATH_VAR_ROOT.parent.absolute()
DATABASE_NAME = "eive_mod.db"
diff --git a/generators/events/event_parser.py b/generators/events/event_parser.py
index 565f2240..56cc076f 100644
--- a/generators/events/event_parser.py
+++ b/generators/events/event_parser.py
@@ -1,23 +1,18 @@
-#! /usr/bin/python3
-"""
-@file event_parser.py
-@brief Part of the Mission Information Base Exporter for the SOURCE project by KSat.
-@details
+"""Part of the Mission Operation Database Exporter for the EVIE project.
Event exporter.
-
-To use MySQLdb, run pip install mysqlclient or install in IDE.
-On Windows, Build Tools installation might be necessary
-@data 21.11.2019
"""
import datetime
+import time
-from fsfwgen.events.event_parser import handle_csv_export, handle_cpp_export, SubsystemDefinitionParser, EventParser
+from fsfwgen.events.event_parser import handle_csv_export, handle_cpp_export, \
+ SubsystemDefinitionParser, EventParser
from fsfwgen.parserbase.file_list_parser import FileListParser
from fsfwgen.utility.printer import PrettyPrinter
from fsfwgen.utility.file_management import copy_file, move_file
+from fsfwgen.core import get_console_logger
+from definitions import BspType, ROOT_DIR, OBSW_ROOT_DIR
-from definitions import BspType
-
+LOGGER = get_console_logger()
DATE_TODAY = datetime.datetime.now()
DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S")
@@ -30,56 +25,67 @@ MOVE_CSV_FILE = True
PARSE_HOST_BSP = True
-CPP_FILENAME = "translateEvents.cpp"
-CPP_H_FILENAME = "translateEvents.h"
+CPP_FILENAME = f'{__package__}/translateEvents.cpp'
+CPP_H_FILENAME = f'{__package__}/translateEvents.h'
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
CSV_FILENAME = f"{BSP_SELECT.value}_events.csv"
-CSV_MOVE_DESTINATION = "../"
+CSV_MOVE_DESTINATION = f'{ROOT_DIR}'
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
- FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
+ FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
else:
- FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
+ FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig"
CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/events/"
FILE_SEPARATOR = ";"
SUBSYSTEM_DEFINITION_DESTINATIONS = [
f"{FSFW_CONFIG_ROOT}/events/subsystemIdRanges.h",
- "../../fsfw/events/fwSubsystemIdRanges.h",
- f"../../common/config/commonSubsystemIds.h"
+ f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/events/fwSubsystemIdRanges.h",
+ f"{OBSW_ROOT_DIR}/common/config/commonSubsystemIds.h"
+]
+HEADER_DEFINITION_DESTINATIONS = [
+ f"{OBSW_ROOT_DIR}/mission/", f"{OBSW_ROOT_DIR}/fsfw/", f"{FSFW_CONFIG_ROOT}",
+ f"{OBSW_ROOT_DIR}/test/"
]
-HEADER_DEFINITION_DESTINATIONS = ["../../mission/", "../../fsfw/", f"{FSFW_CONFIG_ROOT}", "../../test/"]
-def main():
- print("EventParser: Parsing events: ")
- event_list = parse_events()
- if GENERATE_CSV:
- handle_csv_export(file_name=CSV_FILENAME, event_list=event_list, file_separator=FILE_SEPARATOR)
- if MOVE_CSV_FILE:
- move_file(file_name=CSV_FILENAME, destination=CSV_MOVE_DESTINATION)
- if GENERATE_CPP:
+def parse_events(
+ generate_csv: bool = True, generate_cpp: bool = True, print_events: bool = True
+):
+ LOGGER.info("EventParser: Parsing events: ")
+ # Small delay for clean printout
+ time.sleep(0.01)
+ event_list = generate_event_list()
+ if print_events:
+ PrettyPrinter.pprint(event_list)
+ # Delay for clean printout
+ time.sleep(0.1)
+ # xml_test()
+ if generate_csv:
+ handle_csv_export(
+ file_name=CSV_FILENAME, event_list=event_list, file_separator=FILE_SEPARATOR
+ )
+ if generate_cpp:
handle_cpp_export(
event_list=event_list, date_string=DATE_STRING_FULL, file_name=CPP_FILENAME,
generate_header=GENERATE_CPP_H, header_file_name=CPP_H_FILENAME
)
if COPY_CPP_FILE:
- print(f"EventParser: Copying file to {CPP_COPY_DESTINATION}")
+ LOGGER.info(f'EventParser: Copying file to {CPP_COPY_DESTINATION}')
copy_file(CPP_FILENAME, CPP_COPY_DESTINATION)
copy_file(CPP_H_FILENAME, CPP_COPY_DESTINATION)
- print("")
-def parse_events():
+def generate_event_list() -> list:
subsystem_parser = SubsystemDefinitionParser(SUBSYSTEM_DEFINITION_DESTINATIONS)
subsystem_table = subsystem_parser.parse_files()
- print(f"Found {len(subsystem_table)} subsystem definitions.")
+ LOGGER.info(f'Found {len(subsystem_table)} subsystem definitions.')
PrettyPrinter.pprint(subsystem_table)
event_header_parser = FileListParser(HEADER_DEFINITION_DESTINATIONS)
event_headers = event_header_parser.parse_header_files(
@@ -90,11 +96,6 @@ def parse_events():
event_parser = EventParser(event_headers, subsystem_table)
event_parser.set_moving_window_mode(moving_window_size=7)
event_table = event_parser.parse_files()
- list_items = sorted(event_table.items())
- print(f"Found {len(list_items)} entries:")
- PrettyPrinter.pprint(list_items)
- return list_items
-
-
-if __name__ == "__main__":
- main()
+ event_list = sorted(event_table.items())
+ LOGGER.info(f'Found {len(event_list)} entries')
+ return event_list
diff --git a/generators/events/translateEvents.cpp b/generators/events/translateEvents.cpp
index 20521618..0df84ad2 100644
--- a/generators/events/translateEvents.cpp
+++ b/generators/events/translateEvents.cpp
@@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 96 translations.
* @details
- * Generated on: 2021-07-12 15:20:38
+ * Generated on: 2021-08-02 11:41:47
*/
#include "translateEvents.h"
diff --git a/generators/events/translateEvents.h b/generators/events/translateEvents.h
index 9034dcf2..bdabb21b 100644
--- a/generators/events/translateEvents.h
+++ b/generators/events/translateEvents.h
@@ -1,7 +1,7 @@
#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
-#include
+#include "fsfw/events/Event.h"
const char * translateEvents(Event event);
diff --git a/generators/fsfwgen b/generators/fsfwgen
index 78e890f9..636670f7 160000
--- a/generators/fsfwgen
+++ b/generators/fsfwgen
@@ -1 +1 @@
-Subproject commit 78e890f947f55a9417d390fea8d9bd5684d11730
+Subproject commit 636670f7a0075533974ca0a668efa9b623a52749
diff --git a/generators/fsfwgen.py b/generators/fsfwgen.py
new file mode 100755
index 00000000..04c38d24
--- /dev/null
+++ b/generators/fsfwgen.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+import time
+
+from objects.objects import parse_objects
+from events.event_parser import parse_events
+from returnvalues.returnvalues_parser import parse_returnvalues
+from fsfwgen.core import return_generic_args_parser, init_printout, get_console_logger, ParserTypes
+
+
+LOGGER = get_console_logger()
+
+
+def main():
+ init_printout(project_string='EIVE')
+ parser = return_generic_args_parser()
+ args = parser.parse_args()
+ if args.type == 'objects':
+ LOGGER.info(f'Generating objects data..')
+ time.sleep(0.05)
+ parse_objects()
+ elif args.type == 'events':
+ LOGGER.info(f'Generating event data')
+ time.sleep(0.05)
+ parse_events()
+ elif args.type == 'returnvalues':
+ LOGGER.info('Generating returnvalue data')
+ time.sleep(0.05)
+ parse_returnvalues()
+ pass
+
+
+if __name__ == "__main__":
+ main()
diff --git a/generators/objects/objects.py b/generators/objects/objects.py
index d37b80d7..194ee9da 100644
--- a/generators/objects/objects.py
+++ b/generators/objects/objects.py
@@ -1,22 +1,18 @@
-#! /usr/bin/env python3
-"""
-@file objects.py
-@brief Part of the Mission Information Base Exporter for the SOURCE project by KSat.
-@details
+"""Part of the Mission Information Base Exporter for the SOURCE project by KSat.
Object exporter.
-To use MySQLdb, run pip install mysqlclient or install in IDE.
-On Windows, Build Tools installation might be necessary
-@data 21.11.2019
"""
import datetime
-from fsfwgen.objects.objects import sql_object_exporter, ObjectDefinitionParser, write_translation_file, \
+from fsfwgen.core import get_console_logger
+from fsfwgen.objects.objects import sql_object_exporter, ObjectDefinitionParser, \
+ write_translation_file, \
export_object_file, write_translation_header_file
from fsfwgen.utility.printer import PrettyPrinter
from fsfwgen.utility.file_management import copy_file, move_file
-from definitions import BspType, DATABASE_NAME
+from definitions import BspType, DATABASE_NAME, OBSW_ROOT_DIR, ROOT_DIR
+LOGGER = get_console_logger()
DATE_TODAY = datetime.datetime.now()
DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S")
@@ -31,23 +27,23 @@ GENERATE_HEADER = True
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
- FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
+ FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
else:
- FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
+ FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig"
EXPORT_TO_SQL = True
CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/objects/"
-CSV_MOVE_DESTINATION = "../"
-CPP_FILENAME = "translateObjects.cpp"
-CPP_H_FILENAME = "translateObjects.h"
+CSV_MOVE_DESTINATION = f"{ROOT_DIR}"
+CPP_FILENAME = f'{__package__}/translateObjects.cpp'
+CPP_H_FILENAME = f'{__package__}/translateObjects.h'
CSV_OBJECT_FILENAME = f"{BSP_SELECT.value}_objects.csv"
FILE_SEPARATOR = ";"
OBJECTS_PATH = f"{FSFW_CONFIG_ROOT}/objects/systemObjectList.h"
-FRAMEWORK_OBJECT_PATH = "../../fsfw/objectmanager/frameworkObjects.h"
-COMMON_OBJECTS_PATH = "../../common/config/commonObjects.h"
+FRAMEWORK_OBJECT_PATH = f'{OBSW_ROOT_DIR}/fsfw/src/fsfw/objectmanager/frameworkObjects.h'
+COMMON_OBJECTS_PATH = f'{OBSW_ROOT_DIR}/common/config/commonObjects.h'
OBJECTS_DEFINITIONS = [OBJECTS_PATH, FRAMEWORK_OBJECT_PATH, COMMON_OBJECTS_PATH]
SQL_DELETE_OBJECTS_CMD = """
@@ -68,33 +64,33 @@ VALUES(?,?)
"""
-def main():
- print("Parsing objects: ")
- list_items = parse_objects()
- handle_file_export(list_items)
- if EXPORT_TO_SQL:
- print("ObjectParser: Exporting to SQL")
- sql_object_exporter(
- object_table=list_items, delete_cmd=SQL_DELETE_OBJECTS_CMD, insert_cmd=SQL_INSERT_INTO_OBJECTS_CMD,
- create_cmd=SQL_CREATE_OBJECTS_CMD, db_filename=f"../{DATABASE_NAME}"
- )
-
-
-def parse_objects():
+def parse_objects(print_object_list: bool = True):
# fetch objects
object_parser = ObjectDefinitionParser(OBJECTS_DEFINITIONS)
subsystem_definitions = object_parser.parse_files()
# id_subsystem_definitions.update(framework_subsystem_definitions)
list_items = sorted(subsystem_definitions.items())
- PrettyPrinter.pprint(list_items)
- print("ObjectParser: Number of objects: ", len(list_items))
- return list_items
+ LOGGER.info(f'ObjectParser: Number of objects: {len(list_items)}')
+
+ if print_object_list:
+ PrettyPrinter.pprint(list_items)
+
+ handle_file_export(list_items)
+ if EXPORT_TO_SQL:
+ LOGGER.info('ObjectParser: Exporting to SQL')
+ sql_object_exporter(
+ object_table=list_items, delete_cmd=SQL_DELETE_OBJECTS_CMD,
+ insert_cmd=SQL_INSERT_INTO_OBJECTS_CMD,
+ create_cmd=SQL_CREATE_OBJECTS_CMD, db_filename=f"{ROOT_DIR}/{DATABASE_NAME}"
+ )
def handle_file_export(list_items):
if GENERATE_CPP:
- print("ObjectParser: Generating translation C++ file.")
- write_translation_file(filename=CPP_FILENAME, list_of_entries=list_items, date_string_full=DATE_STRING_FULL)
+ LOGGER.info('ObjectParser: Generating translation C++ file')
+ write_translation_file(
+ filename=CPP_FILENAME, list_of_entries=list_items, date_string_full=DATE_STRING_FULL
+ )
if COPY_CPP:
print("ObjectParser: Copying object file to " + CPP_COPY_DESTINATION)
copy_file(CPP_FILENAME, CPP_COPY_DESTINATION)
@@ -103,10 +99,6 @@ def handle_file_export(list_items):
copy_file(filename=CPP_H_FILENAME, destination=CPP_COPY_DESTINATION)
if GENERATE_CSV:
print("ObjectParser: Generating text export.")
- export_object_file(filename=CSV_OBJECT_FILENAME, object_list=list_items, file_separator=FILE_SEPARATOR)
- if MOVE_CSV:
- move_file(file_name=CSV_OBJECT_FILENAME, destination=CSV_MOVE_DESTINATION)
-
-
-if __name__ == "__main__":
- main()
+ export_object_file(
+ filename=CSV_OBJECT_FILENAME, object_list=list_items, file_separator=FILE_SEPARATOR
+ )
diff --git a/generators/objects/translateObjects.cpp b/generators/objects/translateObjects.cpp
index cf9db4ca..7be16027 100644
--- a/generators/objects/translateObjects.cpp
+++ b/generators/objects/translateObjects.cpp
@@ -1,8 +1,8 @@
/**
* @brief Auto-generated object translation file.
* @details
- * Contains 102 translations.
- * Generated on: 2021-07-10 16:22:55
+ * Contains 103 translations.
+ * Generated on: 2021-08-02 13:00:48
*/
#include "translateObjects.h"
@@ -76,8 +76,9 @@ const char *I2C_COM_IF_STRING = "I2C_COM_IF";
const char *CSP_COM_IF_STRING = "CSP_COM_IF";
const char *CCSDS_PACKET_DISTRIBUTOR_STRING = "CCSDS_PACKET_DISTRIBUTOR";
const char *PUS_PACKET_DISTRIBUTOR_STRING = "PUS_PACKET_DISTRIBUTOR";
-const char *UDP_BRIDGE_STRING = "UDP_BRIDGE";
-const char *UDP_POLLING_TASK_STRING = "UDP_POLLING_TASK";
+const char *TMTC_BRIDGE_STRING = "TMTC_BRIDGE";
+const char *TMTC_POLLING_TASK_STRING = "TMTC_POLLING_TASK";
+const char *FILE_SYSTEM_HANDLER_STRING = "FILE_SYSTEM_HANDLER";
const char *PUS_SERVICE_6_STRING = "PUS_SERVICE_6";
const char *FSFW_OBJECTS_START_STRING = "FSFW_OBJECTS_START";
const char *PUS_SERVICE_1_VERIFICATION_STRING = "PUS_SERVICE_1_VERIFICATION";
@@ -252,9 +253,11 @@ const char* translateObject(object_id_t object) {
case 0x50000200:
return PUS_PACKET_DISTRIBUTOR_STRING;
case 0x50000300:
- return UDP_BRIDGE_STRING;
+ return TMTC_BRIDGE_STRING;
case 0x50000400:
- return UDP_POLLING_TASK_STRING;
+ return TMTC_POLLING_TASK_STRING;
+ case 0x50000500:
+ return FILE_SYSTEM_HANDLER_STRING;
case 0x51000500:
return PUS_SERVICE_6_STRING;
case 0x53000000:
diff --git a/generators/returnvalues/returnvalues_parser.py b/generators/returnvalues/returnvalues_parser.py
index 772e0bf1..eadb035f 100644
--- a/generators/returnvalues/returnvalues_parser.py
+++ b/generators/returnvalues/returnvalues_parser.py
@@ -9,13 +9,15 @@ Returnvalue exporter.
To use MySQLdb, run pip install mysqlclient or install in IDE. On Windows, Build Tools installation might be necessary.
:data: 21.11.2019
"""
+from fsfwgen.core import get_console_logger
from fsfwgen.parserbase.file_list_parser import FileListParser
from fsfwgen.returnvalues.returnvalues_parser import InterfaceParser, ReturnValueParser
from fsfwgen.utility.sql_writer import SqlWriter
-from fsfwgen.utility.file_management import move_file
+from fsfwgen.utility.printer import PrettyPrinter
-from definitions import BspType, DATABASE_NAME
+from definitions import BspType, DATABASE_NAME, ROOT_DIR, OBSW_ROOT_DIR
+LOGGER = get_console_logger()
EXPORT_TO_FILE = True
MOVE_CSV_FILE = True
EXPORT_TO_SQL = True
@@ -27,28 +29,28 @@ MAX_STRING_LENGTH = 32
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
-CSV_RETVAL_FILENAME = f"{BSP_SELECT.value}_returnvalues.csv"
-CSV_MOVE_DESTINATION = "../"
+CSV_RETVAL_FILENAME = f'{BSP_SELECT.value}_returnvalues.csv'
+CSV_MOVE_DESTINATION = f'{ROOT_DIR}'
ADD_LINUX_FOLDER = False
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
- FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
+ FSFW_CONFIG_ROOT = f'{OBSW_ROOT_DIR}/linux/fsfwconfig'
ADD_LINUX_FOLDER = True
else:
- FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
-BSP_PATH = f"../../{BSP_DIR_NAME}"
+ FSFW_CONFIG_ROOT = f'{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig'
+BSP_PATH = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}"
INTERFACE_DEFINITION_FILES = [
- "../../fsfw/returnvalues/FwClassIds.h",
- "../../common/config/commonClassIds.h",
- f"{FSFW_CONFIG_ROOT}/returnvalues/classIds.h"
+ f'{OBSW_ROOT_DIR}/fsfw/src/fsfw/returnvalues/FwClassIds.h',
+ f'{OBSW_ROOT_DIR}/common/config/commonClassIds.h',
+ f'{FSFW_CONFIG_ROOT}/returnvalues/classIds.h'
]
-RETURNVALUE_DESTINATIONS = [
- "../../mission/", "../../fsfw/", f"{BSP_PATH}"
+RETURNVALUE_SOURCES = [
+ f'{OBSW_ROOT_DIR}/mission/', f'{OBSW_ROOT_DIR}/fsfw/', f'{BSP_PATH}'
]
if ADD_LINUX_FOLDER:
- RETURNVALUE_DESTINATIONS.append("../../linux")
+ RETURNVALUE_SOURCES.append(f'{OBSW_ROOT_DIR}/linux')
SQL_DELETE_RETURNVALUES_CMD = """
DROP TABLE IF EXISTS Returnvalues
@@ -71,42 +73,41 @@ VALUES(?,?,?,?,?)
"""
-def main():
- returnvalue_table = parse_returnvalues()
- print("")
+def parse_returnvalues():
+ returnvalue_table = generate_returnvalue_table()
if EXPORT_TO_FILE:
ReturnValueParser.export_to_file(CSV_RETVAL_FILENAME, returnvalue_table, FILE_SEPARATOR)
- if MOVE_CSV_FILE:
- move_file(file_name=CSV_RETVAL_FILENAME, destination=CSV_MOVE_DESTINATION)
+ # if MOVE_CSV_FILE:
+ # move_file(file_name=CSV_RETVAL_FILENAME, destination=CSV_MOVE_DESTINATION)
if EXPORT_TO_SQL:
- print("ReturnvalueParser: Exporting to SQL")
- sql_retval_exporter(returnvalue_table=returnvalue_table, db_file_dest=f"../{DATABASE_NAME}")
+ LOGGER.info('ReturnvalueParser: Exporting to SQL')
+ sql_retval_exporter(returnvalue_table, db_filename=f"{ROOT_DIR}/{DATABASE_NAME}")
-def parse_returnvalues():
+def generate_returnvalue_table():
""" Core function to parse for the return values """
- interface_parser = InterfaceParser(file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES)
+ interface_parser = InterfaceParser(
+ file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES
+ )
interfaces = interface_parser.parse_files()
- header_parser = FileListParser(RETURNVALUE_DESTINATIONS)
+ header_parser = FileListParser(RETURNVALUE_SOURCES)
header_list = header_parser.parse_header_files(True, "Parsing header file list: ")
- print("")
returnvalue_parser = ReturnValueParser(interfaces, header_list, PRINT_TABLES)
returnvalue_parser.set_moving_window_mode(moving_window_size=7)
returnvalue_table = returnvalue_parser.parse_files(True)
- print(f"ReturnvalueParser: Found {len(returnvalue_table)} returnvalues.")
+ LOGGER.info(f"ReturnvalueParser: Found {len(returnvalue_table)} returnvalues")
return returnvalue_table
-def sql_retval_exporter(returnvalue_table, db_file_dest: str):
- sql_writer = SqlWriter(db_filename=db_file_dest)
+def sql_retval_exporter(returnvalue_table, db_filename: str):
+ sql_writer = SqlWriter(db_filename=db_filename)
sql_writer.open(SQL_CREATE_RETURNVALUES_CMD)
for entry in returnvalue_table.items():
sql_writer.write_entries(
- SQL_INSERT_RETURNVALUES_CMD,
- (entry[0], entry[1][2], entry[1][4], entry[1][3], entry[1][1]))
+ SQL_INSERT_RETURNVALUES_CMD, (entry[0],
+ entry[1][2],
+ entry[1][4],
+ entry[1][3],
+ entry[1][1]))
sql_writer.commit()
sql_writer.close()
-
-
-if __name__ == "__main__":
- main()
diff --git a/linux/devices/HeaterHandler.h b/linux/devices/HeaterHandler.h
index 5734a2b6..ebb267f6 100644
--- a/linux/devices/HeaterHandler.h
+++ b/linux/devices/HeaterHandler.h
@@ -24,6 +24,13 @@ class HeaterHandler: public ExecutableObjectIF,
public SystemObject,
public HasActionsIF {
public:
+ static const uint8_t INTERFACE_ID = CLASS_ID::HEATER_HANDLER;
+
+ static const ReturnValue_t COMMAND_NOT_SUPPORTED = MAKE_RETURN_CODE(0xA1);
+ static const ReturnValue_t INIT_FAILED = MAKE_RETURN_CODE(0xA2);
+ static const ReturnValue_t INVALID_SWITCH_NR = MAKE_RETURN_CODE(0xA3);
+ static const ReturnValue_t MAIN_SWITCH_SET_TIMEOUT = MAKE_RETURN_CODE(0xA4);
+ static const ReturnValue_t COMMAND_ALREADY_WAITING = MAKE_RETURN_CODE(0xA5);
/** Device command IDs */
static const DeviceCommandId_t SWITCH_HEATER = 0x0;
@@ -52,14 +59,6 @@ public:
private:
- static const uint8_t INTERFACE_ID = CLASS_ID::HEATER_HANDLER;
-
- static const ReturnValue_t COMMAND_NOT_SUPPORTED = MAKE_RETURN_CODE(0xA1);
- static const ReturnValue_t INIT_FAILED = MAKE_RETURN_CODE(0xA2);
- static const ReturnValue_t INVALID_SWITCH_NR = MAKE_RETURN_CODE(0xA3);
- static const ReturnValue_t MAIN_SWITCH_SET_TIMEOUT = MAKE_RETURN_CODE(0xA4);
- static const ReturnValue_t COMMAND_ALREADY_WAITING = MAKE_RETURN_CODE(0xA5);
-
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::HEATER_HANDLER;
static const Event GPIO_PULL_HIGH_FAILED = MAKE_EVENT(0, severity::LOW);
static const Event GPIO_PULL_LOW_FAILED = MAKE_EVENT(1, severity::LOW);
diff --git a/linux/fsfwconfig/events/translateEvents.cpp b/linux/fsfwconfig/events/translateEvents.cpp
index 20521618..0df84ad2 100644
--- a/linux/fsfwconfig/events/translateEvents.cpp
+++ b/linux/fsfwconfig/events/translateEvents.cpp
@@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 96 translations.
* @details
- * Generated on: 2021-07-12 15:20:38
+ * Generated on: 2021-08-02 11:41:47
*/
#include "translateEvents.h"
diff --git a/linux/fsfwconfig/events/translateEvents.h b/linux/fsfwconfig/events/translateEvents.h
index 9034dcf2..bdabb21b 100644
--- a/linux/fsfwconfig/events/translateEvents.h
+++ b/linux/fsfwconfig/events/translateEvents.h
@@ -1,7 +1,7 @@
#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
-#include
+#include "fsfw/events/Event.h"
const char * translateEvents(Event event);
diff --git a/linux/fsfwconfig/objects/translateObjects.cpp b/linux/fsfwconfig/objects/translateObjects.cpp
index cf9db4ca..7be16027 100644
--- a/linux/fsfwconfig/objects/translateObjects.cpp
+++ b/linux/fsfwconfig/objects/translateObjects.cpp
@@ -1,8 +1,8 @@
/**
* @brief Auto-generated object translation file.
* @details
- * Contains 102 translations.
- * Generated on: 2021-07-10 16:22:55
+ * Contains 103 translations.
+ * Generated on: 2021-08-02 13:00:48
*/
#include "translateObjects.h"
@@ -76,8 +76,9 @@ const char *I2C_COM_IF_STRING = "I2C_COM_IF";
const char *CSP_COM_IF_STRING = "CSP_COM_IF";
const char *CCSDS_PACKET_DISTRIBUTOR_STRING = "CCSDS_PACKET_DISTRIBUTOR";
const char *PUS_PACKET_DISTRIBUTOR_STRING = "PUS_PACKET_DISTRIBUTOR";
-const char *UDP_BRIDGE_STRING = "UDP_BRIDGE";
-const char *UDP_POLLING_TASK_STRING = "UDP_POLLING_TASK";
+const char *TMTC_BRIDGE_STRING = "TMTC_BRIDGE";
+const char *TMTC_POLLING_TASK_STRING = "TMTC_POLLING_TASK";
+const char *FILE_SYSTEM_HANDLER_STRING = "FILE_SYSTEM_HANDLER";
const char *PUS_SERVICE_6_STRING = "PUS_SERVICE_6";
const char *FSFW_OBJECTS_START_STRING = "FSFW_OBJECTS_START";
const char *PUS_SERVICE_1_VERIFICATION_STRING = "PUS_SERVICE_1_VERIFICATION";
@@ -252,9 +253,11 @@ const char* translateObject(object_id_t object) {
case 0x50000200:
return PUS_PACKET_DISTRIBUTOR_STRING;
case 0x50000300:
- return UDP_BRIDGE_STRING;
+ return TMTC_BRIDGE_STRING;
case 0x50000400:
- return UDP_POLLING_TASK_STRING;
+ return TMTC_POLLING_TASK_STRING;
+ case 0x50000500:
+ return FILE_SYSTEM_HANDLER_STRING;
case 0x51000500:
return PUS_SERVICE_6_STRING;
case 0x53000000:
diff --git a/linux/fsfwconfig/returnvalues/classIds.h b/linux/fsfwconfig/returnvalues/classIds.h
index b98801e2..e7c2ae74 100644
--- a/linux/fsfwconfig/returnvalues/classIds.h
+++ b/linux/fsfwconfig/returnvalues/classIds.h
@@ -12,6 +12,7 @@
namespace CLASS_ID {
enum {
CLASS_ID_START = COMMON_CLASS_ID_END,
+ GOM_SPACE_HANDLER, //GOMS
SA_DEPL_HANDLER, //SADPL
SD_CARD_MANAGER, //SDMA
SCRATCH_BUFFER, //SCBU
diff --git a/mission/devices/GomspaceDeviceHandler.cpp b/mission/devices/GomspaceDeviceHandler.cpp
index 44ede8b7..d83de9fe 100644
--- a/mission/devices/GomspaceDeviceHandler.cpp
+++ b/mission/devices/GomspaceDeviceHandler.cpp
@@ -5,7 +5,8 @@ GomspaceDeviceHandler::GomspaceDeviceHandler(object_id_t objectId, object_id_t c
CookieIF * comCookie, uint16_t maxConfigTableAddress, uint16_t maxHkTableAddress,
uint16_t hkTableReplySize, LocalPoolDataSetBase* hkTableDataset) :
DeviceHandlerBase(objectId, comIF, comCookie), maxConfigTableAddress(maxConfigTableAddress),
- maxHkTableAddress(maxHkTableAddress), hkTableReplySize(hkTableReplySize), hkTableDataset(hkTableDataset) {
+ maxHkTableAddress(maxHkTableAddress), hkTableReplySize(hkTableReplySize),
+ hkTableDataset(hkTableDataset) {
if (comCookie == NULL) {
sif::error << "GomspaceDeviceHandler::GomspaceDeviceHandler: Invalid com cookie"
<< std::endl;
@@ -28,157 +29,157 @@ void GomspaceDeviceHandler::doShutDown(){
}
ReturnValue_t GomspaceDeviceHandler::buildNormalDeviceCommand(
- DeviceCommandId_t * id) {
- return HasReturnvaluesIF::RETURN_OK;
+ DeviceCommandId_t * id) {
+ return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t GomspaceDeviceHandler::buildTransitionDeviceCommand(
- DeviceCommandId_t * id){
- return HasReturnvaluesIF::RETURN_OK;
+ DeviceCommandId_t * id){
+ return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t GomspaceDeviceHandler::buildCommandFromCommand(
- DeviceCommandId_t deviceCommand, const uint8_t * commandData,
- size_t commandDataLen) {
- ReturnValue_t result;
- switch(deviceCommand) {
- case(GOMSPACE::PING): {
- result = generatePingCommand(commandData, commandDataLen);
- if(result != HasReturnvaluesIF::RETURN_OK) {
- return result;
- }
- break;
- }
- case(GOMSPACE::REBOOT): {
- generateRebootCommand();
- break;
- }
- case(GOMSPACE::PARAM_SET):{
- result = generateSetParamCommand(commandData, commandDataLen);
- if(result != HasReturnvaluesIF::RETURN_OK){
- return result;
- }
- break;
- }
- case(GOMSPACE::PARAM_GET):{
- result = generateGetParamCommand(commandData, commandDataLen);
- if(result != HasReturnvaluesIF::RETURN_OK){
- return result;
- }
- break;
- }
- case(GOMSPACE::GNDWDT_RESET): {
- result = generateResetWatchdogCmd();
- if(result != HasReturnvaluesIF::RETURN_OK){
- return result;
- }
- break;
- }
- case(GOMSPACE::REQUEST_HK_TABLE): {
- result = generateRequestFullHkTableCmd(hkTableReplySize);
- if(result != HasReturnvaluesIF::RETURN_OK){
+ DeviceCommandId_t deviceCommand, const uint8_t * commandData,
+ size_t commandDataLen) {
+ ReturnValue_t result;
+ switch(deviceCommand) {
+ case(GOMSPACE::PING): {
+ result = generatePingCommand(commandData, commandDataLen);
+ if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
break;
- }
- default:
- return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED;
- }
- return HasReturnvaluesIF::RETURN_OK;
+ }
+ case(GOMSPACE::REBOOT): {
+ generateRebootCommand();
+ break;
+ }
+ case(GOMSPACE::PARAM_SET):{
+ result = generateSetParamCommand(commandData, commandDataLen);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ return result;
+ }
+ break;
+ }
+ case(GOMSPACE::PARAM_GET):{
+ result = generateGetParamCommand(commandData, commandDataLen);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ return result;
+ }
+ break;
+ }
+ case(GOMSPACE::GNDWDT_RESET): {
+ result = generateResetWatchdogCmd();
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ return result;
+ }
+ break;
+ }
+ case(GOMSPACE::REQUEST_HK_TABLE): {
+ result = generateRequestFullHkTableCmd(hkTableReplySize);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ return result;
+ }
+ break;
+ }
+ default:
+ return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED;
+ }
+ return HasReturnvaluesIF::RETURN_OK;
}
void GomspaceDeviceHandler::fillCommandAndReplyMap(){
- this->insertInCommandAndReplyMap(GOMSPACE::PING, 3);
- this->insertInCommandMap(GOMSPACE::REBOOT);
- this->insertInCommandAndReplyMap(GOMSPACE::PARAM_SET, 3);
- this->insertInCommandAndReplyMap(GOMSPACE::PARAM_GET, 3);
- this->insertInCommandAndReplyMap(GOMSPACE::REQUEST_HK_TABLE, 3);
- this->insertInCommandMap(GOMSPACE::GNDWDT_RESET);
+ this->insertInCommandAndReplyMap(GOMSPACE::PING, 3);
+ this->insertInCommandMap(GOMSPACE::REBOOT);
+ this->insertInCommandAndReplyMap(GOMSPACE::PARAM_SET, 3);
+ this->insertInCommandAndReplyMap(GOMSPACE::PARAM_GET, 3);
+ this->insertInCommandAndReplyMap(GOMSPACE::REQUEST_HK_TABLE, 3);
+ this->insertInCommandMap(GOMSPACE::GNDWDT_RESET);
}
ReturnValue_t GomspaceDeviceHandler::scanForReply(const uint8_t *start,
size_t remainingSize, DeviceCommandId_t *foundId, size_t *foundLen) {
- switch(rememberCommandId) {
- case(GOMSPACE::PING):
- *foundId = GOMSPACE::PING;
- *foundLen = PING_REPLY_SIZE;
- rememberCommandId = GOMSPACE::NONE;
- break;
- case(GOMSPACE::PARAM_GET): {
- *foundId = GOMSPACE::PARAM_GET;
- *foundLen = rememberRequestedSize + GOMSPACE::GS_HDR_LENGTH;
- rememberCommandId = GOMSPACE::NONE;
- break;
- }
- case(GOMSPACE::PARAM_SET): {
- *foundId = GOMSPACE::PARAM_SET;
- *foundLen = rememberRequestedSize;
- rememberCommandId = GOMSPACE::NONE;
- break;
- }
- case(GOMSPACE::REQUEST_HK_TABLE): {
- *foundId = GOMSPACE::REQUEST_HK_TABLE;
- *foundLen = rememberRequestedSize + GOMSPACE::GS_HDR_LENGTH;
- rememberCommandId = GOMSPACE::NONE;
- break;
- }
- default:
- return IGNORE_REPLY_DATA;
- }
+ switch(rememberCommandId) {
+ case(GOMSPACE::PING):
+ *foundId = GOMSPACE::PING;
+ *foundLen = PING_REPLY_SIZE;
+ rememberCommandId = GOMSPACE::NONE;
+ break;
+ case(GOMSPACE::PARAM_GET): {
+ *foundId = GOMSPACE::PARAM_GET;
+ *foundLen = rememberRequestedSize + GOMSPACE::GS_HDR_LENGTH;
+ rememberCommandId = GOMSPACE::NONE;
+ break;
+ }
+ case(GOMSPACE::PARAM_SET): {
+ *foundId = GOMSPACE::PARAM_SET;
+ *foundLen = rememberRequestedSize;
+ rememberCommandId = GOMSPACE::NONE;
+ break;
+ }
+ case(GOMSPACE::REQUEST_HK_TABLE): {
+ *foundId = GOMSPACE::REQUEST_HK_TABLE;
+ *foundLen = rememberRequestedSize + GOMSPACE::GS_HDR_LENGTH;
+ rememberCommandId = GOMSPACE::NONE;
+ break;
+ }
+ default:
+ return IGNORE_REPLY_DATA;
+ }
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t GomspaceDeviceHandler::interpretDeviceReply(DeviceCommandId_t id,
const uint8_t *packet) {
- switch(id) {
- case(GOMSPACE::PING): {
- SerializeElement replyTime = *packet;
- handleDeviceTM(&replyTime, id, true);
- break;
- }
- case(GOMSPACE::PARAM_GET): {
- // -2 to subtract address size from gomspace parameter reply packet
- uint16_t payloadLength = (*(packet + 2) << 8 | *(packet + 3)) - 2;
- if(payloadLength > sizeof(uint32_t)){
- sif::error << "GomspaceDeviceHandler: PARAM_GET: Invalid payload "
- << "size in reply" << std::endl;
- return INVALID_PAYLOAD_SIZE;
- }
- uint8_t tempPayloadBuffer[payloadLength];
- /* Extract information from received data */
- CspGetParamReply cspGetParamReply(tempPayloadBuffer, payloadLength);
- size_t size = GOMSPACE::GS_HDR_LENGTH + payloadLength;
- ReturnValue_t result = cspGetParamReply.deSerialize(&packet, &size,
- SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK){
- sif::error << "GomspaceDeviceHandler: Failed to deserialize get parameter"
- << "reply" << std::endl;
- return result;
- }
- uint8_t action = cspGetParamReply.getAction();
- uint8_t tableId = cspGetParamReply.getTableId();
- uint16_t address = cspGetParamReply.getAddress();
- /* Pack relevant information into a tm packet */
- ParamReply paramReply(action, tableId, address, payloadLength,
- tempPayloadBuffer);
- handleDeviceTM(¶mReply, id, true);
- break;
- }
- case(GOMSPACE::PARAM_SET): {
- /* When setting a parameter, the p60dock sends back the state of the
- * operation */
- if(*packet != PARAM_SET_OK){
- return HasReturnvaluesIF::RETURN_FAILED;
- }
- break;
- }
- case(GOMSPACE::REQUEST_HK_TABLE): {
- letChildHandleHkReply(id, packet);
- break;
- }
- default:
- break;
- }
+ switch(id) {
+ case(GOMSPACE::PING): {
+ SerializeElement replyTime = *packet;
+ handleDeviceTM(&replyTime, id, true);
+ break;
+ }
+ case(GOMSPACE::PARAM_GET): {
+ // -2 to subtract address size from gomspace parameter reply packet
+ uint16_t payloadLength = (*(packet + 2) << 8 | *(packet + 3)) - 2;
+ if(payloadLength > sizeof(uint32_t)){
+ sif::error << "GomspaceDeviceHandler: PARAM_GET: Invalid payload "
+ << "size in reply" << std::endl;
+ return INVALID_PAYLOAD_SIZE;
+ }
+ uint8_t tempPayloadBuffer[payloadLength];
+ /* Extract information from received data */
+ CspGetParamReply cspGetParamReply(tempPayloadBuffer, payloadLength);
+ size_t size = GOMSPACE::GS_HDR_LENGTH + payloadLength;
+ ReturnValue_t result = cspGetParamReply.deSerialize(&packet, &size,
+ SerializeIF::Endianness::BIG);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ sif::error << "GomspaceDeviceHandler: Failed to deserialize get parameter"
+ << "reply" << std::endl;
+ return result;
+ }
+ uint8_t action = cspGetParamReply.getAction();
+ uint8_t tableId = cspGetParamReply.getTableId();
+ uint16_t address = cspGetParamReply.getAddress();
+ /* Pack relevant information into a tm packet */
+ ParamReply paramReply(action, tableId, address, payloadLength,
+ tempPayloadBuffer);
+ handleDeviceTM(¶mReply, id, true);
+ break;
+ }
+ case(GOMSPACE::PARAM_SET): {
+ /* When setting a parameter, the p60dock sends back the state of the
+ * operation */
+ if(*packet != PARAM_SET_OK){
+ return HasReturnvaluesIF::RETURN_FAILED;
+ }
+ break;
+ }
+ case(GOMSPACE::REQUEST_HK_TABLE): {
+ letChildHandleHkReply(id, packet);
+ break;
+ }
+ default:
+ break;
+ }
return HasReturnvaluesIF::RETURN_OK;
}
@@ -187,173 +188,173 @@ void GomspaceDeviceHandler::setNormalDatapoolEntriesInvalid(){
}
ReturnValue_t GomspaceDeviceHandler::generateSetParamCommand(
- const uint8_t * commandData, size_t commandDataLen) {
- SetParamMessageUnpacker setParamMessageUnpacker;
- ReturnValue_t result = setParamMessageUnpacker.deSerialize(&commandData,
- &commandDataLen, SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK){
- sif::error << "GomspaceDeviceHandler: Failed to deserialize set parameter "
- "message" << std::endl;
- return result;
- }
- /* Get and check address */
- uint16_t address = setParamMessageUnpacker.getAddress();
- if(address > maxConfigTableAddress){
- sif::error << "GomspaceDeviceHandler: Invalid address for set parameter "
- << "action" << std::endl;
- return INVALID_ADDRESS;
- }
- uint16_t checksum = GOMSPACE::IGNORE_CHECKSUM;
- uint16_t seq = 0;
- uint16_t total = 0;
- /* CSP reply only contains the transaction state */
- uint16_t querySize = 1;
- const uint8_t* parameterPtr = setParamMessageUnpacker.getParameter();
- uint8_t parameterSize = setParamMessageUnpacker.getParameterSize();
- uint16_t payloadlength = sizeof(address) + parameterSize;
+ const uint8_t * commandData, size_t commandDataLen) {
+ SetParamMessageUnpacker setParamMessageUnpacker;
+ ReturnValue_t result = setParamMessageUnpacker.deSerialize(&commandData,
+ &commandDataLen, SerializeIF::Endianness::BIG);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ sif::error << "GomspaceDeviceHandler: Failed to deserialize set parameter "
+ "message" << std::endl;
+ return result;
+ }
+ /* Get and check address */
+ uint16_t address = setParamMessageUnpacker.getAddress();
+ if(address > maxConfigTableAddress){
+ sif::error << "GomspaceDeviceHandler: Invalid address for set parameter "
+ << "action" << std::endl;
+ return INVALID_ADDRESS;
+ }
+ uint16_t checksum = GOMSPACE::IGNORE_CHECKSUM;
+ uint16_t seq = 0;
+ uint16_t total = 0;
+ /* CSP reply only contains the transaction state */
+ uint16_t querySize = 1;
+ const uint8_t* parameterPtr = setParamMessageUnpacker.getParameter();
+ uint8_t parameterSize = setParamMessageUnpacker.getParameterSize();
+ uint16_t payloadlength = sizeof(address) + parameterSize;
- /* Generate command for CspComIF */
- CspSetParamCommand setParamCmd(querySize, payloadlength, checksum, seq,
- total, address, parameterPtr, parameterSize);
- size_t cspPacketLen = 0;
- uint8_t* buffer = cspPacket;
- result = setParamCmd.serialize(&buffer, &cspPacketLen, sizeof(cspPacket),
- SerializeIF::Endianness::BIG);
+ /* Generate command for CspComIF */
+ CspSetParamCommand setParamCmd(querySize, payloadlength, checksum, seq,
+ total, address, parameterPtr, parameterSize);
+ size_t cspPacketLen = 0;
+ uint8_t* buffer = cspPacket;
+ result = setParamCmd.serialize(&buffer, &cspPacketLen, sizeof(cspPacket),
+ SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK){
- sif::error << "GomspaceDeviceHandler: Failed to serialize command for "
- << "CspComIF" << std::endl;
- return result;
- }
- if(cspPacketLen > MAX_PACKET_LEN){
- sif::error << "GomspaceDeviceHandler: Invalid length of set parameter "
- "command" << std::endl;
- return PACKET_TOO_LONG;
- }
- rawPacket = cspPacket;
- rawPacketLen = cspPacketLen;
- rememberRequestedSize = querySize;
- rememberCommandId = GOMSPACE::PARAM_SET;
- return HasReturnvaluesIF::RETURN_OK;
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ sif::error << "GomspaceDeviceHandler: Failed to serialize command for "
+ << "CspComIF" << std::endl;
+ return result;
+ }
+ if(cspPacketLen > MAX_PACKET_LEN){
+ sif::error << "GomspaceDeviceHandler: Invalid length of set parameter "
+ "command" << std::endl;
+ return PACKET_TOO_LONG;
+ }
+ rawPacket = cspPacket;
+ rawPacketLen = cspPacketLen;
+ rememberRequestedSize = querySize;
+ rememberCommandId = GOMSPACE::PARAM_SET;
+ return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t GomspaceDeviceHandler::generateGetParamCommand(
- const uint8_t * commandData, size_t commandDataLen){
- ReturnValue_t result;
- /* Unpack the received action message */
- GetParamMessageUnpacker getParamMessage;
- result = getParamMessage.deSerialize(&commandData, &commandDataLen,
- SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK) {
- sif::error << "Failed to deserialize message to extract information "
- "from get parameter message" << std::endl;
- return result;
- }
- /* Get an check table id to read from */
- uint8_t tableId = getParamMessage.getTableId();
- if(tableId != CONFIG_TABLE_ID && tableId != HK_TABLE_ID){
- sif::error << "GomspaceDeviceHandler: Invalid table id in get parameter"
- " message" << std::endl;
- return INVALID_TABLE_ID;
- }
- /* Get and check address */
- uint16_t address = getParamMessage.getAddress();
- if(address > maxHkTableAddress && tableId == HK_TABLE_ID){
- sif::error << "GomspaceDeviceHandler: Invalid address to get parameter from "
- << "housekeeping table" << std::endl;
- return INVALID_ADDRESS;
- }
- if(address > maxConfigTableAddress && tableId == CONFIG_TABLE_ID){
- sif::error << "GomspaceDeviceHandler: Invalid address to get parameter from "
- << "configuration table" << std::endl;
- return INVALID_ADDRESS;
- }
- uint16_t length = sizeof(address);
- uint16_t checksum = GOMSPACE::IGNORE_CHECKSUM;
- uint16_t seq = 0;
- uint16_t total = 0;
- uint8_t parameterSize = getParamMessage.getParameterSize();
- if(parameterSize > sizeof(uint32_t)) {
- sif::error << "GomspaceDeviceHandler: GET_PARAM: Invalid parameter "
- << "size" << std::endl;
- return INVALID_PARAM_SIZE;
- }
- uint16_t querySize = parameterSize + GOMSPACE::GS_HDR_LENGTH;
+ const uint8_t * commandData, size_t commandDataLen){
+ ReturnValue_t result;
+ /* Unpack the received action message */
+ GetParamMessageUnpacker getParamMessage;
+ result = getParamMessage.deSerialize(&commandData, &commandDataLen,
+ SerializeIF::Endianness::BIG);
+ if(result != HasReturnvaluesIF::RETURN_OK) {
+ sif::error << "Failed to deserialize message to extract information "
+ "from get parameter message" << std::endl;
+ return result;
+ }
+ /* Get an check table id to read from */
+ uint8_t tableId = getParamMessage.getTableId();
+ if(tableId != CONFIG_TABLE_ID && tableId != HK_TABLE_ID){
+ sif::error << "GomspaceDeviceHandler: Invalid table id in get parameter"
+ " message" << std::endl;
+ return INVALID_TABLE_ID;
+ }
+ /* Get and check address */
+ uint16_t address = getParamMessage.getAddress();
+ if(address > maxHkTableAddress && tableId == HK_TABLE_ID){
+ sif::error << "GomspaceDeviceHandler: Invalid address to get parameter from "
+ << "housekeeping table" << std::endl;
+ return INVALID_ADDRESS;
+ }
+ if(address > maxConfigTableAddress && tableId == CONFIG_TABLE_ID){
+ sif::error << "GomspaceDeviceHandler: Invalid address to get parameter from "
+ << "configuration table" << std::endl;
+ return INVALID_ADDRESS;
+ }
+ uint16_t length = sizeof(address);
+ uint16_t checksum = GOMSPACE::IGNORE_CHECKSUM;
+ uint16_t seq = 0;
+ uint16_t total = 0;
+ uint8_t parameterSize = getParamMessage.getParameterSize();
+ if(parameterSize > sizeof(uint32_t)) {
+ sif::error << "GomspaceDeviceHandler: GET_PARAM: Invalid parameter "
+ << "size" << std::endl;
+ return INVALID_PARAM_SIZE;
+ }
+ uint16_t querySize = parameterSize + GOMSPACE::GS_HDR_LENGTH;
- /* Generate the CSP command to send to the P60 Dock */
- CspGetParamCommand getParamCmd(querySize, tableId, length,
- checksum, seq, total, address);
- size_t cspPacketLen = 0;
- uint8_t* buffer = cspPacket;
- result = getParamCmd.serialize(&buffer, &cspPacketLen, sizeof(cspPacket),
- SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK){
- sif::error << "GomspaceDeviceHandler: Failed to serialize command to "
- << "get parameter" << std::endl;
- }
- if(cspPacketLen > MAX_PACKET_LEN){
- sif::error << "GomspaceDeviceHandler: Received invalid get parameter "
- "command" << std::endl;
- return PACKET_TOO_LONG;
- }
- rawPacket = cspPacket;
- rawPacketLen = cspPacketLen;
- rememberRequestedSize = querySize;
- rememberCommandId = GOMSPACE::PARAM_GET;
- return HasReturnvaluesIF::RETURN_OK;
+ /* Generate the CSP command to send to the P60 Dock */
+ CspGetParamCommand getParamCmd(querySize, tableId, length,
+ checksum, seq, total, address);
+ size_t cspPacketLen = 0;
+ uint8_t* buffer = cspPacket;
+ result = getParamCmd.serialize(&buffer, &cspPacketLen, sizeof(cspPacket),
+ SerializeIF::Endianness::BIG);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ sif::error << "GomspaceDeviceHandler: Failed to serialize command to "
+ << "get parameter" << std::endl;
+ }
+ if(cspPacketLen > MAX_PACKET_LEN){
+ sif::error << "GomspaceDeviceHandler: Received invalid get parameter "
+ "command" << std::endl;
+ return PACKET_TOO_LONG;
+ }
+ rawPacket = cspPacket;
+ rawPacketLen = cspPacketLen;
+ rememberRequestedSize = querySize;
+ rememberCommandId = GOMSPACE::PARAM_GET;
+ return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t GomspaceDeviceHandler::generatePingCommand(
- const uint8_t * commandData, size_t commandDataLen) {
- CspPingCommand cspPingCommand(commandData, commandDataLen);
- size_t cspPacketLen = 0;
- uint8_t* buffer = cspPacket;
- ReturnValue_t result = cspPingCommand.serialize(&buffer, &cspPacketLen,
- sizeof(cspPacket),
- SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK){
- sif::error << "GomspaceDeviceHandler: Failed to serialize ping command"
- << std::endl;
- return result;
- }
- if(cspPacketLen > MAX_PACKET_LEN){
- sif::error << "GomspaceDeviceHandler: Received invalid ping message"
- << std::endl;
- return PACKET_TOO_LONG;
- }
- rawPacket = cspPacket;
- rawPacketLen = cspPacketLen;
- rememberCommandId = GOMSPACE::PING;
- return HasReturnvaluesIF::RETURN_OK;
+ const uint8_t * commandData, size_t commandDataLen) {
+ CspPingCommand cspPingCommand(commandData, commandDataLen);
+ size_t cspPacketLen = 0;
+ uint8_t* buffer = cspPacket;
+ ReturnValue_t result = cspPingCommand.serialize(&buffer, &cspPacketLen,
+ sizeof(cspPacket),
+ SerializeIF::Endianness::BIG);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ sif::error << "GomspaceDeviceHandler: Failed to serialize ping command"
+ << std::endl;
+ return result;
+ }
+ if(cspPacketLen > MAX_PACKET_LEN){
+ sif::error << "GomspaceDeviceHandler: Received invalid ping message"
+ << std::endl;
+ return PACKET_TOO_LONG;
+ }
+ rawPacket = cspPacket;
+ rawPacketLen = cspPacketLen;
+ rememberCommandId = GOMSPACE::PING;
+ return HasReturnvaluesIF::RETURN_OK;
}
void GomspaceDeviceHandler::generateRebootCommand(){
- uint8_t cspPort = GOMSPACE::REBOOT_PORT;
- uint16_t querySize = 0;
- *cspPacket = GOMSPACE::REBOOT_PORT;
- *(cspPacket + 1) = querySize;
- size_t cspPacketLen = sizeof(cspPort) + sizeof(cspPacketLen);
- rawPacket = cspPacket;
- rawPacketLen = cspPacketLen;
+ uint8_t cspPort = GOMSPACE::REBOOT_PORT;
+ uint16_t querySize = 0;
+ *cspPacket = GOMSPACE::REBOOT_PORT;
+ *(cspPacket + 1) = querySize;
+ size_t cspPacketLen = sizeof(cspPort) + sizeof(cspPacketLen);
+ rawPacket = cspPacket;
+ rawPacketLen = cspPacketLen;
}
ReturnValue_t GomspaceDeviceHandler::generateResetWatchdogCmd(){
- WatchdogResetCommand watchdogResetCommand;
- size_t cspPacketLen = 0;
- uint8_t* buffer = cspPacket;
- ReturnValue_t result = watchdogResetCommand.serialize(&buffer,
- &cspPacketLen, sizeof(cspPacket), SerializeIF::Endianness::BIG);
- if(result != HasReturnvaluesIF::RETURN_OK){
- sif::error << "GomspaceDeviceHandler: Failed to serialize watchdog reset "
- << "command" << std::endl;
- return result;
- }
- rawPacket = cspPacket;
- rawPacketLen = cspPacketLen;
- rememberRequestedSize = 0; // No bytes will be queried with the ground
- // watchdog command.
- rememberCommandId = GOMSPACE::GNDWDT_RESET;
- return HasReturnvaluesIF::RETURN_OK;
+ WatchdogResetCommand watchdogResetCommand;
+ size_t cspPacketLen = 0;
+ uint8_t* buffer = cspPacket;
+ ReturnValue_t result = watchdogResetCommand.serialize(&buffer,
+ &cspPacketLen, sizeof(cspPacket), SerializeIF::Endianness::BIG);
+ if(result != HasReturnvaluesIF::RETURN_OK){
+ sif::error << "GomspaceDeviceHandler: Failed to serialize watchdog reset "
+ << "command" << std::endl;
+ return result;
+ }
+ rawPacket = cspPacket;
+ rawPacketLen = cspPacketLen;
+ rememberRequestedSize = 0; // No bytes will be queried with the ground
+ // watchdog command.
+ rememberCommandId = GOMSPACE::GNDWDT_RESET;
+ return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t GomspaceDeviceHandler::generateRequestFullHkTableCmd(uint16_t hkTableReplySize) {
@@ -379,8 +380,8 @@ ReturnValue_t GomspaceDeviceHandler::generateRequestFullHkTableCmd(uint16_t hkTa
}
uint32_t GomspaceDeviceHandler::getTransitionDelayMs(Mode_t modeFrom,
- Mode_t modeTo) {
- return 0;
+ Mode_t modeTo) {
+ return 0;
}
LocalPoolDataSetBase* GomspaceDeviceHandler::getDataSetHandle(sid_t sid) {
diff --git a/mission/devices/GomspaceDeviceHandler.h b/mission/devices/GomspaceDeviceHandler.h
index 8130d8f7..b73f3bb7 100644
--- a/mission/devices/GomspaceDeviceHandler.h
+++ b/mission/devices/GomspaceDeviceHandler.h
@@ -1,8 +1,9 @@
#ifndef MISSION_DEVICES_GOMSPACEDEVICEHANDLER_H_
#define MISSION_DEVICES_GOMSPACEDEVICEHANDLER_H_
-#include
-#include
+#include "fsfw/devicehandlers/DeviceHandlerBase.h"
+#include "mission/devices/devicedefinitions/GomspaceDefinitions.h"
+#include "returnvalues/classIds.h"
/**
* @brief This is the device handler class for all gomspace devices.
@@ -18,117 +19,119 @@
class GomspaceDeviceHandler: public DeviceHandlerBase {
public:
- static const ReturnValue_t PACKET_TOO_LONG = MAKE_RETURN_CODE(0xE0);
- static const ReturnValue_t INVALID_TABLE_ID = MAKE_RETURN_CODE(0xE1);
- static const ReturnValue_t INVALID_ADDRESS = MAKE_RETURN_CODE(0xE2);
- static const ReturnValue_t INVALID_PARAM_SIZE = MAKE_RETURN_CODE(0xE3);
- static const ReturnValue_t INVALID_PAYLOAD_SIZE = MAKE_RETURN_CODE(0xE4);
- static const ReturnValue_t UNKNOWN_REPLY_ID = MAKE_RETURN_CODE(0xE5);
+ static constexpr uint8_t CLASS_ID = CLASS_ID::GOM_SPACE_HANDLER;
+ static const ReturnValue_t PACKET_TOO_LONG = HasReturnvaluesIF::makeReturnCode(CLASS_ID, 0);
+ static const ReturnValue_t INVALID_TABLE_ID = HasReturnvaluesIF::makeReturnCode(CLASS_ID, 1);
+ static const ReturnValue_t INVALID_ADDRESS = HasReturnvaluesIF::makeReturnCode(CLASS_ID, 2);
+ static const ReturnValue_t INVALID_PARAM_SIZE = HasReturnvaluesIF::makeReturnCode(CLASS_ID, 3);
+ static const ReturnValue_t INVALID_PAYLOAD_SIZE =
+ HasReturnvaluesIF::makeReturnCode(CLASS_ID, 4);
+ static const ReturnValue_t UNKNOWN_REPLY_ID = HasReturnvaluesIF::makeReturnCode(CLASS_ID, 5);
- /**
- * @brief Constructor
- *
- * @param maxConfigTableAddress The maximum memory address of the configu-
- * ration table of a gomspace device.
- * @param maxHkTableAddress The maximum memory address of a value in the
- * houskeeping (telemetry) table of a gomspace
- * device.
- */
- GomspaceDeviceHandler(object_id_t objectId, object_id_t comIF,
- CookieIF * comCookie, uint16_t maxConfigTableAddress, uint16_t maxHkTableAddress,
- uint16_t hkTableReplySize, LocalPoolDataSetBase* hkTableDataset);
- virtual ~GomspaceDeviceHandler();
+ /**
+ * @brief Constructor
+ *
+ * @param maxConfigTableAddress The maximum memory address of the configu-
+ * ration table of a gomspace device.
+ * @param maxHkTableAddress The maximum memory address of a value in the
+ * houskeeping (telemetry) table of a gomspace
+ * device.
+ */
+ GomspaceDeviceHandler(object_id_t objectId, object_id_t comIF,
+ CookieIF * comCookie, uint16_t maxConfigTableAddress, uint16_t maxHkTableAddress,
+ uint16_t hkTableReplySize, LocalPoolDataSetBase* hkTableDataset);
+ virtual ~GomspaceDeviceHandler();
- /**
- * @brief This function can be used to set a gomspace device to normal mode immediately after
- * object creation.
- */
- void setModeNormal();
+ /**
+ * @brief This function can be used to set a gomspace device to normal mode immediately after
+ * object creation.
+ */
+ void setModeNormal();
protected:
- static const uint8_t MAX_PACKET_LEN = 36;
- static const uint8_t PARAM_SET_OK = 1;
- static const uint8_t PING_REPLY_SIZE = 2;
- static const uint8_t CONFIG_TABLE_ID = 1;
- static const uint8_t HK_TABLE_ID = 4;
+ static const uint8_t MAX_PACKET_LEN = 36;
+ static const uint8_t PARAM_SET_OK = 1;
+ static const uint8_t PING_REPLY_SIZE = 2;
+ static const uint8_t CONFIG_TABLE_ID = 1;
+ static const uint8_t HK_TABLE_ID = 4;
- uint8_t rememberRequestedSize = 0;
- uint8_t rememberCommandId = GOMSPACE::NONE;
- uint8_t cspPacket[MAX_PACKET_LEN];
+ uint8_t rememberRequestedSize = 0;
+ uint8_t rememberCommandId = GOMSPACE::NONE;
+ uint8_t cspPacket[MAX_PACKET_LEN];
- uint16_t maxConfigTableAddress;
- uint16_t maxHkTableAddress;
+ uint16_t maxConfigTableAddress;
+ uint16_t maxHkTableAddress;
- /** The size of the reply following a full hk table request.*/
- uint16_t hkTableReplySize;
+ /** The size of the reply following a full hk table request.*/
+ uint16_t hkTableReplySize;
- LocalPoolDataSetBase* hkTableDataset = nullptr;
+ LocalPoolDataSetBase* hkTableDataset = nullptr;
- void doStartUp() override;
- void doShutDown() override;
- virtual ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t * id)
- override;
- ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t * id) override;
- void fillCommandAndReplyMap() override;
- ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand,
- const uint8_t * commandData,size_t commandDataLen) override;
- ReturnValue_t scanForReply(const uint8_t *start, size_t remainingSize,
- DeviceCommandId_t *foundId, size_t *foundLen) override;
- ReturnValue_t interpretDeviceReply(DeviceCommandId_t id,
- const uint8_t *packet) override;
- void setNormalDatapoolEntriesInvalid() override;
- uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
- /**
- * @brief The command to generate a request to receive the full housekeeping table is device
- * specific. Thus the child has to build this command.
- */
- virtual ReturnValue_t generateRequestFullHkTableCmd(uint16_t hkTableSize);
+ void doStartUp() override;
+ void doShutDown() override;
+ virtual ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t * id)
+ override;
+ ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t * id) override;
+ void fillCommandAndReplyMap() override;
+ ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand,
+ const uint8_t * commandData,size_t commandDataLen) override;
+ ReturnValue_t scanForReply(const uint8_t *start, size_t remainingSize,
+ DeviceCommandId_t *foundId, size_t *foundLen) override;
+ ReturnValue_t interpretDeviceReply(DeviceCommandId_t id,
+ const uint8_t *packet) override;
+ void setNormalDatapoolEntriesInvalid() override;
+ uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
+ /**
+ * @brief The command to generate a request to receive the full housekeeping table is device
+ * specific. Thus the child has to build this command.
+ */
+ virtual ReturnValue_t generateRequestFullHkTableCmd(uint16_t hkTableSize);
- /**
- * @brief Because housekeeping tables are device specific the handling of the reply is
- * given to the child class.
- * @param id The id of the command which initiates the full table request.
- * @param packet Pointer to the reply containing the hk table.
- */
- virtual void letChildHandleHkReply(DeviceCommandId_t id, const uint8_t *packet) = 0;
+ /**
+ * @brief Because housekeeping tables are device specific the handling of the reply is
+ * given to the child class.
+ * @param id The id of the command which initiates the full table request.
+ * @param packet Pointer to the reply containing the hk table.
+ */
+ virtual void letChildHandleHkReply(DeviceCommandId_t id, const uint8_t *packet) = 0;
- virtual LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override;
+ virtual LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override;
private:
- /**
- * @brief Function to generate the command to set a parameter. Command
- * will be sent to the ComIF over the rawPacket buffer.
- */
- ReturnValue_t generateSetParamCommand(const uint8_t * commandData,
- size_t commandDataLen);
+ /**
+ * @brief Function to generate the command to set a parameter. Command
+ * will be sent to the ComIF over the rawPacket buffer.
+ */
+ ReturnValue_t generateSetParamCommand(const uint8_t * commandData,
+ size_t commandDataLen);
- /**
- * @brief Function to generate the command to get a parameter from a
- * gomspace device. Command will be sent to the ComIF over the
- * rawPacket buffer.
- */
- ReturnValue_t generateGetParamCommand(const uint8_t * commandData,
- size_t commandDataLen);
+ /**
+ * @brief Function to generate the command to get a parameter from a
+ * gomspace device. Command will be sent to the ComIF over the
+ * rawPacket buffer.
+ */
+ ReturnValue_t generateGetParamCommand(const uint8_t * commandData,
+ size_t commandDataLen);
- /**
- * @brief Function to generate the ping command for the ComIF.
- */
- ReturnValue_t generatePingCommand(const uint8_t * commandData,
- size_t commandDataLen);
+ /**
+ * @brief Function to generate the ping command for the ComIF.
+ */
+ ReturnValue_t generatePingCommand(const uint8_t * commandData,
+ size_t commandDataLen);
- /**
- * @brief Function to generate the command to reboot a gomspace device
- * via the ComIF.
- */
- void generateRebootCommand();
+ /**
+ * @brief Function to generate the command to reboot a gomspace device
+ * via the ComIF.
+ */
+ void generateRebootCommand();
- /**
- * @brief Function to generate the command to force a ground watchdog
- * reset in a gomspace device.
- */
- ReturnValue_t generateResetWatchdogCmd();
+ /**
+ * @brief Function to generate the command to force a ground watchdog
+ * reset in a gomspace device.
+ */
+ ReturnValue_t generateResetWatchdogCmd();
};
diff --git a/tmtc b/tmtc
index 8b7331c2..477743f6 160000
--- a/tmtc
+++ b/tmtc
@@ -1 +1 @@
-Subproject commit 8b7331c210e44bf2a60e5834f5f253514dae29fe
+Subproject commit 477743f6264689327528beb5344c39247af6c49e