diff --git a/.idea/cmake.xml b/.idea/cmake.xml index ec2dac2..8ea6387 100644 --- a/.idea/cmake.xml +++ b/.idea/cmake.xml @@ -4,7 +4,7 @@ - + diff --git a/CMakeLists.txt b/CMakeLists.txt index cfca1b3..6f6a1af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,14 @@ -################################################################################ +# ############################################################################## # CMake support for the Flight Software Framework -# +# # Developed in an effort to replace Make with a modern build system. -# +# # Author: R. Mueller -################################################################################ +# ############################################################################## -################################################################################ +# ############################################################################## # Pre-Project preparation -################################################################################ +# ############################################################################## cmake_minimum_required(VERSION 3.13) # set(CMAKE_VERBOSE TRUE) @@ -18,8 +18,12 @@ project(fsfw-example-hosted C CXX) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +set(OBSW_MAX_SCHEDULED_TCS 200) + if(NOT FSFW_OSAL) - set(FSFW_OSAL host CACHE STRING "OS for the FSFW.") + set(FSFW_OSAL + host + CACHE STRING "OS for the FSFW.") endif() option(OBSW_ADD_FMT_TESTS "Add {fmt} library tests" OFF) @@ -29,9 +33,15 @@ if(OBSW_ENABLE_IPO) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() -################################################################################ +option(OBSW_ENABLE_IPO "Enable IPO/LTO optimization" ON) + +if(OBSW_ENABLE_IPO) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) +endif() + +# ############################################################################## # Pre-Sources preparation -################################################################################ +# ############################################################################## # Specify the C++ standard set(CMAKE_CXX_STANDARD 17) @@ -51,11 +61,8 @@ set(BSP_PATH "bsp_hosted") set(COMMON_CONFIG_PATH "${COMMON_PATH}/config") set(FSFW_CONFIG_PATH "${BSP_PATH}/fsfwconfig") set(FSFW_ADDITIONAL_INC_PATHS - "${COMMON_CONFIG_PATH}" - "${CMAKE_CURRENT_BINARY_DIR}" - CACHE STRING - "FSFW configuration paths" - ) + "${COMMON_CONFIG_PATH}" "${CMAKE_CURRENT_BINARY_DIR}" + CACHE STRING "FSFW configuration paths") configure_file(${COMMON_CONFIG_PATH}/commonConfig.h.in commonConfig.h) configure_file(${FSFW_CONFIG_PATH}/FSFWConfig.h.in FSFWConfig.h) @@ -64,13 +71,8 @@ configure_file(${FSFW_CONFIG_PATH}/OBSWConfig.h.in OBSWConfig.h) set(FSFW_ADD_MONITORING ON) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(WARNING_FLAGS - -Wall - -Wextra - -Wimplicit-fallthrough=1 - -Wno-unused-parameter - -Wno-psabi - ) + set(WARNING_FLAGS -Wall -Wextra -Wimplicit-fallthrough=1 + -Wno-unused-parameter -Wno-psabi) set(FSFW_WARNING_FLAGS ${WARNING_FLAGS}) elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") @@ -85,18 +87,18 @@ if(FSFW_OSAL MATCHES linux) else() if(WIN32) + elseif(UNIX) find_package(Threads REQUIRED) endif() endif() - -################################################################################ +# ############################################################################## # Executable and Sources -################################################################################ +# ############################################################################## # Add executable -add_executable(${TARGET_NAME}) +add_executable(${TARGET_NAME} example_common/config/common/definitions.h) # Add subdirectories if(LIB_OS_NAME) @@ -106,9 +108,9 @@ add_subdirectory(${BSP_PATH}) add_subdirectory(${FSFW_PATH}) add_subdirectory(${COMMON_PATH}) -################################################################################ +# ############################################################################## # Post-Sources preparation -################################################################################ +# ############################################################################## # Add libraries for all sources. target_link_libraries(${TARGET_NAME} PRIVATE @@ -117,40 +119,29 @@ target_link_libraries(${TARGET_NAME} PRIVATE ) # Add include paths for all sources. -target_include_directories(${TARGET_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ${FSFW_CONFIG_PATH} - ) - +target_include_directories( + ${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} ${FSFW_CONFIG_PATH}) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - target_link_options(${TARGET_NAME} PRIVATE - "-Wl,-Map=${TARGET_NAME}.map" - ) + target_link_options(${TARGET_NAME} PRIVATE "-Wl,-Map=${TARGET_NAME}.map") # Remove unused sections. - target_compile_options(${TARGET_NAME} PRIVATE - "-ffunction-sections" - "-fdata-sections" - ) + target_compile_options(${TARGET_NAME} PRIVATE "-ffunction-sections" + "-fdata-sections") # Removed unused sections. - target_link_options(${TARGET_NAME} PRIVATE - "-Wl,--gc-sections" - ) + target_link_options(${TARGET_NAME} PRIVATE "-Wl,--gc-sections") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + endif() if(CMAKE_VERBOSE) message(STATUS "Warning flags: ${WARNING_FLAGS}") endif() - # Compile options for all sources. -target_compile_options(${TARGET_NAME} PRIVATE - ${WARNING_FLAGS} - ) +target_compile_options(${TARGET_NAME} PRIVATE ${WARNING_FLAGS}) if(NOT CMAKE_SIZE) set(CMAKE_SIZE size) @@ -165,19 +156,15 @@ else() set(TARGET_STRING "Target BSP: Hosted") endif() -string(CONCAT POST_BUILD_COMMENT - "Build directory: ${CMAKE_BINARY_DIR}\n" - "Target OSAL: ${FSFW_OSAL}\n" - "Target Build Type: ${CMAKE_BUILD_TYPE}\n" - "${TARGET_STRING}" - ) +string(CONCAT POST_BUILD_COMMENT "Build directory: ${CMAKE_BINARY_DIR}\n" + "Target OSAL: ${FSFW_OSAL}\n" + "Target Build Type: ${CMAKE_BUILD_TYPE}\n" "${TARGET_STRING}") add_custom_command( TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_SIZE} ${TARGET_NAME}${FILE_SUFFIX} - COMMENT ${POST_BUILD_COMMENT} -) + COMMENT ${POST_BUILD_COMMENT}) -include (BuildType) +include(BuildType) set_build_type() diff --git a/bsp_hosted/CMakeLists.txt b/bsp_hosted/CMakeLists.txt index cbb6c79..920f297 100644 --- a/bsp_hosted/CMakeLists.txt +++ b/bsp_hosted/CMakeLists.txt @@ -1,13 +1,7 @@ -target_sources(${TARGET_NAME} - PRIVATE - main.cpp -) +target_sources(${TARGET_NAME} PRIVATE main.cpp) add_subdirectory(core) add_subdirectory(fsfwconfig) add_subdirectory(utility) -target_include_directories(${TARGET_NAME} - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} -) \ No newline at end of file +target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/bsp_hosted/core/CMakeLists.txt b/bsp_hosted/core/CMakeLists.txt index 2b124ba..5edc79a 100644 --- a/bsp_hosted/core/CMakeLists.txt +++ b/bsp_hosted/core/CMakeLists.txt @@ -1,5 +1 @@ -target_sources(${TARGET_NAME} - PRIVATE - InitMission.cpp - ObjectFactory.cpp -) \ No newline at end of file +target_sources(${TARGET_NAME} PRIVATE InitMission.cpp ObjectFactory.cpp) diff --git a/bsp_hosted/core/InitMission.cpp b/bsp_hosted/core/InitMission.cpp index cfe1b56..12a1936 100644 --- a/bsp_hosted/core/InitMission.cpp +++ b/bsp_hosted/core/InitMission.cpp @@ -159,6 +159,10 @@ void InitMission::createTasks() { if (result != HasReturnvaluesIF::RETURN_OK) { task::printInitError("PUS 200", objects::PUS_SERVICE_200_MODE_MGMT); } + result = pusMedPrio->addComponent(objects::PUS_SERVICE_11_TC_SCHEDULER); + if (result != HasReturnvaluesIF::RETURN_OK) { + task::printInitError("PUS 11", objects::PUS_SERVICE_11_TC_SCHEDULER); + } #ifdef __unix__ currPrio = 30; diff --git a/bsp_hosted/core/ObjectFactory.cpp b/bsp_hosted/core/ObjectFactory.cpp index c1a19af..58fe7af 100644 --- a/bsp_hosted/core/ObjectFactory.cpp +++ b/bsp_hosted/core/ObjectFactory.cpp @@ -1,19 +1,14 @@ #include "ObjectFactory.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - #include "OBSWConfig.h" +#include "bsp_hosted/fsfwconfig/objects/systemObjectList.h" +#include "bsp_hosted/fsfwconfig/tmtc/apid.h" +#include "commonConfig.h" #include "example/core/GenericFactory.h" #include "example/test/FsfwTestTask.h" #include "example/utility/TmFunnel.h" +#include "fsfw/storagemanager/PoolManager.h" +#include "fsfw/tmtcservices/CommandingServiceBase.h" #if OBSW_USE_TCP_SERVER == 0 #include @@ -28,20 +23,23 @@ void ObjectFactory::produce(void* args) { #if OBSW_ADD_CORE_COMPONENTS == 1 { - LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 25}, {128, 15}, {1024, 5}}; + LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 40}, + {128, 30}, {1024, 20}, {2048, 10}}; new PoolManager(objects::TC_STORE, poolCfg); } { - LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 25}, {128, 15}, {1024, 5}}; + LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 40}, + {128, 30}, {1024, 20}, {2048, 10}}; new PoolManager(objects::TM_STORE, poolCfg); } { - LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 25}, {128, 15}, {1024, 5}}; + LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 40}, + {128, 30}, {1024, 20}, {2048, 10}}; new PoolManager(objects::IPC_STORE, poolCfg); } - + ObjectFactory::produceGenericObjects(); // TMTC Reception via TCP/IP socket #if OBSW_USE_TCP_SERVER == 0 auto tmtcBridge = new UdpTmTcBridge(objects::TCPIP_TMTC_BRIDGE, objects::CCSDS_DISTRIBUTOR); @@ -62,6 +60,4 @@ void ObjectFactory::produce(void* args) { periodicEvent = true; #endif new FsfwTestTask(objects::TEST_TASK, periodicEvent); - - ObjectFactory::produceGenericObjects(); } diff --git a/bsp_hosted/fsfwconfig/CMakeLists.txt b/bsp_hosted/fsfwconfig/CMakeLists.txt index c336e10..f7a2d9e 100644 --- a/bsp_hosted/fsfwconfig/CMakeLists.txt +++ b/bsp_hosted/fsfwconfig/CMakeLists.txt @@ -1,25 +1,16 @@ -target_sources(${TARGET_NAME} - PRIVATE - ipc/missionMessageTypes.cpp - pollingsequence/pollingSequenceFactory.cpp -) +target_sources( + ${TARGET_NAME} PRIVATE ipc/missionMessageTypes.cpp + pollingsequence/pollingSequenceFactory.cpp) # Add include paths for the executable -target_include_directories(${TARGET_NAME} - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR} -) +target_include_directories(${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) # If a special translation file for object IDs exists, compile it. if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/objects/translateObjects.cpp") - target_sources(${TARGET_NAME} PRIVATE - objects/translateObjects.cpp - ) + target_sources(${TARGET_NAME} PRIVATE objects/translateObjects.cpp) endif() # If a special translation file for events exists, compile it. if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/objects/translateObjects.cpp") - target_sources(${TARGET_NAME} PRIVATE - events/translateEvents.cpp - ) + target_sources(${TARGET_NAME} PRIVATE events/translateEvents.cpp) endif() diff --git a/bsp_hosted/fsfwconfig/OBSWConfig.h.in b/bsp_hosted/fsfwconfig/OBSWConfig.h.in index c9f2acb..9487c31 100644 --- a/bsp_hosted/fsfwconfig/OBSWConfig.h.in +++ b/bsp_hosted/fsfwconfig/OBSWConfig.h.in @@ -10,7 +10,7 @@ #define OBSW_TASK_PERIODIC_EVENT 0 // Use a TCP server instead of a UDP server for TMTC reception -#define OBSW_USE_TCP_SERVER 0 +#define OBSW_USE_TCP_SERVER 1 #ifdef __cplusplus diff --git a/bsp_hosted/fsfwconfig/events/translateEvents.cpp b/bsp_hosted/fsfwconfig/events/translateEvents.cpp index cf088ad..6e6ef9d 100644 --- a/bsp_hosted/fsfwconfig/events/translateEvents.cpp +++ b/bsp_hosted/fsfwconfig/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** * @brief Auto-generated event translation file. Contains 78 translations. * @details - * Generated on: 2021-06-21 16:09:15 + * Generated on: 2022-05-20 09:11:07 */ #include "translateEvents.h" @@ -59,7 +59,6 @@ const char *MONITOR_CHANGED_STATE_STRING = "MONITOR_CHANGED_STATE"; const char *VALUE_BELOW_LOW_LIMIT_STRING = "VALUE_BELOW_LOW_LIMIT"; const char *VALUE_ABOVE_HIGH_LIMIT_STRING = "VALUE_ABOVE_HIGH_LIMIT"; const char *VALUE_OUT_OF_RANGE_STRING = "VALUE_OUT_OF_RANGE"; -const char *SWITCHING_TM_FAILED_STRING = "SWITCHING_TM_FAILED"; const char *CHANGING_MODE_STRING = "CHANGING_MODE"; const char *MODE_INFO_STRING = "MODE_INFO"; const char *FALLBACK_FAILED_STRING = "FALLBACK_FAILED"; @@ -83,9 +82,10 @@ const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; const char *CLOCK_SET_STRING = "CLOCK_SET"; const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; const char *TEST_STRING = "TEST"; +const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; const char *translateEvents(Event event) { - switch ((event & 0xffff)) { + switch ((event & 0xFFFF)) { case (2200): return STORE_SEND_WRITE_FAILED_STRING; case (2201): @@ -194,8 +194,6 @@ const char *translateEvents(Event event) { return VALUE_ABOVE_HIGH_LIMIT_STRING; case (7204): return VALUE_OUT_OF_RANGE_STRING; - case (7301): - return SWITCHING_TM_FAILED_STRING; case (7400): return CHANGING_MODE_STRING; case (7401): @@ -242,6 +240,8 @@ const char *translateEvents(Event event) { return CLOCK_SET_FAILURE_STRING; case (9700): return TEST_STRING; + case (10600): + return CHANGE_OF_SETUP_PARAMETER_STRING; default: return "UNKNOWN_EVENT"; } diff --git a/bsp_hosted/fsfwconfig/events/translateEvents.h b/bsp_hosted/fsfwconfig/events/translateEvents.h index a42d9b5..9955431 100644 --- a/bsp_hosted/fsfwconfig/events/translateEvents.h +++ b/bsp_hosted/fsfwconfig/events/translateEvents.h @@ -1,8 +1,8 @@ #ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ #define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ -#include +#include "fsfw/events/Event.h" -const char* translateEvents(Event event); +const char *translateEvents(Event event); #endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */ diff --git a/bsp_hosted/fsfwconfig/objects/translateObjects.cpp b/bsp_hosted/fsfwconfig/objects/translateObjects.cpp index ca96314..9d92e60 100644 --- a/bsp_hosted/fsfwconfig/objects/translateObjects.cpp +++ b/bsp_hosted/fsfwconfig/objects/translateObjects.cpp @@ -1,8 +1,8 @@ /** - * @brief Auto-generated object translation file. + * @brief Auto-generated object translation file. * @details - * Contains 37 translations. - * Generated on: 2021-05-28 18:12:56 + * Contains 39 translations. + * Generated on: 2022-05-20 09:16:37 */ #include "translateObjects.h" @@ -18,10 +18,12 @@ const char *PUS_SERVICE_3_HOUSEKEEPING_STRING = "PUS_SERVICE_3_HOUSEKEEPING"; const char *PUS_SERVICE_5_EVENT_REPORTING_STRING = "PUS_SERVICE_5_EVENT_REPORTING"; const char *PUS_SERVICE_8_FUNCTION_MGMT_STRING = "PUS_SERVICE_8_FUNCTION_MGMT"; const char *PUS_SERVICE_9_TIME_MGMT_STRING = "PUS_SERVICE_9_TIME_MGMT"; +const char *PUS_SERVICE_11_TC_SCHEDULER_STRING = "PUS_SERVICE_11_TC_SCHEDULER"; const char *PUS_SERVICE_17_TEST_STRING = "PUS_SERVICE_17_TEST"; const char *PUS_SERVICE_20_PARAMETERS_STRING = "PUS_SERVICE_20_PARAMETERS"; const char *PUS_SERVICE_200_MODE_MGMT_STRING = "PUS_SERVICE_200_MODE_MGMT"; const char *PUS_SERVICE_201_HEALTH_STRING = "PUS_SERVICE_201_HEALTH"; +const char *CFDP_PACKET_DISTRIBUTOR_STRING = "CFDP_PACKET_DISTRIBUTOR"; const char *HEALTH_TABLE_STRING = "HEALTH_TABLE"; const char *MODE_STORE_STRING = "MODE_STORE"; const char *EVENT_MANAGER_STRING = "EVENT_MANAGER"; @@ -31,8 +33,8 @@ const char *TM_STORE_STRING = "TM_STORE"; const char *IPC_STORE_STRING = "IPC_STORE"; const char *TIME_STAMPER_STRING = "TIME_STAMPER"; const char *FSFW_OBJECTS_END_STRING = "FSFW_OBJECTS_END"; -const char *UDP_BRIDGE_STRING = "UDP_BRIDGE"; -const char *UDP_POLLING_TASK_STRING = "UDP_POLLING_TASK"; +const char *TCPIP_TMTC_BRIDGE_STRING = "TCPIP_TMTC_BRIDGE"; +const char *TCPIP_TMTC_POLLING_TASK_STRING = "TCPIP_TMTC_POLLING_TASK"; const char *CCSDS_DISTRIBUTOR_STRING = "CCSDS_DISTRIBUTOR"; const char *PUS_DISTRIBUTOR_STRING = "PUS_DISTRIBUTOR"; const char *TM_FUNNEL_STRING = "TM_FUNNEL"; @@ -70,6 +72,8 @@ const char *translateObject(object_id_t object) { return PUS_SERVICE_8_FUNCTION_MGMT_STRING; case 0x53000009: return PUS_SERVICE_9_TIME_MGMT_STRING; + case 0x53000011: + return PUS_SERVICE_11_TC_SCHEDULER_STRING; case 0x53000017: return PUS_SERVICE_17_TEST_STRING; case 0x53000020: @@ -78,6 +82,8 @@ const char *translateObject(object_id_t object) { return PUS_SERVICE_200_MODE_MGMT_STRING; case 0x53000201: return PUS_SERVICE_201_HEALTH_STRING; + case 0x53001000: + return CFDP_PACKET_DISTRIBUTOR_STRING; case 0x53010000: return HEALTH_TABLE_STRING; case 0x53010100: @@ -97,9 +103,9 @@ const char *translateObject(object_id_t object) { case 0x53ffffff: return FSFW_OBJECTS_END_STRING; case 0x62000300: - return UDP_BRIDGE_STRING; + return TCPIP_TMTC_BRIDGE_STRING; case 0x62000400: - return UDP_POLLING_TASK_STRING; + return TCPIP_TMTC_POLLING_TASK_STRING; case 0x63000000: return CCSDS_DISTRIBUTOR_STRING; case 0x63000001: diff --git a/bsp_hosted/fsfwconfig/objects/translateObjects.h b/bsp_hosted/fsfwconfig/objects/translateObjects.h index dbf5b46..257912f 100644 --- a/bsp_hosted/fsfwconfig/objects/translateObjects.h +++ b/bsp_hosted/fsfwconfig/objects/translateObjects.h @@ -3,6 +3,6 @@ #include -const char* translateObject(object_id_t object); +const char *translateObject(object_id_t object); #endif /* FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_ */ diff --git a/bsp_hosted/fsfwconfig/tmtc/pusIds.h b/bsp_hosted/fsfwconfig/tmtc/pusIds.h deleted file mode 100644 index 13b59c7..0000000 --- a/bsp_hosted/fsfwconfig/tmtc/pusIds.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef FSFWCONFIG_TMTC_PUSIDS_H_ -#define FSFWCONFIG_TMTC_PUSIDS_H_ - -#include - -#endif /* FSFWCONFIG_TMTC_PUSIDS_H_ */ diff --git a/bsp_hosted/utility/CMakeLists.txt b/bsp_hosted/utility/CMakeLists.txt index 721ba1c..71740d3 100644 --- a/bsp_hosted/utility/CMakeLists.txt +++ b/bsp_hosted/utility/CMakeLists.txt @@ -1,7 +1 @@ -target_sources(${TARGET_NAME} - PUBLIC - printChar.c -) - - - +target_sources(${TARGET_NAME} PUBLIC printChar.c) diff --git a/example_common b/example_common index c564fa3..b8e06cb 160000 --- a/example_common +++ b/example_common @@ -1 +1 @@ -Subproject commit c564fa37fde467a0216c041bb81eeed7343ac505 +Subproject commit b8e06cba993e3739bce921f389b55fd81bff865f diff --git a/fsfw b/fsfw index 059e60c..67b67de 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit 059e60cada54b30073b2b816020ee27f172fc8ce +Subproject commit 67b67de753da2d6de3e940bb89f20301d5e29771 diff --git a/generators/.run/events.run.xml b/generators/.run/events.run.xml new file mode 100644 index 0000000..6bc73c9 --- /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 0000000..df684cc --- /dev/null +++ b/generators/.run/objects.run.xml @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/generators/.run/retval.run.xml b/generators/.run/retval.run.xml new file mode 100644 index 0000000..56d80e1 --- /dev/null +++ b/generators/.run/retval.run.xml @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/generators/packetcontent/__init__.py b/generators/archive/__init__.py similarity index 100% rename from generators/packetcontent/__init__.py rename to generators/archive/__init__.py diff --git a/generators/packetcontent/packet_content_parser.py b/generators/archive/packet_content_parser.py similarity index 100% rename from generators/packetcontent/packet_content_parser.py rename to generators/archive/packet_content_parser.py diff --git a/generators/bsp_hosted_events.csv b/generators/bsp_hosted_events.csv index c49b0ab..50b84af 100644 --- a/generators/bsp_hosted_events.csv +++ b/generators/bsp_hosted_events.csv @@ -1,78 +1,78 @@ -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;Indicates a SW bug in child class.;../../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;A RF available signal was detected. P1: raw RFA state, P2: 0;../../fsfw/datalinklayer/DataLinkLayer.h -7901;RF_LOST;INFO;A previously found RF available signal was lost. P1: raw RFA state, P2: 0;../../fsfw/datalinklayer/DataLinkLayer.h -7902;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;../../fsfw/datalinklayer/DataLinkLayer.h -7903;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;../../fsfw/datalinklayer/DataLinkLayer.h -7905;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;../../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 +2200;0x0898;STORE_SEND_WRITE_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2201;0x0899;STORE_WRITE_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2202;0x089a;STORE_SEND_READ_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2203;0x089b;STORE_READ_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2204;0x089c;UNEXPECTED_MSG;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2205;0x089d;STORING_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2206;0x089e;TM_DUMP_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2207;0x089f;STORE_INIT_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2208;0x08a0;STORE_INIT_EMPTY;INFO;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2209;0x08a1;STORE_CONTENT_CORRUPTED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2210;0x08a2;STORE_INITIALIZE;INFO;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2211;0x08a3;INIT_DONE;INFO;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2212;0x08a4;DUMP_FINISHED;INFO;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2213;0x08a5;DELETION_FINISHED;INFO;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2214;0x08a6;DELETION_FAILED;LOW;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2215;0x08a7;AUTO_CATALOGS_SENDING_FAILED;INFO;;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h +2600;0x0a28;GET_DATA_FAILED;LOW;;fsfw/src/fsfw/storagemanager/StorageManagerIF.h +2601;0x0a29;STORE_DATA_FAILED;LOW;;fsfw/src/fsfw/storagemanager/StorageManagerIF.h +2800;0x0af0;DEVICE_BUILDING_COMMAND_FAILED;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2801;0x0af1;DEVICE_SENDING_COMMAND_FAILED;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2802;0x0af2;DEVICE_REQUESTING_REPLY_FAILED;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2803;0x0af3;DEVICE_READING_REPLY_FAILED;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2804;0x0af4;DEVICE_INTERPRETING_REPLY_FAILED;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2805;0x0af5;DEVICE_MISSED_REPLY;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2806;0x0af6;DEVICE_UNKNOWN_REPLY;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2807;0x0af7;DEVICE_UNREQUESTED_REPLY;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2808;0x0af8;INVALID_DEVICE_COMMAND;LOW;Indicates a SW bug in child class.;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2809;0x0af9;MONITORING_LIMIT_EXCEEDED;LOW;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +2810;0x0afa;MONITORING_AMBIGUOUS;HIGH;;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h +4201;0x1069;FUSE_CURRENT_HIGH;LOW;;fsfw/src/fsfw/power/Fuse.h +4202;0x106a;FUSE_WENT_OFF;LOW;;fsfw/src/fsfw/power/Fuse.h +4204;0x106c;POWER_ABOVE_HIGH_LIMIT;LOW;;fsfw/src/fsfw/power/Fuse.h +4205;0x106d;POWER_BELOW_LOW_LIMIT;LOW;;fsfw/src/fsfw/power/Fuse.h +4300;0x10cc;SWITCH_WENT_OFF;LOW;;fsfw/src/fsfw/power/PowerSwitchIF.h +5000;0x1388;HEATER_ON;INFO;;fsfw/src/fsfw/thermal/Heater.h +5001;0x1389;HEATER_OFF;INFO;;fsfw/src/fsfw/thermal/Heater.h +5002;0x138a;HEATER_TIMEOUT;LOW;;fsfw/src/fsfw/thermal/Heater.h +5003;0x138b;HEATER_STAYED_ON;LOW;;fsfw/src/fsfw/thermal/Heater.h +5004;0x138c;HEATER_STAYED_OFF;LOW;;fsfw/src/fsfw/thermal/Heater.h +5200;0x1450;TEMP_SENSOR_HIGH;LOW;;fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h +5201;0x1451;TEMP_SENSOR_LOW;LOW;;fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h +5202;0x1452;TEMP_SENSOR_GRADIENT;LOW;;fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h +5901;0x170d;COMPONENT_TEMP_LOW;LOW;;fsfw/src/fsfw/thermal/ThermalComponentIF.h +5902;0x170e;COMPONENT_TEMP_HIGH;LOW;;fsfw/src/fsfw/thermal/ThermalComponentIF.h +5903;0x170f;COMPONENT_TEMP_OOL_LOW;LOW;;fsfw/src/fsfw/thermal/ThermalComponentIF.h +5904;0x1710;COMPONENT_TEMP_OOL_HIGH;LOW;;fsfw/src/fsfw/thermal/ThermalComponentIF.h +5905;0x1711;TEMP_NOT_IN_OP_RANGE;LOW;;fsfw/src/fsfw/thermal/ThermalComponentIF.h +7101;0x1bbd;FDIR_CHANGED_STATE;INFO;;fsfw/src/fsfw/fdir/FailureIsolationBase.h +7102;0x1bbe;FDIR_STARTS_RECOVERY;MEDIUM;;fsfw/src/fsfw/fdir/FailureIsolationBase.h +7103;0x1bbf;FDIR_TURNS_OFF_DEVICE;MEDIUM;;fsfw/src/fsfw/fdir/FailureIsolationBase.h +7201;0x1c21;MONITOR_CHANGED_STATE;LOW;;fsfw/src/fsfw/monitoring/MonitoringIF.h +7202;0x1c22;VALUE_BELOW_LOW_LIMIT;LOW;;fsfw/src/fsfw/monitoring/MonitoringIF.h +7203;0x1c23;VALUE_ABOVE_HIGH_LIMIT;LOW;;fsfw/src/fsfw/monitoring/MonitoringIF.h +7204;0x1c24;VALUE_OUT_OF_RANGE;LOW;;fsfw/src/fsfw/monitoring/MonitoringIF.h +7400;0x1ce8;CHANGING_MODE;INFO;;fsfw/src/fsfw/modes/HasModesIF.h +7401;0x1ce9;MODE_INFO;INFO;;fsfw/src/fsfw/modes/HasModesIF.h +7402;0x1cea;FALLBACK_FAILED;HIGH;;fsfw/src/fsfw/modes/HasModesIF.h +7403;0x1ceb;MODE_TRANSITION_FAILED;LOW;;fsfw/src/fsfw/modes/HasModesIF.h +7404;0x1cec;CANT_KEEP_MODE;HIGH;;fsfw/src/fsfw/modes/HasModesIF.h +7405;0x1ced;OBJECT_IN_INVALID_MODE;LOW;;fsfw/src/fsfw/modes/HasModesIF.h +7406;0x1cee;FORCING_MODE;MEDIUM;;fsfw/src/fsfw/modes/HasModesIF.h +7407;0x1cef;MODE_CMD_REJECTED;LOW;;fsfw/src/fsfw/modes/HasModesIF.h +7506;0x1d52;HEALTH_INFO;INFO;;fsfw/src/fsfw/health/HasHealthIF.h +7507;0x1d53;CHILD_CHANGED_HEALTH;INFO;;fsfw/src/fsfw/health/HasHealthIF.h +7508;0x1d54;CHILD_PROBLEMS;LOW;;fsfw/src/fsfw/health/HasHealthIF.h +7509;0x1d55;OVERWRITING_HEALTH;LOW;;fsfw/src/fsfw/health/HasHealthIF.h +7510;0x1d56;TRYING_RECOVERY;MEDIUM;;fsfw/src/fsfw/health/HasHealthIF.h +7511;0x1d57;RECOVERY_STEP;MEDIUM;;fsfw/src/fsfw/health/HasHealthIF.h +7512;0x1d58;RECOVERY_DONE;MEDIUM;;fsfw/src/fsfw/health/HasHealthIF.h +7900;0x1edc;RF_AVAILABLE;INFO;A RF available signal was detected. P1: raw RFA state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h +7901;0x1edd;RF_LOST;INFO;A previously found RF available signal was lost. P1: raw RFA state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h +7902;0x1ede;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h +7903;0x1edf;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h +7905;0x1ee1;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h +8900;0x22c4;CLOCK_SET;INFO;;fsfw/src/fsfw/pus/Service9TimeManagement.h +8901;0x22c5;CLOCK_SET_FAILURE;LOW;;fsfw/src/fsfw/pus/Service9TimeManagement.h +9700;0x25e4;TEST;INFO;;fsfw/src/fsfw/pus/Service17Test.h +10600;0x2968;CHANGE_OF_SETUP_PARAMETER;LOW;;fsfw/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h diff --git a/generators/bsp_hosted_objects.csv b/generators/bsp_hosted_objects.csv new file mode 100644 index 0000000..8f37639 --- /dev/null +++ b/generators/bsp_hosted_objects.csv @@ -0,0 +1,39 @@ +0x4100CAFE;TEST_ASSEMBLY +0x4301CAFE;TEST_CONTROLLER +0x4401AFFE;TEST_DEVICE_HANDLER_0 +0x4402AFFE;TEST_DEVICE_HANDLER_1 +0x4900AFFE;TEST_ECHO_COM_IF +0x53000000;FSFW_OBJECTS_START +0x53000001;PUS_SERVICE_1_VERIFICATION +0x53000002;PUS_SERVICE_2_DEVICE_ACCESS +0x53000003;PUS_SERVICE_3_HOUSEKEEPING +0x53000005;PUS_SERVICE_5_EVENT_REPORTING +0x53000008;PUS_SERVICE_8_FUNCTION_MGMT +0x53000009;PUS_SERVICE_9_TIME_MGMT +0x53000011;PUS_SERVICE_11_TC_SCHEDULER +0x53000017;PUS_SERVICE_17_TEST +0x53000020;PUS_SERVICE_20_PARAMETERS +0x53000200;PUS_SERVICE_200_MODE_MGMT +0x53000201;PUS_SERVICE_201_HEALTH +0x53001000;CFDP_PACKET_DISTRIBUTOR +0x53010000;HEALTH_TABLE +0x53010100;MODE_STORE +0x53030000;EVENT_MANAGER +0x53040000;INTERNAL_ERROR_REPORTER +0x534f0100;TC_STORE +0x534f0200;TM_STORE +0x534f0300;IPC_STORE +0x53500010;TIME_STAMPER +0x53ffffff;FSFW_OBJECTS_END +0x62000300;TCPIP_TMTC_BRIDGE +0x62000400;TCPIP_TMTC_POLLING_TASK +0x63000000;CCSDS_DISTRIBUTOR +0x63000001;PUS_DISTRIBUTOR +0x63000002;TM_FUNNEL +0x74000001;TEST_DUMMY_1 +0x74000002;TEST_DUMMY_2 +0x74000003;TEST_DUMMY_3 +0x74000004;TEST_DUMMY_4 +0x74000005;TEST_DUMMY_5 +0x7400CAFE;TEST_TASK +0xFFFFFFFF;NO_OBJECT diff --git a/generators/bsp_hosted_returnvalues.csv b/generators/bsp_hosted_returnvalues.csv index d3aeabf..3a06dfa 100644 --- a/generators/bsp_hosted_returnvalues.csv +++ b/generators/bsp_hosted_returnvalues.csv @@ -1,369 +1,401 @@ 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 -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 -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 -0x3d01;DLEE_StreamTooShort;;0x01;../../fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER -0x3d02;DLEE_DecodingError;;0x02;../../fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER -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 -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 -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 -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 -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 -0xf01;CM_UnknownCommand;;1;../../fsfw/ipc/CommandMessageIF.h;COMMAND_MESSAGE -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 -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 -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 -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 -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 -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 -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 -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 -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 -0x3ba0;PVA_InvalidReadWriteMode;;0xA0;../../fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF -0x3ba1;PVA_InvalidPoolEntry;;0xA1;../../fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_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 -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 -0x2401;EV_ListenerNotFound;;1;../../fsfw/events/EventManagerIF.h;EVENT_MANAGER_IF -0x1101;AL_Full;;0x01;../../fsfw/container/ArrayList.h;ARRAY_LIST -0x1601;FMM_MapFull;;0x01;../../fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP -0x1602;FMM_KeyDoesNotExist;;0x02;../../fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP -0x1801;FF_Full;;1;../../fsfw/container/FIFOBase.h;FIFO_CLASS -0x1802;FF_Empty;;2;../../fsfw/container/FIFOBase.h;FIFO_CLASS -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 -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 -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 -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 -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 -0x3a00;LPIF_PoolEntryNotFound;;0x00;../../fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF -0x3a01;LPIF_PoolEntryTypeConflict;;0x01;../../fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF -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 -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 -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 -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 -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 -0x2f01;POS_InPowerTransition;;1;../../fsfw/power/PowerSwitcher.h;POWER_SWITCHER -0x2f02;POS_SwitchStateMismatch;;2;../../fsfw/power/PowerSwitcher.h;POWER_SWITCHER -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 -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 -0x1701;HHI_ObjectNotHealthy;;1;../../fsfw/health/HasHealthIF.h;HAS_HEALTH_IF -0x1702;HHI_InvalidHealthState;;2;../../fsfw/health/HasHealthIF.h;HAS_HEALTH_IF -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 -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 -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 +0x4400; HSPI_HalTimeoutRetval;;0;fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h;HAL_SPI +0x4401; HSPI_HalBusyRetval;;1;fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h;HAL_SPI +0x4402; HSPI_HalErrorRetval;;2;fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h;HAL_SPI +0x4501; HURT_UartReadFailure;;1;fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h;HAL_UART +0x4502; HURT_UartReadSizeMissmatch;;2;fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h;HAL_UART +0x4503; HURT_UartRxBufferTooSmall;;3;fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h;HAL_UART +0x4701; HGIO_UnknownGpioId;;1;fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO +0x4702; HGIO_DriveGpioFailure;;2;fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO +0x4703; HGIO_GpioTypeFailure;;3;fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO +0x4704; HGIO_GpioInvalidInstance;;4;fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO +0x4705; HGIO_GpioDuplicateDetected;;5;fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO +0x4706; HGIO_GpioInitFailed;;6;fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO +0x4300; UXOS_ExecutionFinished;Execution of the current command has finished;0;fsfw/hal/src/fsfw_hal/linux/CommandExecutor.h;LINUX_OSAL +0x4301; UXOS_CommandPending;Command is pending. This will also be returned if the user tries to load another command but a command is still pending;1;fsfw/hal/src/fsfw_hal/linux/CommandExecutor.h;LINUX_OSAL +0x4302; UXOS_BytesRead;Some bytes have been read from the executing process;2;fsfw/hal/src/fsfw_hal/linux/CommandExecutor.h;LINUX_OSAL +0x4303; UXOS_CommandError;Command execution failed;3;fsfw/hal/src/fsfw_hal/linux/CommandExecutor.h;LINUX_OSAL +0x4304; UXOS_NoCommandLoadedOrPending;;4;fsfw/hal/src/fsfw_hal/linux/CommandExecutor.h;LINUX_OSAL +0x4306; UXOS_PcloseCallError;;6;fsfw/hal/src/fsfw_hal/linux/CommandExecutor.h;LINUX_OSAL +0x2b01; CCS_BcIsSetVrCommand;;0x01;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2b02; CCS_BcIsUnlockCommand;;0x02;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bb0; CCS_BcIllegalCommand;;0xB0;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bb1; CCS_BoardReadingNotFinished;;0xB1;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bf0; CCS_NsPositiveW;;0xF0;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bf1; CCS_NsNegativeW;;0xF1;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bf2; CCS_NsLockout;;0xF2;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bf3; CCS_FarmInLockout;;0xF3;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bf4; CCS_FarmInWait;;0xF4;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be0; CCS_WrongSymbol;;0xE0;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be1; CCS_DoubleStart;;0xE1;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be2; CCS_StartSymbolMissed;;0xE2;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be3; CCS_EndWithoutStart;;0xE3;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be4; CCS_TooLarge;;0xE4;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be5; CCS_TooShort;;0xE5;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be6; CCS_WrongTfVersion;;0xE6;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be7; CCS_WrongSpacecraftId;;0xE7;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be8; CCS_NoValidFrameType;;0xE8;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2be9; CCS_CrcFailed;;0xE9;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bea; CCS_VcNotFound;;0xEA;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2beb; CCS_ForwardingFailed;;0xEB;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bec; CCS_ContentTooLarge;;0xEC;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bed; CCS_ResidualData;;0xED;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bee; CCS_DataCorrupted;;0xEE;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bef; CCS_IllegalSegmentationFlag;;0xEF;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bd0; CCS_IllegalFlagCombination;;0xD0;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bd1; CCS_ShorterThanHeader;;0xD1;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bd2; CCS_TooShortBlockedPacket;;0xD2;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x2bd3; CCS_TooShortMapExtraction;;0xD3;fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF +0x3a00; SPH_ConnBroken;;0;fsfw/src/fsfw/osal/common/TcpTmTcServer.h;SEMAPHORE_IF +0x2901; IEC_NoConfigurationTable;;0x01;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2902; IEC_NoCpuTable;;0x02;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2903; IEC_InvalidWorkspaceAddress;;0x03;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2904; IEC_TooLittleWorkspace;;0x04;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2905; IEC_WorkspaceAllocation;;0x05;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2906; IEC_InterruptStackTooSmall;;0x06;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2907; IEC_ThreadExitted;;0x07;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2908; IEC_InconsistentMpInformation;;0x08;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2909; IEC_InvalidNode;;0x09;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x290a; IEC_NoMpci;;0x0a;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x290b; IEC_BadPacket;;0x0b;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x290c; IEC_OutOfPackets;;0x0c;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x290d; IEC_OutOfGlobalObjects;;0x0d;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x290e; IEC_OutOfProxies;;0x0e;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x290f; IEC_InvalidGlobalId;;0x0f;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2910; IEC_BadStackHook;;0x10;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2911; IEC_BadAttributes;;0x11;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2912; IEC_ImplementationKeyCreateInconsistency;;0x12;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2913; IEC_ImplementationBlockingOperationCancel;;0x13;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2914; IEC_MutexObtainFromBadState;;0x14;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0x2915; IEC_UnlimitedAndMaximumIs0;;0x15;fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES +0xe01; HM_InvalidMode;;0x01;fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF +0xe02; HM_TransNotAllowed;;0x02;fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF +0xe03; HM_InTransition;;0x03;fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF +0xe04; HM_InvalidSubmode;;0x04;fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF +0x2d01; HPA_InvalidIdentifierId;;0x01;fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF +0x2d02; HPA_InvalidDomainId;;0x02;fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF +0x2d03; HPA_InvalidValue;;0x03;fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF +0x2d05; HPA_ReadOnly;;0x05;fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF +0x2c01; PAW_UnknownDatatype;;0x01;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c02; PAW_DatatypeMissmatch;;0x02;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c03; PAW_Readonly;;0x03;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c04; PAW_TooBig;;0x04;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c05; PAW_SourceNotSet;;0x05;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c06; PAW_OutOfBounds;;0x06;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c07; PAW_NotSet;;0x07;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x2c08; PAW_ColumnOrRowsZero;;0x08;fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER +0x3101; CF_ObjectHasNoFunctions;;1;fsfw/src/fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF +0x3102; CF_AlreadyCommanding;;2;fsfw/src/fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF +0x3201; HF_IsBusy;;1;fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF +0x3202; HF_InvalidParameters;;2;fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF +0x3203; HF_ExecutionFinished;;3;fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF +0x3204; HF_InvalidActionId;;4;fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF +0x201; OM_InsertionFailed;;1;fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF +0x202; OM_NotFound;;2;fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF +0x203; OM_ChildInitFailed;;3;fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF +0x204; OM_InternalErrReporterUninit;;4;fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF +0x2500; FDI_YourFault;;0;fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF +0x2501; FDI_MyFault;;1;fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF +0x2502; FDI_ConfirmLater;;2;fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF +0x2101; TMF_Busy;;1;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2102; TMF_LastPacketFound;;2;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2103; TMF_StopFetch;;3;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2104; TMF_Timeout;;4;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2105; TMF_TmChannelFull;;5;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2106; TMF_NotStored;;6;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2107; TMF_AllDeleted;;7;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2108; TMF_InvalidData;;8;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2109; TMF_NotReady;;9;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF +0x2001; TMB_Busy;;1;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2002; TMB_Full;;2;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2003; TMB_Empty;;3;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2004; TMB_NullRequested;;4;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2005; TMB_TooLarge;;5;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2006; TMB_NotReady;;6;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2007; TMB_DumpError;;7;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2008; TMB_CrcError;;8;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x2009; TMB_Timeout;;9;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x200a; TMB_IdlePacketFound;;10;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x200b; TMB_TelecommandFound;;11;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x200c; TMB_NoPusATm;;12;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x200d; TMB_TooSmall;;13;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x200e; TMB_BlockNotFound;;14;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x200f; TMB_InvalidRequest;;15;fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF +0x1c01; TCD_PacketLost;;1;fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION +0x1c02; TCD_DestinationNotFound;;2;fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION +0x1c03; TCD_ServiceIdAlreadyExists;;3;fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION +0x1b00; TCC_IllegalApid;;0;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x1b01; TCC_IncompletePacket;;1;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x1b02; TCC_IncorrectChecksum;;2;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x1b03; TCC_IllegalPacketType;;3;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x1b04; TCC_IllegalPacketSubtype;;4;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x1b05; TCC_IncorrectPrimaryHeader;;5;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x1b06; TCC_IncorrectSecondaryHeader;;6;fsfw/src/fsfw/tcdistribution/TcPacketCheckPUS.h;TC_PACKET_CHECK +0x4e1; RMP_CommandNoDescriptorsAvailable;;0xE1;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4e2; RMP_CommandBufferFull;;0xE2;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4e3; RMP_CommandChannelOutOfRange;;0xE3;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4e6; RMP_CommandChannelDeactivated;;0xE6;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4e7; RMP_CommandPortOutOfRange;;0xE7;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4e8; RMP_CommandPortInUse;;0xE8;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4e9; RMP_CommandNoChannel;;0xE9;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4ea; RMP_NoHwCrc;;0xEA;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4d0; RMP_ReplyNoReply;;0xD0;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4d1; RMP_ReplyNotSent;;0xD1;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4d2; RMP_ReplyNotYetSent;;0xD2;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4d3; RMP_ReplyMissmatch;;0xD3;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4d4; RMP_ReplyTimeout;;0xD4;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4c0; RMP_ReplyInterfaceBusy;;0xC0;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4c1; RMP_ReplyTransmissionError;;0xC1;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4c2; RMP_ReplyInvalidData;;0xC2;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4c3; RMP_ReplyNotSupported;;0xC3;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f0; RMP_LinkDown;;0xF0;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f1; RMP_SpwCredit;;0xF1;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f2; RMP_SpwEscape;;0xF2;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f3; RMP_SpwDisconnect;;0xF3;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f4; RMP_SpwParity;;0xF4;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f5; RMP_SpwWriteSync;;0xF5;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f6; RMP_SpwInvalidAddress;;0xF6;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f7; RMP_SpwEarlyEop;;0xF7;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f8; RMP_SpwDma;;0xF8;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x4f9; RMP_SpwLinkError;;0xF9;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x400; RMP_ReplyOk;;0;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x401; RMP_ReplyGeneralErrorCode;;1;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x402; RMP_ReplyUnusedPacketTypeOrCommandCode;;2;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x403; RMP_ReplyInvalidKey;;3;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x404; RMP_ReplyInvalidDataCrc;;4;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x405; RMP_ReplyEarlyEop;;5;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x406; RMP_ReplyTooMuchData;;6;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x407; RMP_ReplyEep;;7;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x408; RMP_ReplyReserved;;8;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x409; RMP_ReplyVerifyBufferOverrun;;9;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x40a; RMP_ReplyCommandNotImplementedOrNotAuthorised;;10;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x40b; RMP_ReplyRmwDataLengthError;;11;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x40c; RMP_ReplyInvalidTargetLogicalAddress;;12;fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL +0x2701; SM_DataTooLarge;;1;fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF +0x2702; SM_DataStorageFull;;2;fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF +0x2703; SM_IllegalStorageId;;3;fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF +0x2704; SM_DataDoesNotExist;;4;fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF +0x2705; SM_IllegalAddress;;5;fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF +0x2706; SM_PoolTooLarge;;6;fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF +0x37a1; SGP4_InvalidEccentricity;;0xA1;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37a2; SGP4_InvalidMeanMotion;;0xA2;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37a3; SGP4_InvalidPerturbationElements;;0xA3;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37a4; SGP4_InvalidSemiLatusRectum;;0xA4;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37a5; SGP4_InvalidEpochElements;;0xA5;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37a6; SGP4_SatelliteHasDecayed;;0xA6;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37b1; SGP4_TleTooOld;;0xB1;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x37b2; SGP4_TleNotInitialized;;0xB2;fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS +0x2301; MT_TooDetailedRequest;;1;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS +0x2302; MT_TooGeneralRequest;;2;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS +0x2303; MT_NoMatch;;3;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS +0x2304; MT_Full;;4;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS +0x2305; MT_NewNodeCreated;;5;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS +0x3e01; DLEE_StreamTooShort;;0x01;fsfw/src/fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER +0x3e02; DLEE_DecodingError;;0x02;fsfw/src/fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER +0x2e01; ASC_TooLongForTargetType;;1;fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER +0x2e02; ASC_InvalidCharacters;;2;fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER +0x2e03; ASC_BufferTooSmall;;0x3;fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER +0xf01; CM_UnknownCommand;;1;fsfw/src/fsfw/ipc/CommandMessageIF.h;COMMAND_MESSAGE +0x3901; MQI_Empty;;1;fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF +0x3902; MQI_Full;No space left for more messages;2;fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF +0x3903; MQI_NoReplyPartner;Returned if a reply method was called without partner;3;fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF +0x3904; MQI_DestinationInvalid;Returned if the target destination is invalid.;4;fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF +0x3801; MUX_NotEnoughResources;;1;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3802; MUX_InsufficientMemory;;2;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3803; MUX_NoPrivilege;;3;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3804; MUX_WrongAttributeSetting;;4;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3805; MUX_MutexAlreadyLocked;;5;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3806; MUX_MutexNotFound;;6;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3807; MUX_MutexMaxLocks;;7;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3808; MUX_CurrThreadAlreadyOwnsMutex;;8;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3809; MUX_CurrThreadDoesNotOwnMutex;;9;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x380a; MUX_MutexTimeout;;10;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x380b; MUX_MutexInvalidId;;11;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x380c; MUX_MutexDestroyedWhileWaiting;;12;fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF +0x3a01; SPH_SemaphoreTimeout;;1;fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF +0x3a02; SPH_SemaphoreNotOwned;;2;fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF +0x3a03; SPH_SemaphoreInvalid;;3;fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF +0x3501; CFDP_InvalidTlvType;;1;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3502; CFDP_InvalidDirectiveFields;;2;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3503; CFDP_InvalidPduDatafieldLen;;3;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3504; CFDP_InvalidAckDirectiveFields;;4;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3505; CFDP_MetadataCantParseOptions;;5;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3506; CFDP_FinishedCantParseFsResponses;;6;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3508; CFDP_FilestoreRequiresSecondFile;;8;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x3509; CFDP_FilestoreResponseCantParseFsMessage;;9;fsfw/src/fsfw/cfdp/definitions.h;CFDP +0x2801; TC_InvalidTargetState;;1;fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF +0x28f1; TC_AboveOperationalLimit;;0xF1;fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF +0x28f2; TC_BelowOperationalLimit;;0xF2;fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF +0xc02; MS_InvalidEntry;;0x02;fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF +0xc03; MS_TooManyElements;;0x03;fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF +0xc04; MS_CantStoreEmpty;;0x04;fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF +0xd01; SS_SequenceAlreadyExists;;0x01;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd02; SS_TableAlreadyExists;;0x02;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd03; SS_TableDoesNotExist;;0x03;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd04; SS_TableOrSequenceLengthInvalid;;0x04;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd05; SS_SequenceDoesNotExist;;0x05;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd06; SS_TableContainsInvalidObjectId;;0x06;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd07; SS_FallbackSequenceDoesNotExist;;0x07;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd08; SS_NoTargetTable;;0x08;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd09; SS_SequenceOrTableTooLong;;0x09;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd0b; SS_IsFallbackSequence;;0x0B;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd0c; SS_AccessDenied;;0x0C;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xd0e; SS_TableInUse;;0x0E;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xda1; SS_TargetTableNotReached;;0xA1;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xda2; SS_TableCheckFailed;;0xA2;fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM +0xb01; SB_ChildNotFound;;0x01;fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE +0xb02; SB_ChildInfoUpdated;;0x02;fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE +0xb03; SB_ChildDoesntHaveModes;;0x03;fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE +0xb04; SB_CouldNotInsertChild;;0x04;fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE +0xb05; SB_TableContainsInvalidObjectId;;0x05;fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE +0x3d00; HKM_QueueOrDestinationInvalid;;0;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER +0x3d01; HKM_WrongHkPacketType;;1;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER +0x3d02; HKM_ReportingStatusUnchanged;;2;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER +0x3d03; HKM_PeriodicHelperInvalid;;3;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER +0x3d04; HKM_PoolobjectNotFound;;4;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER +0x3d05; HKM_DatasetNotFound;;5;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER +0x3b00; LPIF_PoolEntryNotFound;;0x00;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF +0x3b01; LPIF_PoolEntryTypeConflict;;0x01;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF +0x3ca0; PVA_InvalidReadWriteMode;;0xA0;fsfw/src/fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF +0x3ca1; PVA_InvalidPoolEntry;;0xA1;fsfw/src/fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF +0x801; DPS_InvalidParameterDefinition;;1;fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS +0x802; DPS_SetWasAlreadyRead;;2;fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS +0x803; DPS_CommitingWithoutReading;;3;fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS +0x804; DPS_DataSetUninitialised;;4;fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS +0x805; DPS_DataSetFull;;5;fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS +0x806; DPS_PoolVarNull;;6;fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS +0x1000; TIM_UnsupportedTimeFormat;;0;fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS +0x1001; TIM_NotEnoughInformationForTargetFormat;;1;fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS +0x1002; TIM_LengthMismatch;;2;fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS +0x1003; TIM_InvalidTimeFormat;;3;fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS +0x1004; TIM_InvalidDayOfYear;;4;fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS +0x1005; TIM_TimeDoesNotFitFormat;;5;fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS +0x3601; TSI_BadTimestamp;;1;fsfw/src/fsfw/timemanager/TimeStamperIF.h;TIME_STAMPER_IF +0x1d01; PUS_ActivityStarted;;1;fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF +0x1d02; PUS_InvalidSubservice;;2;fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF +0x1d03; PUS_IllegalApplicationData;;3;fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF +0x1d04; PUS_SendTmFailed;;4;fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF +0x1d05; PUS_Timeout;;5;fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF +0x4b00; SPPA_NoPacketFound;;0x00;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h;SPACE_PACKET_PARSER +0x4b01; SPPA_SplitPacket;;0x01;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h;SPACE_PACKET_PARSER +0x1f01; CSB_ExecutionComplete;;1;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1f02; CSB_NoStepMessage;;2;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1f03; CSB_ObjectBusy;;3;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1f04; CSB_Busy;;4;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1f05; CSB_InvalidTc;;5;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1f06; CSB_InvalidObject;;6;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1f07; CSB_InvalidReply;;7;fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE +0x1101; AL_Full;;0x01;fsfw/src/fsfw/container/ArrayList.h;ARRAY_LIST +0x1801; FF_Full;;1;fsfw/src/fsfw/container/FIFOBase.h;FIFO_CLASS +0x1802; FF_Empty;;2;fsfw/src/fsfw/container/FIFOBase.h;FIFO_CLASS +0x1601; FMM_MapFull;;0x01;fsfw/src/fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP +0x1602; FMM_KeyDoesNotExist;;0x02;fsfw/src/fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP +0x1501; FM_KeyAlreadyExists;;0x01;fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP +0x1502; FM_MapFull;;0x02;fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP +0x1503; FM_KeyDoesNotExist;;0x03;fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP +0x2401; EV_ListenerNotFound;;1;fsfw/src/fsfw/events/EventManagerIF.h;EVENT_MANAGER_IF +0x1701; HHI_ObjectNotHealthy;;1;fsfw/src/fsfw/health/HasHealthIF.h;HAS_HEALTH_IF +0x1702; HHI_InvalidHealthState;;2;fsfw/src/fsfw/health/HasHealthIF.h;HAS_HEALTH_IF +0x2f01; POS_InPowerTransition;;1;fsfw/src/fsfw/power/PowerSwitcher.h;POWER_SWITCHER +0x2f02; POS_SwitchStateMismatch;;2;fsfw/src/fsfw/power/PowerSwitcher.h;POWER_SWITCHER +0x501; PS_SwitchOn;;1;fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF +0x500; PS_SwitchOff;;0;fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF +0x502; PS_SwitchTimeout;;2;fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF +0x503; PS_FuseOn;;3;fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF +0x504; PS_FuseOff;;4;fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF +0x1a01; TRC_NotEnoughSensors;;1;fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK +0x1a02; TRC_LowestValueOol;;2;fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK +0x1a03; TRC_HighestValueOol;;3;fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK +0x1a04; TRC_BothValuesOol;;4;fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK +0x1a05; TRC_DuplexOol;;5;fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK +0x3001; LIM_Unchecked;;1;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x3002; LIM_Invalid;;2;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x3003; LIM_Unselected;;3;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x3004; LIM_BelowLowLimit;;4;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x3005; LIM_AboveHighLimit;;5;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x3006; LIM_UnexpectedValue;;6;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x3007; LIM_OutOfRange;;7;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x30a0; LIM_FirstSample;;0xA0;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x30e0; LIM_InvalidSize;;0xE0;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x30e1; LIM_WrongType;;0xE1;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x30e2; LIM_WrongPid;;0xE2;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x30e3; LIM_WrongLimitId;;0xE3;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x30ee; LIM_MonitorNotFound;;0xEE;fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF +0x4101; PUS11_InvalidTypeTimeWindow;;1;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h;PUS_SERVICE_11 +0x4102; PUS11_TimeshiftingNotPossible;;2;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h;PUS_SERVICE_11 +0x4103; PUS11_InvalidRelativeTime;;3;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h;PUS_SERVICE_11 +0x4200; FILS_GenericFileError;;0;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x4201; FILS_IsBusy;;1;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x4202; FILS_InvalidParameters;;2;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x4205; FILS_FileDoesNotExist;;5;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x4206; FILS_FileAlreadyExists;;6;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x4207; FILS_FileLocked;;7;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x420a; FILS_DirectoryDoesNotExist;;10;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x420b; FILS_DirectoryAlreadyExists;;11;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x420c; FILS_DirectoryNotEmpty;;12;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x420f; FILS_SequencePacketMissingWrite;;15;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x4210; FILS_SequencePacketMissingRead;;16;fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM +0x601; PP_DoItMyself;;1;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x602; PP_PointsToVariable;;2;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x603; PP_PointsToMemory;;3;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x604; PP_ActivityCompleted;;4;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x605; PP_PointsToVectorUint8;;5;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x606; PP_PointsToVectorUint16;;6;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x607; PP_PointsToVectorUint32;;7;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x608; PP_PointsToVectorFloat;;8;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x6a0; PP_DumpNotSupported;;0xA0;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x6e0; PP_InvalidSize;;0xE0;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x6e1; PP_InvalidAddress;;0xE1;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x6e2; PP_InvalidContent;;0xE2;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x6e3; PP_UnalignedAccess;;0xE3;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x6e4; PP_WriteProtected;;0xE4;fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF +0x13e0; MH_UnknownCmd;;0xE0;fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER +0x13e1; MH_InvalidAddress;;0xE1;fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER +0x13e2; MH_InvalidSize;;0xE2;fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER +0x13e3; MH_StateMismatch;;0xE3;fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER +0x1201; AB_NeedSecondStep;;0x01;fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE +0x1202; AB_NeedToReconfigure;;0x02;fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE +0x1203; AB_ModeFallback;;0x03;fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE +0x1204; AB_ChildNotCommandable;;0x04;fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE +0x1205; AB_NeedToChangeHealth;;0x05;fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE +0x12a1; AB_NotEnoughChildrenInCorrectState;;0xa1;fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE +0x3a0; DHB_InvalidChannel;;0xA0;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3b0; DHB_AperiodicReply;;0xB0;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3b1; DHB_IgnoreReplyData;;0xB1;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3b2; DHB_IgnoreFullPacket;;0xB2;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3c0; DHB_NothingToSend;;0xC0;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3c2; DHB_CommandMapError;;0xC2;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3d0; DHB_NoSwitch;;0xD0;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3e0; DHB_ChildTimeout;;0xE0;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3e1; DHB_SwitchFailed;;0xE1;fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE +0x3301; DC_NoReplyReceived;;0x01;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF +0x3302; DC_ProtocolError;;0x02;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF +0x3303; DC_Nullpointer;;0x03;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF +0x3304; DC_InvalidCookieType;;0x04;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF +0x3305; DC_NotActive;;0x05;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF +0x3306; DC_TooMuchData;;0x06;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF +0x26a0; DHI_NoCommandData;;0xA0;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a1; DHI_CommandNotSupported;;0xA1;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a2; DHI_CommandAlreadySent;;0xA2;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a3; DHI_CommandWasNotSent;;0xA3;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a4; DHI_CantSwitchAddress;;0xA4;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a5; DHI_WrongModeForCommand;;0xA5;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a6; DHI_Timeout;;0xA6;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a7; DHI_Busy;;0xA7;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a8; DHI_NoReplyExpected;;0xA8;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26a9; DHI_NonOpTemperature;;0xA9;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26aa; DHI_CommandNotImplemented;;0xAA;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26b0; DHI_ChecksumError;;0xB0;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26b1; DHI_LengthMissmatch;;0xB1;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26b2; DHI_InvalidData;;0xB2;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26b3; DHI_ProtocolError;;0xB3;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26c0; DHI_DeviceDidNotExecute;;0xC0;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26c1; DHI_DeviceReportedError;;0xC1;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26c2; DHI_UnknownDeviceReply;;0xC2;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26c3; DHI_DeviceReplyInvalid;;0xC3;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26d0; DHI_InvalidCommandParameter;;0xD0;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x26d1; DHI_InvalidNumberOrLengthOfParameters;;0xD1;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF +0x1401; SE_BufferTooShort;;1;fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF +0x1402; SE_StreamTooShort;;2;fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF +0x1403; SE_TooManyElements;;3;fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF diff --git a/generators/definitions.py b/generators/definitions.py index fe16513..eabccc8 100644 --- a/generators/definitions.py +++ b/generators/definitions.py @@ -1,18 +1,20 @@ +import os import enum - -DATABASE_NAME = "fsfw_mod.db" +from pathlib import Path -class BspSelect(enum.Enum): - BSP_HOSTED = enum.auto() - BSP_LINUX = enum.auto() - BSP_STM32_FREERTOS = enum.auto() - BSP_STM32_RTEMS = enum.auto() +def determine_obsw_root_path() -> str: + for _ in range(5): + if os.path.exists("CMakeLists.txt"): + return os.path.abspath(os.curdir) + else: + os.chdir("..") -BspFolderDict = { - BspSelect.BSP_HOSTED.value: "bsp_hosted", - BspSelect.BSP_LINUX.value: "bsp_linux", - BspSelect.BSP_STM32_FREERTOS.value: "bsp_stm32_freertos", - BspSelect.BSP_STM32_RTEMS.value: "bsp_stm32_rtems", -} +PATH_VAR_ROOT = os.path.dirname(os.path.realpath(__file__)) +ROOT_DIR = PATH_VAR_ROOT +OBSW_ROOT_DIR = Path(determine_obsw_root_path()) +COMMON_SUBMODULE_NAME = "example_common" +EXAMPLE_COMMON_DIR = f"{OBSW_ROOT_DIR}/{COMMON_SUBMODULE_NAME}" +DATABASE_NAME = "eive_mod.db" +BSP_HOSTED = "bsp_hosted" diff --git a/generators/eive_mod.db b/generators/eive_mod.db new file mode 100644 index 0000000..35331f5 Binary files /dev/null and b/generators/eive_mod.db differ diff --git a/generators/events/event_parser.py b/generators/events/event_parser.py index 743a9b1..cd803d8 100644 --- a/generators/events/event_parser.py +++ b/generators/events/event_parser.py @@ -1,26 +1,23 @@ -#! /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 FSFW 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 +import os -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.utility.file_management import copy_file +from fsfwgen.core import get_console_logger +from definitions import BSP_HOSTED, ROOT_DIR, OBSW_ROOT_DIR, EXAMPLE_COMMON_DIR -from definitions import BspSelect, BspFolderDict - -# TODO: Ask from user or store in json file? -BSP_SELECT = BspSelect.BSP_HOSTED.value -BSP_FOLDER = BspFolderDict[BSP_SELECT] +LOGGER = get_console_logger() DATE_TODAY = datetime.datetime.now() DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S") @@ -33,49 +30,68 @@ MOVE_CSV_FILE = True PARSE_HOST_BSP = True -CSV_FILENAME = f"{BSP_FOLDER}_events.csv" -CSV_MOVE_DESTINATION = "../" +# Store these files relative to the events folder +CPP_FILENAME = f"{os.path.dirname(os.path.realpath(__file__))}/translateEvents.cpp" +CPP_H_FILENAME = f"{os.path.dirname(os.path.realpath(__file__))}/translateEvents.h" -CPP_FILENAME = "translateEvents.cpp" -CPP_H_FILENAME = "translateEvents.h" - -CPP_COPY_DESTINATION = f"../../{BSP_FOLDER}/fsfwconfig/events/" +# Store this file in the root of the generators folder +CSV_FILENAME = f"{ROOT_DIR}/{BSP_HOSTED}_events.csv" +CSV_COPY_DEST = f"{OBSW_ROOT_DIR}/tmtc/config/events.csv" +FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/bsp_hosted/fsfwconfig" +CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/events/" FILE_SEPARATOR = ";" SUBSYSTEM_DEFINITION_DESTINATIONS = [ - f"../../{BSP_FOLDER}/fsfwconfig/events/subsystemIdRanges.h", - "../../fsfw/events/fwSubsystemIdRanges.h", - "../../example_common/config/commonSubsystemIds.h" + f"{FSFW_CONFIG_ROOT}/events/subsystemIdRanges.h", + f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/events/fwSubsystemIdRanges.h", + f"{EXAMPLE_COMMON_DIR}/config/commonSubsystemIds.h", +] +HEADER_DEFINITION_DESTINATIONS = [ + f"{OBSW_ROOT_DIR}/bsp_hosted", + f"{OBSW_ROOT_DIR}/fsfw/", + f"{FSFW_CONFIG_ROOT}" ] -HEADER_DEFINITION_DESTINATIONS = ["../../example_common/", "../../fsfw/", f"../../{BSP_FOLDER}"] - -def main(): - print("EventParser: Parsing events: ") - event_list = parse_events() - if GENERATE_CSV: +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 MOVE_CSV_FILE: - move_file(file_name=CSV_FILENAME, destination=CSV_MOVE_DESTINATION) - if GENERATE_CPP: + LOGGER.info(f"Copying CSV file to {CSV_COPY_DEST}") + copy_file( + filename=CSV_FILENAME, destination=CSV_COPY_DEST, delete_existing_file=True + ) + + 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 + 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 CPP translation 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( @@ -84,13 +100,9 @@ def parse_events(): # PrettyPrinter.pprint(event_headers) # myEventList = parseHeaderFiles(subsystem_table, event_headers) event_parser = EventParser(event_headers, subsystem_table) + event_parser.obsw_root_path = OBSW_ROOT_DIR 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 4b31b0e..6e6ef9d 100644 --- a/generators/events/translateEvents.cpp +++ b/generators/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** * @brief Auto-generated event translation file. Contains 78 translations. * @details - * Generated on: 2021-06-21 16:09:15 + * Generated on: 2022-05-20 09:11:07 */ #include "translateEvents.h" @@ -59,7 +59,6 @@ const char *MONITOR_CHANGED_STATE_STRING = "MONITOR_CHANGED_STATE"; const char *VALUE_BELOW_LOW_LIMIT_STRING = "VALUE_BELOW_LOW_LIMIT"; const char *VALUE_ABOVE_HIGH_LIMIT_STRING = "VALUE_ABOVE_HIGH_LIMIT"; const char *VALUE_OUT_OF_RANGE_STRING = "VALUE_OUT_OF_RANGE"; -const char *SWITCHING_TM_FAILED_STRING = "SWITCHING_TM_FAILED"; const char *CHANGING_MODE_STRING = "CHANGING_MODE"; const char *MODE_INFO_STRING = "MODE_INFO"; const char *FALLBACK_FAILED_STRING = "FALLBACK_FAILED"; @@ -83,167 +82,168 @@ const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; const char *CLOCK_SET_STRING = "CLOCK_SET"; const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; const char *TEST_STRING = "TEST"; +const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; -const char * translateEvents(Event event) { - switch( (event & 0xffff) ) { - case(2200): - return STORE_SEND_WRITE_FAILED_STRING; - case(2201): - return STORE_WRITE_FAILED_STRING; - case(2202): - return STORE_SEND_READ_FAILED_STRING; - case(2203): - return STORE_READ_FAILED_STRING; - case(2204): - return UNEXPECTED_MSG_STRING; - case(2205): - return STORING_FAILED_STRING; - case(2206): - return TM_DUMP_FAILED_STRING; - case(2207): - return STORE_INIT_FAILED_STRING; - case(2208): - return STORE_INIT_EMPTY_STRING; - case(2209): - return STORE_CONTENT_CORRUPTED_STRING; - case(2210): - return STORE_INITIALIZE_STRING; - case(2211): - return INIT_DONE_STRING; - case(2212): - return DUMP_FINISHED_STRING; - case(2213): - return DELETION_FINISHED_STRING; - case(2214): - return DELETION_FAILED_STRING; - case(2215): - return AUTO_CATALOGS_SENDING_FAILED_STRING; - case(2600): - return GET_DATA_FAILED_STRING; - case(2601): - return STORE_DATA_FAILED_STRING; - case(2800): - return DEVICE_BUILDING_COMMAND_FAILED_STRING; - case(2801): - return DEVICE_SENDING_COMMAND_FAILED_STRING; - case(2802): - return DEVICE_REQUESTING_REPLY_FAILED_STRING; - case(2803): - return DEVICE_READING_REPLY_FAILED_STRING; - case(2804): - return DEVICE_INTERPRETING_REPLY_FAILED_STRING; - case(2805): - return DEVICE_MISSED_REPLY_STRING; - case(2806): - return DEVICE_UNKNOWN_REPLY_STRING; - case(2807): - return DEVICE_UNREQUESTED_REPLY_STRING; - case(2808): - return INVALID_DEVICE_COMMAND_STRING; - case(2809): - return MONITORING_LIMIT_EXCEEDED_STRING; - case(2810): - return MONITORING_AMBIGUOUS_STRING; - case(4201): - return FUSE_CURRENT_HIGH_STRING; - case(4202): - return FUSE_WENT_OFF_STRING; - case(4204): - return POWER_ABOVE_HIGH_LIMIT_STRING; - case(4205): - return POWER_BELOW_LOW_LIMIT_STRING; - case(4300): - return SWITCH_WENT_OFF_STRING; - case(5000): - return HEATER_ON_STRING; - case(5001): - return HEATER_OFF_STRING; - case(5002): - return HEATER_TIMEOUT_STRING; - case(5003): - return HEATER_STAYED_ON_STRING; - case(5004): - return HEATER_STAYED_OFF_STRING; - case(5200): - return TEMP_SENSOR_HIGH_STRING; - case(5201): - return TEMP_SENSOR_LOW_STRING; - case(5202): - return TEMP_SENSOR_GRADIENT_STRING; - case(5901): - return COMPONENT_TEMP_LOW_STRING; - case(5902): - return COMPONENT_TEMP_HIGH_STRING; - case(5903): - return COMPONENT_TEMP_OOL_LOW_STRING; - case(5904): - return COMPONENT_TEMP_OOL_HIGH_STRING; - case(5905): - return TEMP_NOT_IN_OP_RANGE_STRING; - case(7101): - return FDIR_CHANGED_STATE_STRING; - case(7102): - return FDIR_STARTS_RECOVERY_STRING; - case(7103): - return FDIR_TURNS_OFF_DEVICE_STRING; - case(7201): - return MONITOR_CHANGED_STATE_STRING; - case(7202): - return VALUE_BELOW_LOW_LIMIT_STRING; - case(7203): - return VALUE_ABOVE_HIGH_LIMIT_STRING; - case(7204): - return VALUE_OUT_OF_RANGE_STRING; - case(7301): - return SWITCHING_TM_FAILED_STRING; - case(7400): - return CHANGING_MODE_STRING; - case(7401): - return MODE_INFO_STRING; - case(7402): - return FALLBACK_FAILED_STRING; - case(7403): - return MODE_TRANSITION_FAILED_STRING; - case(7404): - return CANT_KEEP_MODE_STRING; - case(7405): - return OBJECT_IN_INVALID_MODE_STRING; - case(7406): - return FORCING_MODE_STRING; - case(7407): - return MODE_CMD_REJECTED_STRING; - case(7506): - return HEALTH_INFO_STRING; - case(7507): - return CHILD_CHANGED_HEALTH_STRING; - case(7508): - return CHILD_PROBLEMS_STRING; - case(7509): - return OVERWRITING_HEALTH_STRING; - case(7510): - return TRYING_RECOVERY_STRING; - case(7511): - return RECOVERY_STEP_STRING; - case(7512): - return RECOVERY_DONE_STRING; - case(7900): - return RF_AVAILABLE_STRING; - case(7901): - return RF_LOST_STRING; - case(7902): - return BIT_LOCK_STRING; - case(7903): - return BIT_LOCK_LOST_STRING; - case(7905): - return FRAME_PROCESSING_FAILED_STRING; - case(8900): - return CLOCK_SET_STRING; - case(8901): - return CLOCK_SET_FAILURE_STRING; - case(9700): - return TEST_STRING; - default: - return "UNKNOWN_EVENT"; - } - return 0; +const char *translateEvents(Event event) { + switch ((event & 0xFFFF)) { + case (2200): + return STORE_SEND_WRITE_FAILED_STRING; + case (2201): + return STORE_WRITE_FAILED_STRING; + case (2202): + return STORE_SEND_READ_FAILED_STRING; + case (2203): + return STORE_READ_FAILED_STRING; + case (2204): + return UNEXPECTED_MSG_STRING; + case (2205): + return STORING_FAILED_STRING; + case (2206): + return TM_DUMP_FAILED_STRING; + case (2207): + return STORE_INIT_FAILED_STRING; + case (2208): + return STORE_INIT_EMPTY_STRING; + case (2209): + return STORE_CONTENT_CORRUPTED_STRING; + case (2210): + return STORE_INITIALIZE_STRING; + case (2211): + return INIT_DONE_STRING; + case (2212): + return DUMP_FINISHED_STRING; + case (2213): + return DELETION_FINISHED_STRING; + case (2214): + return DELETION_FAILED_STRING; + case (2215): + return AUTO_CATALOGS_SENDING_FAILED_STRING; + case (2600): + return GET_DATA_FAILED_STRING; + case (2601): + return STORE_DATA_FAILED_STRING; + case (2800): + return DEVICE_BUILDING_COMMAND_FAILED_STRING; + case (2801): + return DEVICE_SENDING_COMMAND_FAILED_STRING; + case (2802): + return DEVICE_REQUESTING_REPLY_FAILED_STRING; + case (2803): + return DEVICE_READING_REPLY_FAILED_STRING; + case (2804): + return DEVICE_INTERPRETING_REPLY_FAILED_STRING; + case (2805): + return DEVICE_MISSED_REPLY_STRING; + case (2806): + return DEVICE_UNKNOWN_REPLY_STRING; + case (2807): + return DEVICE_UNREQUESTED_REPLY_STRING; + case (2808): + return INVALID_DEVICE_COMMAND_STRING; + case (2809): + return MONITORING_LIMIT_EXCEEDED_STRING; + case (2810): + return MONITORING_AMBIGUOUS_STRING; + case (4201): + return FUSE_CURRENT_HIGH_STRING; + case (4202): + return FUSE_WENT_OFF_STRING; + case (4204): + return POWER_ABOVE_HIGH_LIMIT_STRING; + case (4205): + return POWER_BELOW_LOW_LIMIT_STRING; + case (4300): + return SWITCH_WENT_OFF_STRING; + case (5000): + return HEATER_ON_STRING; + case (5001): + return HEATER_OFF_STRING; + case (5002): + return HEATER_TIMEOUT_STRING; + case (5003): + return HEATER_STAYED_ON_STRING; + case (5004): + return HEATER_STAYED_OFF_STRING; + case (5200): + return TEMP_SENSOR_HIGH_STRING; + case (5201): + return TEMP_SENSOR_LOW_STRING; + case (5202): + return TEMP_SENSOR_GRADIENT_STRING; + case (5901): + return COMPONENT_TEMP_LOW_STRING; + case (5902): + return COMPONENT_TEMP_HIGH_STRING; + case (5903): + return COMPONENT_TEMP_OOL_LOW_STRING; + case (5904): + return COMPONENT_TEMP_OOL_HIGH_STRING; + case (5905): + return TEMP_NOT_IN_OP_RANGE_STRING; + case (7101): + return FDIR_CHANGED_STATE_STRING; + case (7102): + return FDIR_STARTS_RECOVERY_STRING; + case (7103): + return FDIR_TURNS_OFF_DEVICE_STRING; + case (7201): + return MONITOR_CHANGED_STATE_STRING; + case (7202): + return VALUE_BELOW_LOW_LIMIT_STRING; + case (7203): + return VALUE_ABOVE_HIGH_LIMIT_STRING; + case (7204): + return VALUE_OUT_OF_RANGE_STRING; + case (7400): + return CHANGING_MODE_STRING; + case (7401): + return MODE_INFO_STRING; + case (7402): + return FALLBACK_FAILED_STRING; + case (7403): + return MODE_TRANSITION_FAILED_STRING; + case (7404): + return CANT_KEEP_MODE_STRING; + case (7405): + return OBJECT_IN_INVALID_MODE_STRING; + case (7406): + return FORCING_MODE_STRING; + case (7407): + return MODE_CMD_REJECTED_STRING; + case (7506): + return HEALTH_INFO_STRING; + case (7507): + return CHILD_CHANGED_HEALTH_STRING; + case (7508): + return CHILD_PROBLEMS_STRING; + case (7509): + return OVERWRITING_HEALTH_STRING; + case (7510): + return TRYING_RECOVERY_STRING; + case (7511): + return RECOVERY_STEP_STRING; + case (7512): + return RECOVERY_DONE_STRING; + case (7900): + return RF_AVAILABLE_STRING; + case (7901): + return RF_LOST_STRING; + case (7902): + return BIT_LOCK_STRING; + case (7903): + return BIT_LOCK_LOST_STRING; + case (7905): + return FRAME_PROCESSING_FAILED_STRING; + case (8900): + return CLOCK_SET_STRING; + case (8901): + return CLOCK_SET_FAILURE_STRING; + case (9700): + return TEST_STRING; + case (10600): + return CHANGE_OF_SETUP_PARAMETER_STRING; + default: + return "UNKNOWN_EVENT"; + } + return 0; } diff --git a/generators/events/translateEvents.h b/generators/events/translateEvents.h index 9034dcf..9955431 100644 --- a/generators/events/translateEvents.h +++ b/generators/events/translateEvents.h @@ -1,8 +1,8 @@ #ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ #define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ -#include +#include "fsfw/events/Event.h" -const char * translateEvents(Event event); +const char *translateEvents(Event event); #endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */ diff --git a/generators/fsfwgen b/generators/fsfwgen index e6f5ff1..6d423f7 160000 --- a/generators/fsfwgen +++ b/generators/fsfwgen @@ -1 +1 @@ -Subproject commit e6f5ff18129984b591a6a286968b1ace42c278b2 +Subproject commit 6d423f7106e49f93743fb69e9436e1e652f9e001 diff --git a/generators/gen.py b/generators/gen.py new file mode 100755 index 0000000..be0dfa2 --- /dev/null +++ b/generators/gen.py @@ -0,0 +1,42 @@ +#!/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="FSFW") + 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" or args.type == "retvals": + LOGGER.info("Generating returnvalue data") + time.sleep(0.05) + parse_returnvalues() + elif args.type == "all": + LOGGER.info("Generating all data") + parse_objects() + parse_events() + # parse_returnvalues() + + +if __name__ == "__main__": + main() diff --git a/generators/objects/objects.py b/generators/objects/objects.py index b3b19ca..3e8211d 100644 --- a/generators/objects/objects.py +++ b/generators/objects/objects.py @@ -1,21 +1,23 @@ -#! /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 +import os -from fsfwgen.objects.objects import ObjectDefinitionParser, sql_object_exporter, write_translation_file, \ - export_object_file, write_translation_header_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 DATABASE_NAME, BspSelect, BspFolderDict +from fsfwgen.utility.file_management import copy_file +from definitions import BSP_HOSTED, DATABASE_NAME, OBSW_ROOT_DIR, ROOT_DIR, EXAMPLE_COMMON_DIR + +LOGGER = get_console_logger() DATE_TODAY = datetime.datetime.now() DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S") @@ -27,25 +29,24 @@ COPY_CPP = True GENERATE_HEADER = True -PARSE_HOST_BSP = False +FSFW_CONFIG_ROOT = f"{BSP_HOSTED}/fsfwconfig" EXPORT_TO_SQL = True -BSP_SELECT = BspSelect.BSP_HOSTED.value -BSP_FOLDER = BspFolderDict[BSP_SELECT] - -CPP_COPY_DESTINATION = f"../../{BSP_FOLDER}/fsfwconfig/objects/" -CSV_MOVE_DESTINATION = "../" -CPP_FILENAME = "translateObjects.cpp" -CPP_H_FILENAME = "translateObjects.h" -CSV_OBJECT_FILENAME = f"{BSP_FOLDER}_objects.csv" +CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/objects/" +CPP_FILENAME = f"{os.path.dirname(os.path.realpath(__file__))}//translateObjects.cpp" +CPP_H_FILENAME = f"{os.path.dirname(os.path.realpath(__file__))}//translateObjects.h" +CSV_OBJECT_FILENAME = f"{ROOT_DIR}/{BSP_HOSTED}_objects.csv" +CSV_COPY_DEST = f"{OBSW_ROOT_DIR}/tmtc/config/objects.csv" FILE_SEPARATOR = ";" -OBJECTS_PATH = f"../../{BSP_FOLDER}/fsfwconfig/objects/systemObjectList.h" -FRAMEWORK_OBJECTS_PATH = "../../fsfw/objectmanager/frameworkObjects.h" -COMMON_OBJECTS_PATH = "../../common/config/commonSystemObjects.h" -OBJECTS_DEFINITIONS = [OBJECTS_PATH, FRAMEWORK_OBJECTS_PATH, COMMON_OBJECTS_PATH] +OBJECTS_PATH = f"{FSFW_CONFIG_ROOT}/objects/systemObjectList.h" +FRAMEWORK_OBJECT_PATH = ( + f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/objectmanager/frameworkObjects.h" +) +COMMON_OBJECTS_PATH = f"{EXAMPLE_COMMON_DIR}/config/commonObjects.h" +OBJECTS_DEFINITIONS = [OBJECTS_PATH, FRAMEWORK_OBJECT_PATH, COMMON_OBJECTS_PATH] SQL_DELETE_OBJECTS_CMD = """ DROP TABLE IF EXISTS Objects @@ -65,45 +66,52 @@ 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 C++ translation 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) + LOGGER.info("ObjectParser: Copying object file to " + CPP_COPY_DESTINATION) copy_file(CPP_FILENAME, CPP_COPY_DESTINATION) if GENERATE_HEADER: write_translation_header_file(filename=CPP_H_FILENAME) 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() + LOGGER.info("ObjectParser: Generating text export") + export_object_file( + filename=CSV_OBJECT_FILENAME, + object_list=list_items, + file_separator=FILE_SEPARATOR, + ) + copy_file( + filename=CSV_OBJECT_FILENAME, + destination=CSV_COPY_DEST, + delete_existing_file=True, + ) diff --git a/generators/objects/translateObjects.cpp b/generators/objects/translateObjects.cpp index d9c242e..9d92e60 100644 --- a/generators/objects/translateObjects.cpp +++ b/generators/objects/translateObjects.cpp @@ -1,8 +1,8 @@ /** - * @brief Auto-generated object translation file. + * @brief Auto-generated object translation file. * @details - * Contains 37 translations. - * Generated on: 2021-05-28 18:12:56 + * Contains 39 translations. + * Generated on: 2022-05-20 09:16:37 */ #include "translateObjects.h" @@ -18,10 +18,12 @@ const char *PUS_SERVICE_3_HOUSEKEEPING_STRING = "PUS_SERVICE_3_HOUSEKEEPING"; const char *PUS_SERVICE_5_EVENT_REPORTING_STRING = "PUS_SERVICE_5_EVENT_REPORTING"; const char *PUS_SERVICE_8_FUNCTION_MGMT_STRING = "PUS_SERVICE_8_FUNCTION_MGMT"; const char *PUS_SERVICE_9_TIME_MGMT_STRING = "PUS_SERVICE_9_TIME_MGMT"; +const char *PUS_SERVICE_11_TC_SCHEDULER_STRING = "PUS_SERVICE_11_TC_SCHEDULER"; const char *PUS_SERVICE_17_TEST_STRING = "PUS_SERVICE_17_TEST"; const char *PUS_SERVICE_20_PARAMETERS_STRING = "PUS_SERVICE_20_PARAMETERS"; const char *PUS_SERVICE_200_MODE_MGMT_STRING = "PUS_SERVICE_200_MODE_MGMT"; const char *PUS_SERVICE_201_HEALTH_STRING = "PUS_SERVICE_201_HEALTH"; +const char *CFDP_PACKET_DISTRIBUTOR_STRING = "CFDP_PACKET_DISTRIBUTOR"; const char *HEALTH_TABLE_STRING = "HEALTH_TABLE"; const char *MODE_STORE_STRING = "MODE_STORE"; const char *EVENT_MANAGER_STRING = "EVENT_MANAGER"; @@ -31,8 +33,8 @@ const char *TM_STORE_STRING = "TM_STORE"; const char *IPC_STORE_STRING = "IPC_STORE"; const char *TIME_STAMPER_STRING = "TIME_STAMPER"; const char *FSFW_OBJECTS_END_STRING = "FSFW_OBJECTS_END"; -const char *UDP_BRIDGE_STRING = "UDP_BRIDGE"; -const char *UDP_POLLING_TASK_STRING = "UDP_POLLING_TASK"; +const char *TCPIP_TMTC_BRIDGE_STRING = "TCPIP_TMTC_BRIDGE"; +const char *TCPIP_TMTC_POLLING_TASK_STRING = "TCPIP_TMTC_POLLING_TASK"; const char *CCSDS_DISTRIBUTOR_STRING = "CCSDS_DISTRIBUTOR"; const char *PUS_DISTRIBUTOR_STRING = "PUS_DISTRIBUTOR"; const char *TM_FUNNEL_STRING = "TM_FUNNEL"; @@ -44,84 +46,88 @@ const char *TEST_DUMMY_5_STRING = "TEST_DUMMY_5"; const char *TEST_TASK_STRING = "TEST_TASK"; const char *NO_OBJECT_STRING = "NO_OBJECT"; -const char* translateObject(object_id_t object) { - switch( (object & 0xFFFFFFFF) ) { - case 0x4100CAFE: - return TEST_ASSEMBLY_STRING; - case 0x4301CAFE: - return TEST_CONTROLLER_STRING; - case 0x4401AFFE: - return TEST_DEVICE_HANDLER_0_STRING; - case 0x4402AFFE: - return TEST_DEVICE_HANDLER_1_STRING; - case 0x4900AFFE: - return TEST_ECHO_COM_IF_STRING; - case 0x53000000: - return FSFW_OBJECTS_START_STRING; - case 0x53000001: - return PUS_SERVICE_1_VERIFICATION_STRING; - case 0x53000002: - return PUS_SERVICE_2_DEVICE_ACCESS_STRING; - case 0x53000003: - return PUS_SERVICE_3_HOUSEKEEPING_STRING; - case 0x53000005: - return PUS_SERVICE_5_EVENT_REPORTING_STRING; - case 0x53000008: - return PUS_SERVICE_8_FUNCTION_MGMT_STRING; - case 0x53000009: - return PUS_SERVICE_9_TIME_MGMT_STRING; - case 0x53000017: - return PUS_SERVICE_17_TEST_STRING; - case 0x53000020: - return PUS_SERVICE_20_PARAMETERS_STRING; - case 0x53000200: - return PUS_SERVICE_200_MODE_MGMT_STRING; - case 0x53000201: - return PUS_SERVICE_201_HEALTH_STRING; - case 0x53010000: - return HEALTH_TABLE_STRING; - case 0x53010100: - return MODE_STORE_STRING; - case 0x53030000: - return EVENT_MANAGER_STRING; - case 0x53040000: - return INTERNAL_ERROR_REPORTER_STRING; - case 0x534f0100: - return TC_STORE_STRING; - case 0x534f0200: - return TM_STORE_STRING; - case 0x534f0300: - return IPC_STORE_STRING; - case 0x53500010: - return TIME_STAMPER_STRING; - case 0x53ffffff: - return FSFW_OBJECTS_END_STRING; - case 0x62000300: - return UDP_BRIDGE_STRING; - case 0x62000400: - return UDP_POLLING_TASK_STRING; - case 0x63000000: - return CCSDS_DISTRIBUTOR_STRING; - case 0x63000001: - return PUS_DISTRIBUTOR_STRING; - case 0x63000002: - return TM_FUNNEL_STRING; - case 0x74000001: - return TEST_DUMMY_1_STRING; - case 0x74000002: - return TEST_DUMMY_2_STRING; - case 0x74000003: - return TEST_DUMMY_3_STRING; - case 0x74000004: - return TEST_DUMMY_4_STRING; - case 0x74000005: - return TEST_DUMMY_5_STRING; - case 0x7400CAFE: - return TEST_TASK_STRING; - case 0xFFFFFFFF: - return NO_OBJECT_STRING; - default: - return "UNKNOWN_OBJECT"; - } - return 0; +const char *translateObject(object_id_t object) { + switch ((object & 0xFFFFFFFF)) { + case 0x4100CAFE: + return TEST_ASSEMBLY_STRING; + case 0x4301CAFE: + return TEST_CONTROLLER_STRING; + case 0x4401AFFE: + return TEST_DEVICE_HANDLER_0_STRING; + case 0x4402AFFE: + return TEST_DEVICE_HANDLER_1_STRING; + case 0x4900AFFE: + return TEST_ECHO_COM_IF_STRING; + case 0x53000000: + return FSFW_OBJECTS_START_STRING; + case 0x53000001: + return PUS_SERVICE_1_VERIFICATION_STRING; + case 0x53000002: + return PUS_SERVICE_2_DEVICE_ACCESS_STRING; + case 0x53000003: + return PUS_SERVICE_3_HOUSEKEEPING_STRING; + case 0x53000005: + return PUS_SERVICE_5_EVENT_REPORTING_STRING; + case 0x53000008: + return PUS_SERVICE_8_FUNCTION_MGMT_STRING; + case 0x53000009: + return PUS_SERVICE_9_TIME_MGMT_STRING; + case 0x53000011: + return PUS_SERVICE_11_TC_SCHEDULER_STRING; + case 0x53000017: + return PUS_SERVICE_17_TEST_STRING; + case 0x53000020: + return PUS_SERVICE_20_PARAMETERS_STRING; + case 0x53000200: + return PUS_SERVICE_200_MODE_MGMT_STRING; + case 0x53000201: + return PUS_SERVICE_201_HEALTH_STRING; + case 0x53001000: + return CFDP_PACKET_DISTRIBUTOR_STRING; + case 0x53010000: + return HEALTH_TABLE_STRING; + case 0x53010100: + return MODE_STORE_STRING; + case 0x53030000: + return EVENT_MANAGER_STRING; + case 0x53040000: + return INTERNAL_ERROR_REPORTER_STRING; + case 0x534f0100: + return TC_STORE_STRING; + case 0x534f0200: + return TM_STORE_STRING; + case 0x534f0300: + return IPC_STORE_STRING; + case 0x53500010: + return TIME_STAMPER_STRING; + case 0x53ffffff: + return FSFW_OBJECTS_END_STRING; + case 0x62000300: + return TCPIP_TMTC_BRIDGE_STRING; + case 0x62000400: + return TCPIP_TMTC_POLLING_TASK_STRING; + case 0x63000000: + return CCSDS_DISTRIBUTOR_STRING; + case 0x63000001: + return PUS_DISTRIBUTOR_STRING; + case 0x63000002: + return TM_FUNNEL_STRING; + case 0x74000001: + return TEST_DUMMY_1_STRING; + case 0x74000002: + return TEST_DUMMY_2_STRING; + case 0x74000003: + return TEST_DUMMY_3_STRING; + case 0x74000004: + return TEST_DUMMY_4_STRING; + case 0x74000005: + return TEST_DUMMY_5_STRING; + case 0x7400CAFE: + return TEST_TASK_STRING; + case 0xFFFFFFFF: + return NO_OBJECT_STRING; + default: + return "UNKNOWN_OBJECT"; + } + return 0; } diff --git a/generators/objects/translateObjects.h b/generators/objects/translateObjects.h index dbf5b46..257912f 100644 --- a/generators/objects/translateObjects.h +++ b/generators/objects/translateObjects.h @@ -3,6 +3,6 @@ #include -const char* translateObject(object_id_t object); +const char *translateObject(object_id_t object); #endif /* FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_ */ diff --git a/generators/returnvalues/returnvalues_parser.py b/generators/returnvalues/returnvalues_parser.py index ff2f9e1..7460312 100644 --- a/generators/returnvalues/returnvalues_parser.py +++ b/generators/returnvalues/returnvalues_parser.py @@ -1,40 +1,40 @@ -#! /usr/bin/python3 +#! /usr/bin/env python3 # -*- coding: utf-8 -*- +"""Part of the MIB export tools for the FSFW project by """ -:file: returnvalues_parser.py -:brief: Part of the MOD export tools for the SOURCE project by KSat. -TODO: Integrate into Parser Structure instead of calling this file (no cpp file generated yet) -:details: -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.utility.file_management import copy_file 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 DATABASE_NAME, BspSelect, BspFolderDict +from definitions import BSP_HOSTED, DATABASE_NAME, ROOT_DIR, OBSW_ROOT_DIR, EXAMPLE_COMMON_DIR +LOGGER = get_console_logger() EXPORT_TO_FILE = True -MOVE_CSV_FILE = True +COPY_CSV_FILE = True EXPORT_TO_SQL = True PRINT_TABLES = True -BSP_SELECT = BspSelect.BSP_HOSTED.value -BSP_FOLDER = BspFolderDict[BSP_SELECT] -CSV_RETVAL_FILENAME = f"{BSP_FOLDER}_returnvalues.csv" -CSV_MOVE_DESTINATION = "../" -FILE_SEPARATOR = ';' +FILE_SEPARATOR = ";" MAX_STRING_LENGTH = 32 + +CSV_RETVAL_FILENAME = f"{ROOT_DIR}/{BSP_HOSTED}_returnvalues.csv" +CSV_COPY_DEST = f"{OBSW_ROOT_DIR}/tmtc/config/returnvalues.csv" +ADD_LINUX_FOLDER = False +FSFW_CONFIG_ROOT = f"{BSP_HOSTED}/fsfwconfig" + INTERFACE_DEFINITION_FILES = [ - "../../fsfw/returnvalues/FwClassIds.h", - "../../example_common/config/commonClassIds.h", - f"../../{BSP_FOLDER}/fsfwconfig/returnvalues/classIds.h" + f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/returnvalues/FwClassIds.h", + f"{EXAMPLE_COMMON_DIR}/config/commonClassIds.h", + f"{FSFW_CONFIG_ROOT}/returnvalues/classIds.h", ] -RETURNVALUE_DESTINATIONS = [ - "../../example_common/", "../../fsfw/", f"../../{BSP_FOLDER}" +RETURNVALUE_SOURCES = [ + f"{BSP_HOSTED}/", + f"{OBSW_ROOT_DIR}/fsfw/", + f"{EXAMPLE_COMMON_DIR}/", ] SQL_DELETE_RETURNVALUES_CMD = """ @@ -58,29 +58,38 @@ VALUES(?,?,?,?,?) """ -def main(): - returnvalue_table = parse_returnvalues() - print("") - 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 EXPORT_TO_SQL: - print("ReturnvalueParser: Exporting to SQL") - sql_retval_exporter(returnvalue_table, db_filename=f"../{DATABASE_NAME}") - - def parse_returnvalues(): - """ Core function to parse for the return values """ - interface_parser = InterfaceParser(file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES) + returnvalue_table = generate_returnvalue_table() + if EXPORT_TO_FILE: + ReturnValueParser.export_to_file( + CSV_RETVAL_FILENAME, returnvalue_table, FILE_SEPARATOR + ) + if COPY_CSV_FILE: + copy_file( + filename=CSV_RETVAL_FILENAME, + destination=CSV_COPY_DEST, + delete_existing_file=True, + ) + if EXPORT_TO_SQL: + LOGGER.info("ReturnvalueParser: Exporting to SQL") + sql_retval_exporter( + returnvalue_table, db_filename=f"{ROOT_DIR}/{DATABASE_NAME}" + ) + + +def generate_returnvalue_table(): + """Core function to parse for the return values""" + 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.obsw_root_path = OBSW_ROOT_DIR 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 @@ -89,14 +98,8 @@ def sql_retval_exporter(returnvalue_table, db_filename: str): 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/scripts/apply-clang-format.sh b/scripts/apply-clang-format.sh deleted file mode 100755 index 5079a70..0000000 --- a/scripts/apply-clang-format.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -if [[ ! -f README.md ]]; then - cd .. -fi - -find ./bsp_hosted -iname *.h -o -iname *.cpp -o -iname *.c | xargs clang-format --style=file -i -find ./example_common -iname *.h -o -iname *.cpp -o -iname *.c | xargs clang-format --style=file -i diff --git a/scripts/auto-formatter.sh b/scripts/auto-formatter.sh new file mode 100755 index 0000000..d9b970e --- /dev/null +++ b/scripts/auto-formatter.sh @@ -0,0 +1,32 @@ +#!/bin/bash +if [[ ! -f README.md ]]; then + cd .. +fi + +folder_list=( + "./bsp_hosted" + "./example_common" +) + +cmake_fmt="cmake-format" +file_selectors="-iname CMakeLists.txt" +if command -v ${cmake_fmt} &> /dev/null; then + echo "Auto-formatting all CMakeLists.txt files" + ${cmake_fmt} -i CMakeLists.txt + for dir in ${folder_list[@]}; do + find ${dir} ${file_selectors} | xargs ${cmake_fmt} -i + done +else + echo "No ${cmake_fmt} tool found, not formatting CMake files" +fi + +cpp_format="clang-format" +file_selectors="-iname *.h -o -iname *.cpp -o -iname *.c -o -iname *.tpp" +if command -v ${cpp_format} &> /dev/null; then + for dir in ${folder_list[@]}; do + echo "Auto-formatting C/C++ files in ${dir} recursively" + find ${dir} ${file_selectors} | xargs ${cpp_format} --style=file -i + done +else + echo "No ${cpp_format} tool found, not formatting C++/C files" +fi diff --git a/tmtc/.idea/runConfigurations/TMTC_CLI.xml b/tmtc/.idea/runConfigurations/TMTC_CLI.xml index 474a141..5758fd7 100644 --- a/tmtc/.idea/runConfigurations/TMTC_CLI.xml +++ b/tmtc/.idea/runConfigurations/TMTC_CLI.xml @@ -15,7 +15,7 @@