v1.6.0 #78

Merged
muellerr merged 147 commits from develop into main 2021-08-09 16:08:26 +02:00
127 changed files with 7353 additions and 2320 deletions

14
.gitignore vendored
View File

@@ -1,19 +1,15 @@
/build*
Debug
Debug*
Release
Release*
# Eclipse
.settings
.metadata
.project
.cproject
__pycache__
.idea
!misc/eclipse/**/.cproject
!misc/eclipse/**/.project
# Python
__pycache__
.idea
generators/*.db

View File

@@ -14,11 +14,13 @@ cmake_minimum_required(VERSION 3.13)
set(CMAKE_SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
if(TGT_BSP MATCHES "arm/q7s")
option(Q7S_SIMPLE_MODE OFF "Simple mode with a minimal main function")
option(EIVE_BUILD_WATCHDOG "Compile the OBSW watchdog insted" OFF)
option(BUILD_Q7S_SIMPLE_MODE OFF "Simple mode with a minimal main function")
endif()
option(ADD_ETL_LIB "Add ETL library" ON)
option(ADD_JSON_LIB "Add JSON librara" ON)
option(ADD_JSON_LIB "Add JSON library" ON)
option(EIVE_SYSROOT_MAGIC "Perform sysroot magic which might not be necessary" OFF)
if(NOT FSFW_OSAL)
set(FSFW_OSAL host CACHE STRING "OS for the FSFW.")
@@ -32,8 +34,13 @@ endif()
include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake)
pre_project_config()
set(PROJECT_NAME_TO_SET eive-obsw-$ENV{USERNAME})
if(EIVE_BUILD_WATCHDOG)
set(PROJECT_NAME_TO_SET eive-watchdog)
endif()
# Project Name
project(eive_obsw ASM C CXX)
project(${PROJECT_NAME_TO_SET} ASM C CXX)
################################################################################
# Pre-Sources preparation
@@ -60,6 +67,7 @@ set(MISSION_PATH mission)
set(TEST_PATH test/testtasks)
set(LINUX_PATH linux)
set(COMMON_PATH common)
set(WATCHDOG_PATH watchdog)
set(COMMON_CONFIG_PATH ${COMMON_PATH}/config)
set(FSFW_HAL_LIB_PATH fsfw_hal)
@@ -82,7 +90,7 @@ if(TGT_BSP)
OR TGT_BSP MATCHES "arm/beagleboneblack"
)
set(FSFW_CONFIG_PATH "linux/fsfwconfig")
if(NOT Q7S_SIMPLE_MODE)
if(NOT BUILD_Q7S_SIMPLE_MODE)
set(ADD_LINUX_FILES TRUE)
set(ADD_CSP_LIB TRUE)
set(FSFW_HAL_ADD_LINUX ON)
@@ -90,16 +98,19 @@ if(TGT_BSP)
endif()
if(${TGT_BSP} MATCHES "arm/raspberrypi")
add_definitions(-DRASPBERRY_PI)
# Used by configure file
set(RASPBERRY_PI ON)
set(FSFW_HAL_ADD_RASPBERRY_PI ON)
endif()
if(${TGT_BSP} MATCHES "arm/beagleboneblack")
add_definitions(-DBEAGLEBONEBLACK)
# Used by configure file
set(BEAGLEBONEBLACK ON)
endif()
if(${TGT_BSP} MATCHES "arm/q7s")
add_definitions(-DXIPHOS_Q7S)
# Used by configure file
set(XIPHOS_Q7S ON)
endif()
else()
# Required by FSFW library
@@ -107,14 +118,17 @@ else()
endif()
# Configuration files
configure_file(${COMMON_CONFIG_PATH}/commonConfig.h.in commonConfig.h)
configure_file(${FSFW_CONFIG_PATH}/FSFWConfig.h.in FSFWConfig.h)
configure_file(${FSFW_CONFIG_PATH}/OBSWConfig.h.in OBSWConfig.h)
if(${TGT_BSP} MATCHES "arm/q7s")
configure_file(${BSP_PATH}/boardconfig/q7sConfig.h.in q7sConfig.h)
elseif(${TGT_BSP} MATCHES "arm/raspberrypi")
configure_file(${BSP_PATH}/boardconfig/rpiConfig.h.in rpiConfig.h)
if(NOT EIVE_BUILD_WATCHDOG)
configure_file(${COMMON_CONFIG_PATH}/commonConfig.h.in commonConfig.h)
configure_file(${FSFW_CONFIG_PATH}/FSFWConfig.h.in FSFWConfig.h)
configure_file(${FSFW_CONFIG_PATH}/OBSWConfig.h.in OBSWConfig.h)
if(${TGT_BSP} MATCHES "arm/q7s")
configure_file(${BSP_PATH}/boardconfig/q7sConfig.h.in q7sConfig.h)
elseif(${TGT_BSP} MATCHES "arm/raspberrypi")
configure_file(${BSP_PATH}/boardconfig/rpiConfig.h.in rpiConfig.h)
endif()
endif()
configure_file(${WATCHDOG_PATH}/watchdogConf.h.in watchdogConf.h)
# Set common config path for FSFW
set(FSFW_ADDITIONAL_INC_PATHS
@@ -131,26 +145,28 @@ set(LWGPS_CONFIG_PATH "${COMMON_PATH}/config")
# Add executable
add_executable(${TARGET_NAME})
if(ADD_CSP_LIB)
add_subdirectory(${CSP_LIB_PATH})
endif()
if(ADD_ETL_LIB)
add_subdirectory(${ETL_LIB_PATH})
endif()
if(ADD_LINUX_FILES)
add_subdirectory(${LINUX_PATH})
endif()
if(ADD_JSON_LIB)
add_subdirectory(${LIB_JSON_PATH})
endif()
add_subdirectory(${BSP_PATH})
add_subdirectory(${COMMON_PATH})
if(NOT Q7S_SIMPLE_MODE)
if(NOT EIVE_BUILD_WATCHDOG)
if(ADD_LINUX_FILES)
add_subdirectory(${LINUX_PATH})
endif()
add_subdirectory(${BSP_PATH})
add_subdirectory(${COMMON_PATH})
if(ADD_CSP_LIB)
add_subdirectory(${CSP_LIB_PATH})
endif()
endif()
if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT EIVE_BUILD_WATCHDOG))
add_subdirectory(${LWGPS_LIB_PATH})
add_subdirectory(${FSFW_PATH})
add_subdirectory(${MISSION_PATH})
@@ -158,6 +174,9 @@ if(NOT Q7S_SIMPLE_MODE)
add_subdirectory(${ARCSEC_LIB_PATH})
endif()
if(EIVE_BUILD_WATCHDOG)
add_subdirectory(${WATCHDOG_PATH})
endif()
################################################################################
# Post-Sources preparation
@@ -165,35 +184,42 @@ endif()
set_property(CACHE FSFW_OSAL PROPERTY STRINGS host linux)
if(NOT Q7S_SIMPLE_MODE)
if((NOT BUILD_Q7S_SIMPLE_MODE) AND (NOT EIVE_BUILD_WATCHDOG))
# Add libraries for all sources.
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_FSFW_NAME}
${LIB_OS_NAME}
${LIB_LWGPS_NAME}
${LIB_ARCSEC}
${LIB_CXX_FS}
)
endif()
if(NOT EIVE_BUILD_WATCHDOG)
if(ADD_CSP_LIB)
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_CSP_NAME}
)
endif()
endif()
if(ADD_ETL_LIB)
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_ETL_NAME}
)
endif()
if(ADD_CSP_LIB)
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_CSP_NAME}
)
endif()
if(ADD_JSON_LIB)
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_JSON_NAME}
)
endif()
target_link_libraries(${TARGET_NAME} PRIVATE
${LIB_CXX_FS}
)
# Add include paths for all sources.
target_include_directories(${TARGET_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
@@ -249,10 +275,14 @@ if(NOT CMAKE_SIZE)
endif()
endif()
if(TGT_BSP)
set(TARGET_STRING "Target BSP: ${TGT_BSP}")
if(EIVE_BUILD_WATCHDOG)
set(TARGET_STRING "OBSW Watchdog")
else()
set(TARGET_STRING "Target BSP: Hosted")
if(TGT_BSP)
set(TARGET_STRING "Target BSP: ${TGT_BSP}")
else()
set(TARGET_STRING "Target BSP: Hosted")
endif()
endif()
string(CONCAT POST_BUILD_COMMENT

1000
README.md

File diff suppressed because it is too large Load Diff

19
automation/Dockerfile-q7s Normal file
View File

@@ -0,0 +1,19 @@
FROM ubuntu:focal
RUN apt-get update
RUN apt-get --yes upgrade
RUN apt-get --yes install cmake libgpiod-dev xz-utils nano curl
# Q7S root filesystem, required for cross-compilation.
RUN mkdir -p /usr/rootfs; \
curl https://buggy.irs.uni-stuttgart.de/eive/tools/cortexa9hf-neon-xiphos-linux-gnueabi.tar.gz \
| tar -xz -C /usr/rootfs
# Cross compiler
RUN mkdir -p /usr/tools; \
curl https://buggy.irs.uni-stuttgart.de/eive/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.gz \
| tar -xz -C /usr/tools
ENV Q7S_SYSROOT="/usr/rootfs/cortexa9hf-neon-xiphos-linux-gnueabi"
ENV PATH=$PATH:"/usr/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin"

49
automation/Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,49 @@
pipeline {
agent any
stages {
stage('Build Container') {
when {
changeset "automation/Dockerfile-q7s"
branch 'develop'
}
steps {
sh 'docker build -t eive-fsw-build-q7s:gcc8 - < automation/Dockerfile-q7s'
}
}
stage('Clean') {
when {
anyOf {
changelog 'cleanCI'
changeset '*.cmake'
changeset 'CMakeLists.txt'
}
}
steps {
sh 'rm -rf build-q7s-debug'
}
}
stage('Build Q7S') {
agent {
docker {
image 'eive-fsw-build-q7s:gcc8'
reuseNode true
}
}
steps {
dir('build-q7s-debug') {
sh 'cmake -DTGT_BSP="arm/q7s" -DCMAKE_BUILD_TYPE=Debug -DFSFW_OSAL=linux ..'
sh 'cmake --build . -j'
}
}
}
stage('Deploy') {
when {
tag 'v*.*.*'
}
steps {
sh 'echo Deploying'
}
}
}
}

View File

@@ -70,15 +70,15 @@ void initmission::initTasks() {
}
/* UDP bridge */
PeriodicTaskIF* udpBridgeTask = factory->createPeriodicTask(
"UDP_UNIX_BRIDGE", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc);
result = udpBridgeTask->addComponent(objects::UDP_BRIDGE);
PeriodicTaskIF* tmtcBridgeTask = factory->createPeriodicTask(
"TMTC_UNIX_BRIDGE", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc);
result = tmtcBridgeTask->addComponent(objects::TMTC_BRIDGE);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "Add component UDP Unix Bridge failed" << std::endl;
}
PeriodicTaskIF* udpPollingTask = factory->createPeriodicTask(
PeriodicTaskIF* tmtcPollingTask = factory->createPeriodicTask(
"UDP_POLLING", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
result = udpPollingTask->addComponent(objects::UDP_POLLING_TASK);
result = tmtcPollingTask->addComponent(objects::TMTC_POLLING_TASK);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "Add component UDP Polling failed" << std::endl;
}
@@ -142,8 +142,8 @@ void initmission::initTasks() {
sif::info << "Starting tasks.." << std::endl;
tmTcDistributor->startTask();
udpBridgeTask->startTask();
udpPollingTask->startTask();
tmtcBridgeTask->startTask();
tmtcPollingTask->startTask();
pusVerification->startTask();
pusEvents->startTask();

View File

@@ -1,6 +1,5 @@
#include "ObjectFactory.h"
#include <OBSWConfig.h>
#include "OBSWConfig.h"
#include <objects/systemObjectList.h>
#include <tmtc/apid.h>
#include <tmtc/pusIds.h>
@@ -11,8 +10,13 @@
#include <mission/core/GenericFactory.h>
#include <mission/utility/TmFunnel.h>
#include <fsfw/osal/common/UdpTcPollingTask.h>
#include <fsfw/osal/common/UdpTmTcBridge.h>
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
#include "fsfw/osal/common/UdpTcPollingTask.h"
#include "fsfw/osal/common/UdpTmTcBridge.h"
#else
#include "fsfw/osal/common/TcpTmTcBridge.h"
#include "fsfw/osal/common/TcpTmTcServer.h"
#endif
#include <fsfw/tmtcpacket/pus/tm.h>
@@ -28,7 +32,7 @@ void Factory::setStaticFrameworkObjectIds(){
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
TmFunnel::downlinkDestination = objects::UDP_BRIDGE;
TmFunnel::downlinkDestination = objects::TMTC_BRIDGE;
// No storage object for now.
TmFunnel::storageDestination = objects::NO_OBJECT;
@@ -40,7 +44,18 @@ void ObjectFactory::produce(void* args){
Factory::setStaticFrameworkObjectIds();
ObjectFactory::produceGenericObjects();
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
sif::info << "Setting up UDP TMTC bridge with listener port " <<
UdpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#else
sif::info << "Setting up TCP TMTC bridge with listener port " <<
TcpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#endif
new TestTask(objects::TEST_TASK);
}

View File

@@ -1,9 +1,10 @@
#include "InitMission.h"
#include "OBSWVersion.h"
#include "fsfw/FSFWVersion.h"
#include "fsfw/tasks/TaskFactory.h"
#include <OBSWVersion.h>
#include <fsfw/tasks/TaskFactory.h>
#include <iostream>
#ifdef WIN32
static const char* COMPILE_PRINTOUT = "Windows";
#elif LINUX
@@ -20,8 +21,9 @@ int main(void)
{
std::cout << "-- EIVE OBSW --" << std::endl;
std::cout << "-- Compiled for " << COMPILE_PRINTOUT << " --" << std::endl;
std::cout << "-- Software version " << SW_NAME << " v" << SW_VERSION << "."
<< SW_SUBVERSION << "." << SW_REVISION << " -- " << std::endl;
std::cout << "-- OBSW " << SW_NAME << " v" << SW_VERSION << "." << SW_SUBVERSION <<
"." << SW_REVISION << ", FSFW v" << FSFW_VERSION << "." << FSFW_SUBVERSION << "." <<
FSFW_REVISION << "--" << std::endl;
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
initmission::initMission();

View File

@@ -66,13 +66,13 @@ void initmission::initTasks() {
/* UDP bridge */
PeriodicTaskIF* udpBridgeTask = factory->createPeriodicTask(
"UDP_UNIX_BRIDGE", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc);
result = udpBridgeTask->addComponent(objects::UDP_BRIDGE);
result = udpBridgeTask->addComponent(objects::TMTC_BRIDGE);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "Add component UDP Unix Bridge failed" << std::endl;
}
PeriodicTaskIF* udpPollingTask = factory->createPeriodicTask(
"UDP_POLLING", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
result = udpPollingTask->addComponent(objects::UDP_POLLING_TASK);
result = udpPollingTask->addComponent(objects::TMTC_POLLING_TASK);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::error << "Add component UDP Polling failed" << std::endl;
}

View File

@@ -1,5 +1,5 @@
#include <fsfw/hal/linux/uart/UartComIF.h>
#include <fsfw/hal/linux/uart/UartCookie.h>
#include <fsfw_hal/linux/uart/UartComIF.h>
#include <fsfw_hal/linux/uart/UartCookie.h>
#include <mission/devices/GPSHyperionHandler.h>
#include "ObjectFactory.h"
@@ -31,12 +31,12 @@
#include "fsfw/osal/common/UdpTmTcBridge.h"
#include "fsfw/osal/common/UdpTcPollingTask.h"
#include "fsfw/hal/devicehandlers/GyroL3GD20Handler.h"
#include "fsfw/hal/linux/gpio/LinuxLibgpioIF.h"
#include "fsfw/hal/linux/rpi/GpioRPi.h"
#include "fsfw/hal/common/gpio/GpioCookie.h"
#include "fsfw/hal/linux/spi/SpiCookie.h"
#include "fsfw/hal/linux/spi/SpiComIF.h"
#include "fsfw_hal/devicehandlers/GyroL3GD20Handler.h"
#include "fsfw_hal/linux/gpio/LinuxLibgpioIF.h"
#include "fsfw_hal/linux/rpi/GpioRPi.h"
#include "fsfw_hal/common/gpio/GpioCookie.h"
#include "fsfw_hal/linux/spi/SpiCookie.h"
#include "fsfw_hal/linux/spi/SpiComIF.h"
void Factory::setStaticFrameworkObjectIds() {
PusServiceBase::packetSource = objects::PUS_PACKET_DISTRIBUTOR;
@@ -45,7 +45,7 @@ void Factory::setStaticFrameworkObjectIds() {
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
TmFunnel::downlinkDestination = objects::UDP_BRIDGE;
TmFunnel::downlinkDestination = objects::TMTC_BRIDGE;
// No storage object for now.
TmFunnel::storageDestination = objects::NO_OBJECT;
@@ -59,8 +59,8 @@ void ObjectFactory::produce(void* args){
Factory::setStaticFrameworkObjectIds();
ObjectFactory::produceGenericObjects();
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
GpioIF* gpioIF = new LinuxLibgpioIF(objects::GPIO_IF);
GpioCookie* gpioCookie = nullptr;

View File

@@ -1,35 +0,0 @@
FROM ubuntu:latest
# FROM alpine:latest
ENV TZ=Europe/Berlin
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -y curl cmake g++
# Q7S root filesystem, required for cross-compilation. Use IPv6 for curl
RUN mkdir -p /usr/rootfs; \
curl -6 https://eive-cloud.irs.uni-stuttgart.de/index.php/s/dnfMy9kGpgynN6J/download/cortexa9hf-neon-xiphos-linux-gnueabi.tar.gz \
| tar xvz -C /usr/rootfs
# Q7S C++ cross-compiler. Use IPv6 for curl
RUN mkdir -p /usr/tools; \
curl -6 https://eive-cloud.irs.uni-stuttgart.de/index.php/s/RMsbHydJc6PSqcz/download/gcc-arm-linux-gnueabi.tar.gz \
| tar xvz -C /usr/tools
# RUN apk add cmake make g++
# Required for cmake build
ENV Q7S_SYSROOT="/usr/rootfs/cortexa9hf-neon-xiphos-linux-gnueabi"
ENV PATH=$PATH:"/usr/tools/gcc-arm-linux-gnueabi/bin"
WORKDIR /usr/src/app
COPY . .
RUN set -ex; \
rm -rf build-q7s; \
mkdir build-q7s; \
cd build-q7s; \
cmake -DCMAKE_BUILD_TYPE=Release -DOS_FSFW=linux -DTGT_BSP="arm/q7s" ..;
ENTRYPOINT ["cmake", "--build", "build-q7s"]
CMD ["-j"]
# CMD ["bash"]

View File

@@ -5,9 +5,9 @@
#cmakedefine01 Q7S_SIMPLE_MODE
#define Q7S_SD_NONE 0
#define Q7S_SD_COLD_REDUNDANT 1
#define Q7S_SD_HOT_REDUNDANT 2
#define Q7S_SD_NONE 0
#define Q7S_SD_COLD_REDUNDANT 1
#define Q7S_SD_HOT_REDUNDANT 2
// The OBSW will perform different actions to set up the SD cards depending on the flag set here
// Set to Q7S_SD_NONE: Don't do anything
// Set to Q7S_COLD_REDUNDANT: On startup, get the prefered SD card, turn it on and mount it, and
@@ -15,7 +15,9 @@
// Set to Q7S_HOT_REDUNDANT: On startup, turn on both SD cards and mount them
#define Q7S_SD_CARD_CONFIG Q7S_SD_COLD_REDUNDANT
#define Q7S_ADD_RTD_DEVICES 0
// Probably better if this is disabled for mission code. Convenient for development
#define Q7S_CHECK_FOR_ALREADY_RUNNING_IMG 1
#define Q7S_ADD_RTD_DEVICES 0
/* Only one of those 2 should be enabled! */
/* Add code for ACS board */

View File

@@ -4,6 +4,11 @@
#include <iostream>
#include <cstdlib>
enum SdCard {
SDC0,
SDC1
};
FileSystemTest::FileSystemTest() {
using namespace std;
SdCard sdCard = SdCard::SDC0;

View File

@@ -1,11 +1,6 @@
#ifndef BSP_Q7S_BOARDTEST_FILESYSTEMTEST_H_
#define BSP_Q7S_BOARDTEST_FILESYSTEMTEST_H_
enum SdCard {
SDC0,
SDC1
};
class FileSystemTest {
public:
FileSystemTest();

View File

@@ -24,8 +24,8 @@ ReturnValue_t Q7STestTask::performOneShotAction() {
//testScratchApi();
//testJsonLibDirect();
//testDummyParams();
FsOpCodes opCode = FsOpCodes::ATTEMPT_DIR_REMOVAL_NON_EMPTY;
testFileSystemHandlerDirect(opCode);
//FsOpCodes opCode = FsOpCodes::ATTEMPT_DIR_REMOVAL_NON_EMPTY;
//testFileSystemHandlerDirect(opCode);
return TestTask::performOneShotAction();
}

View File

@@ -1,24 +1,67 @@
#include "CoreController.h"
#include "q7sConfig.h"
#include "OBSWConfig.h"
#include "OBSWVersion.h"
#include "watchdogConf.h"
#include "fsfw/FSFWVersion.h"
#include "fsfw/timemanager/Stopwatch.h"
#include "fsfw/serviceinterface/ServiceInterface.h"
#include "fsfw/osal/linux/Timer.h"
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
#include "fsfw/osal/common/UdpTmTcBridge.h"
#else
#include "fsfw/osal/common/TcpTmTcBridge.h"
#endif
#include "bsp_q7s/memory/scratchApi.h"
#include "bsp_q7s/memory/SdCardManager.h"
#include <fcntl.h>
#include <unistd.h>
#include <filesystem>
CoreController::Chip CoreController::currentChip = Chip::NO_CHIP;
CoreController::Copy CoreController::currentCopy = Copy::NO_COPY;
CoreController::CoreController(object_id_t objectId):
ExtendedControllerBase(objectId, objects::NO_OBJECT, 5) {
ExtendedControllerBase(objectId, objects::NO_OBJECT, 5),
opDivider(5) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
try {
result = initWatchdogFifo();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::CoreController: Watchdog FIFO init failed" <<
std::endl;
}
sdcMan = SdCardManager::instance();
if(sdcMan == nullptr) {
sif::error << "CoreController::CoreController: SD card manager invalid!" << std::endl;
}
if(not BLOCKING_SD_INIT) {
sdcMan->setBlocking(false);
}
sdStateMachine();
result = initBootCopy();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::CoreController: Boot copy init" << std::endl;
}
}
catch(const std::filesystem::filesystem_error& e) {
sif::error << "CoreController::CoreController: Failed with exception " <<
e.what() << std::endl;
}
}
ReturnValue_t CoreController::handleCommandMessage(CommandMessage *message) {
return HasReturnvaluesIF::RETURN_OK;
return ExtendedControllerBase::handleCommandMessage(message);
}
void CoreController::performControlOperation() {
performWatchdogControlOperation();
sdStateMachine();
}
ReturnValue_t CoreController::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
@@ -32,16 +75,6 @@ LocalPoolDataSetBase* CoreController::getDataSetHandle(sid_t sid) {
ReturnValue_t CoreController::initialize() {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
try {
result = sdCardInit();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::initialize: SD card init failed" << std::endl;
}
}
catch(const std::filesystem::filesystem_error& e) {
sif::error << "CoreController::initialize: sdCardInit failed with exception " << e.what()
<< std::endl;
}
result = scratch::writeNumber(scratch::ALLOC_FAILURE_COUNT, 0);
if(result != HasReturnvaluesIF::RETURN_OK) {
@@ -49,7 +82,8 @@ ReturnValue_t CoreController::initialize() {
"count failed" << std::endl;
}
return HasReturnvaluesIF::RETURN_OK;
sdStateMachine();
return ExtendedControllerBase::initialize();
}
ReturnValue_t CoreController::checkModeCommand(Mode_t mode, Submode_t submode,
@@ -57,35 +91,36 @@ ReturnValue_t CoreController::checkModeCommand(Mode_t mode, Submode_t submode,
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t CoreController::sdCardInit() {
#if Q7S_SD_CARD_CONFIG == Q7S_SD_NONE
sif::info << "No SD card initialization will be performed" << std::endl;
return HasReturnvaluesIF::RETURN_OK;
#else
SdCardManager* sdcMan = SdCardManager::instance();
if(sdcMan == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
}
ReturnValue_t CoreController::initSdCardBlocking() {
// Create update status file
ReturnValue_t result = sdcMan->updateSdCardStateFile();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::initialize: Updating SD card state file failed"
<< std::endl;
}
#if Q7S_SD_CARD_CONFIG == Q7S_SD_NONE
sif::info << "No SD card initialization will be performed" << std::endl;
return HasReturnvaluesIF::RETURN_OK;
#else
auto statusPair = SdCardManager::SdStatusPair(sd::SdStatus::OFF, sd::SdStatus::OFF);
result = sdcMan->getSdCardActiveStatus(statusPair);
result = sdcMan->getSdCardActiveStatus(sdInfo.currentState);
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "Getting SD card activity status failed" << std::endl;
}
#if Q7S_SD_CARD_CONFIG == Q7S_SD_COLD_REDUNDANT
return sdCardColdRedundantInit(sdcMan, statusPair);
determinePreferredSdCard();
updateSdInfoOther();
sif::info << "Cold redundant SD card configuration, preferred SD card: " <<
static_cast<int>(sdInfo.pref) << std::endl;
result = sdColdRedundantBlockingInit();
// Update status file
sdcMan->updateSdCardStateFile();
return result;
#elif Q7S_SD_CARD_CONFIG == Q7S_SD_HOT_REDUNDANT
sif::info << "Hot redundant SD card configuration" << std::endl;
setUpSdCard(sd::SdCard::SLOT_0, sdStatus.first, "0");
setUpSdCard(sd::SdCard::SLOT_1, sdStatus.second, "1");
sdCardSetup(sd::SdCard::SLOT_0, sd::SdState::MOUNTED, "0", false);
sdCardSetup(sd::SdCard::SLOT_1, sd::SdState::MOUNTED, "1", false);
// Update status file
sdcMan->updateSdCardStateFile();
return HasReturnvaluesIF::RETURN_OK;
@@ -95,10 +130,332 @@ ReturnValue_t CoreController::sdCardInit() {
}
ReturnValue_t CoreController::sdCardSetup(SdCardManager& sdcMan,
SdCardManager::SdStatusPair& statusPair,sd::SdCard sdCard, sd::SdStatus status,
std::string sdString) {
ReturnValue_t CoreController::sdStateMachine() {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
SdCardManager::Operations operation;
if(sdInfo.state == SdStates::IDLE) {
// Nothing to do
return result;
}
if(sdInfo.state == SdStates::START) {
// Init will be performed by separate function
if(BLOCKING_SD_INIT) {
sdInfo.state = SdStates::IDLE;
sdInfo.initFinished = true;
return result;
}
else {
// Still update SD state file
#if Q7S_SD_CARD_CONFIG == Q7S_SD_NONE
sdInfo.state = SdStates::UPDATE_INFO;
#else
sdInfo.cycleCount = 0;
sdInfo.commandExecuted = false;
sdInfo.state = SdStates::GET_INFO;
#endif
}
}
// This lambda checks the non-blocking operation and assigns the new state on success.
// It returns true for an operation success and false otherwise
auto nonBlockingOpChecking = [&](SdStates newStateOnSuccess,
uint16_t maxCycleCount, std::string opPrintout) {
SdCardManager::OpStatus status = sdcMan->checkCurrentOp(operation);
if(status == SdCardManager::OpStatus::SUCCESS) {
sdInfo.state = newStateOnSuccess;
sdInfo.commandExecuted = false;
sdInfo.cycleCount = 0;
return true;
}
else if(sdInfo.cycleCount > 4) {
sif::warning << "CoreController::sdInitStateMachine: " << opPrintout <<
" takes too long" << std::endl;
return false;
}
return false;
};
if(sdInfo.state == SdStates::GET_INFO) {
if(not sdInfo.commandExecuted) {
// Create update status file
result = sdcMan->updateSdCardStateFile();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::initialize: Updating SD card state file failed"
<< std::endl;
}
sdInfo.commandExecuted = true;
}
else {
nonBlockingOpChecking(SdStates::SET_STATE_SELF, 4, "Updating SDC file");
}
}
if(sdInfo.state == SdStates::SET_STATE_SELF) {
if(not sdInfo.commandExecuted) {
result = sdcMan->getSdCardActiveStatus(sdInfo.currentState);
determinePreferredSdCard();
updateSdInfoOther();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "Getting SD card activity status failed" << std::endl;
}
#if Q7S_SD_CARD_CONFIG == Q7S_SD_COLD_REDUNDANT
sif::info << "Cold redundant SD card configuration, preferred SD card: " <<
static_cast<int>(sdInfo.pref) << std::endl;
#endif
if(sdInfo.prefState == sd::SdState::MOUNTED) {
#if OBSW_VERBOSE_LEVEL >= 1
std::string mountString;
if(sdInfo.pref == sd::SdCard::SLOT_0) {
mountString = SdCardManager::SD_0_MOUNT_POINT;
}
else {
mountString = SdCardManager::SD_1_MOUNT_POINT;
}
sif::info << "SD card " << sdInfo.prefChar << " already on and mounted at " <<
mountString << std::endl;
#endif
sdInfo.state = SdStates::DETERMINE_OTHER;
}
else if(sdInfo.prefState == sd::SdState::OFF) {
sdCardSetup(sdInfo.pref, sd::SdState::ON, sdInfo.prefChar, false);
sdInfo.commandExecuted = true;
}
else if(sdInfo.prefState == sd::SdState::ON) {
sdInfo.state = SdStates::MOUNT_SELF;
}
}
else {
if(nonBlockingOpChecking(SdStates::MOUNT_SELF, 10, "Setting SDC state")) {
sdInfo.prefState = sd::SdState::ON;
currentStateSetter(sdInfo.pref, sd::SdState::ON);
}
}
}
if(sdInfo.state == SdStates::MOUNT_SELF) {
if(not sdInfo.commandExecuted) {
result = sdCardSetup(sdInfo.pref, sd::SdState::MOUNTED, sdInfo.prefChar);
sdInfo.commandExecuted = true;
}
else {
if(nonBlockingOpChecking(SdStates::DETERMINE_OTHER, 5, "Mounting SD card")) {
sdInfo.prefState = sd::SdState::MOUNTED;
currentStateSetter(sdInfo.pref, sd::SdState::MOUNTED);
}
}
}
if(sdInfo.state == SdStates::DETERMINE_OTHER) {
// Determine whether any additional operations have to be done for the other SD card
// 1. Cold redundant case: Other SD card needs to be unmounted and switched off
// 2. Hot redundant case: Other SD card needs to be mounted and switched on
#if Q7S_SD_CARD_CONFIG == Q7S_SD_COLD_REDUNDANT
if(sdInfo.otherState == sd::SdState::ON) {
sdInfo.state = SdStates::SET_STATE_OTHER;
}
else if(sdInfo.otherState == sd::SdState::MOUNTED) {
sdInfo.state = SdStates::MOUNT_UNMOUNT_OTHER;
}
else {
// Is already off, update info, but with a small delay
sdInfo.state = SdStates::SKIP_CYCLE_BEFORE_INFO_UPDATE;
}
#elif Q7S_SD_CARD_CONFIG == Q7S_SD_HOT_REDUNDANT
if(sdInfo.otherState == sd::SdState::OFF) {
sdInfo.state = SdStates::SET_STATE_OTHER;
}
else if(sdInfo.otherState == sd::SdState::ON) {
sdInfo.state = SdStates::MOUNT_UNMOUNT_OTHER;
}
else {
// Is already on and mounted, update info
sdInfo.state = SdStates::SKIP_CYCLE_BEFORE_INFO_UPDATE;
}
#endif
}
if(sdInfo.state == SdStates::SET_STATE_OTHER) {
// Set state of other SD card to ON or OFF, depending on redundancy mode
#if Q7S_SD_CARD_CONFIG == Q7S_SD_COLD_REDUNDANT
if(not sdInfo.commandExecuted) {
result = sdCardSetup(sdInfo.other, sd::SdState::OFF, sdInfo.otherChar, false);
sdInfo.commandExecuted = true;
}
else {
if(nonBlockingOpChecking(SdStates::SKIP_CYCLE_BEFORE_INFO_UPDATE, 10,
"Switching off other SD card")) {
sdInfo.otherState = sd::SdState::OFF;
currentStateSetter(sdInfo.other, sd::SdState::OFF);
}
}
#elif Q7S_SD_CARD_CONFIG == Q7S_SD_HOT_REDUNDANT
if(not sdInfo.commandExecuted) {
result = sdCardSetup(sdInfo.other, sd::SdState::ON, sdInfo.otherChar, false);
sdInfo.commandExecuted = true;
}
else {
if(nonBlockingOpChecking(SdStates::MOUNT_UNMOUNT_OTHER, 10,
"Switching on other SD card")) {
sdInfo.otherState = sd::SdState::ON;
currentStateSetter(sdInfo.other, sd::SdState::ON);
}
}
#endif
}
if(sdInfo.state == SdStates::MOUNT_UNMOUNT_OTHER) {
// Mount or unmount other SD card, depending on redundancy mode
#if Q7S_SD_CARD_CONFIG == Q7S_SD_COLD_REDUNDANT
if(not sdInfo.commandExecuted) {
result = sdCardSetup(sdInfo.other, sd::SdState::ON, sdInfo.otherChar);
sdInfo.commandExecuted = true;
}
else {
if(nonBlockingOpChecking(SdStates::SET_STATE_OTHER, 10, "Unmounting other SD card")) {
sdInfo.otherState = sd::SdState::ON;
currentStateSetter(sdInfo.other, sd::SdState::ON);
}
}
#elif Q7S_SD_CARD_CONFIG == Q7S_SD_HOT_REDUNDANT
if(not sdInfo.commandExecuted) {
result = sdCardSetup(sdInfo.other, sd::SdState::MOUNTED, sdInfo.otherChar);
sdInfo.commandExecuted = true;
}
else {
if(nonBlockingOpChecking(SdStates::UPDATE_INFO, 4, "Mounting other SD card")) {
sdInfo.otherState = sd::SdState::MOUNTED;
currentStateSetter(sdInfo.other, sd::SdState::MOUNTED);
}
}
#endif
}
if(sdInfo.state == SdStates::SKIP_CYCLE_BEFORE_INFO_UPDATE) {
sdInfo.state = SdStates::UPDATE_INFO;
}
else if(sdInfo.state == SdStates::UPDATE_INFO) {
// It is assumed that all tasks are running by the point this section is reached.
// Therefore, perform this operation in blocking mode because it does not take long
// and the ready state of the SD card is available sooner
sdcMan->setBlocking(true);
// Update status file
result = sdcMan->updateSdCardStateFile();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::initialize: Updating SD card state file failed"
<< std::endl;
}
sdInfo.commandExecuted = false;
sdInfo.state = SdStates::IDLE;
sdInfo.cycleCount = 0;
sdcMan->setBlocking(false);
sdcMan->getSdCardActiveStatus(sdInfo.currentState);
if(not sdInfo.initFinished) {
updateSdInfoOther();
sdInfo.initFinished = true;
sif::info << "SD card initialization finished" << std::endl;
}
}
if(sdInfo.state == SdStates::SET_STATE_FROM_COMMAND) {
if(not sdInfo.commandExecuted) {
executeNextExternalSdCommand();
}
else {
checkExternalSdCommandStatus();
}
}
sdInfo.cycleCount++;
return HasReturnvaluesIF::RETURN_OK;
}
void CoreController::executeNextExternalSdCommand() {
std::string sdChar;
sd::SdState currentStateOfCard = sd::SdState::OFF;
if(sdInfo.commandedCard == sd::SdCard::SLOT_0) {
sdChar = "0";
currentStateOfCard = sdInfo.currentState.first;
}
else {
sdChar = "1";
currentStateOfCard = sdInfo.currentState.second;
}
if(currentStateOfCard == sd::SdState::OFF) {
if(sdInfo.commandedState == sd::SdState::ON) {
sdInfo.currentlyCommandedState = sdInfo.commandedState;
}
else if(sdInfo.commandedState == sd::SdState::MOUNTED) {
sdInfo.currentlyCommandedState = sd::SdState::ON;
}
else {
// SD card is already on target state
sdInfo.commandFinished = true;
sdInfo.state = SdStates::IDLE;
}
}
else if(currentStateOfCard == sd::SdState::ON) {
if(sdInfo.commandedState == sd::SdState::OFF or
sdInfo.commandedState == sd::SdState::MOUNTED) {
sdInfo.currentlyCommandedState = sdInfo.commandedState;
}
else {
// Already on target state
sdInfo.commandFinished = true;
sdInfo.state = SdStates::IDLE;
}
}
else if(currentStateOfCard == sd::SdState::MOUNTED) {
if(sdInfo.commandedState == sd::SdState::ON) {
sdInfo.currentlyCommandedState = sdInfo.commandedState;
}
else if(sdInfo.commandedState == sd::SdState::OFF) {
// This causes an unmount in sdCardSetup
sdInfo.currentlyCommandedState = sd::SdState::ON;
}
else {
sdInfo.commandFinished = true;
}
}
sdCardSetup(sdInfo.commandedCard, sdInfo.commandedState, sdChar);
sdInfo.commandExecuted = true;
}
void CoreController::checkExternalSdCommandStatus() {
SdCardManager::Operations operation;
SdCardManager::OpStatus status = sdcMan->checkCurrentOp(operation);
if(status == SdCardManager::OpStatus::SUCCESS) {
if(sdInfo.currentlyCommandedState == sdInfo.commandedState) {
sdInfo.state = SdStates::SKIP_CYCLE_BEFORE_INFO_UPDATE;
sdInfo.commandFinished = true;
}
else {
// stay on same state machine state because the target state was not reached yet.
sdInfo.cycleCount = 0;
}
currentStateSetter(sdInfo.commandedCard, sdInfo.currentlyCommandedState);
sdInfo.commandExecuted = false;
}
else if(sdInfo.cycleCount > 4) {
sif::warning << "CoreController::sdStateMachine: Commanding SD state "
"takes too long" << std::endl;
}
}
void CoreController::currentStateSetter(sd::SdCard sdCard, sd::SdState newState) {
if(sdCard == sd::SdCard::SLOT_0) {
sdInfo.currentState.first = newState;
}
else {
sdInfo.currentState.second = newState;
}
}
ReturnValue_t CoreController::sdCardSetup(sd::SdCard sdCard, sd::SdState targetState,
std::string sdChar, bool printOutput) {
std::string mountString;
sdcMan->setPrintCommandOutput(printOutput);
if(sdCard == sd::SdCard::SLOT_0) {
mountString = SdCardManager::SD_0_MOUNT_POINT;
}
@@ -106,76 +463,71 @@ ReturnValue_t CoreController::sdCardSetup(SdCardManager& sdcMan,
mountString = SdCardManager::SD_1_MOUNT_POINT;
}
if(status == sd::SdStatus::OFF) {
sif::info << "Switching on and mounting SD card " << sdString << " at " <<
mountString << std::endl;
return sdcMan.switchOnSdCard(sdCard, true, &statusPair);
}
else if(status == sd::SdStatus::ON) {
sif::info << "Mounting SD card " << sdString << " at " << mountString << std::endl;
return sdcMan.mountSdCard(sdCard);
sd::SdState state = sd::SdState::OFF;
if(sdCard == sd::SdCard::SLOT_0) {
state = sdInfo.currentState.first;
}
else {
if(std::filesystem::exists(mountString)) {
sif::info << "SD card " << sdString << " already on and mounted at " <<
mountString << std::endl;
return SdCardManager::ALREADY_MOUNTED;
}
sif::error << "SD card mounted but expected mount point " << mountString << " not found!"
<< std::endl;
return SdCardManager::MOUNT_ERROR;
state = sdInfo.currentState.second;
}
if(state == sd::SdState::MOUNTED) {
if(targetState == sd::SdState::OFF) {
sif::info << "Switching off SD card " << sdChar << std::endl;
return sdcMan->switchOffSdCard(sdCard, true, &sdInfo.currentState);
}
else if(targetState == sd::SdState::ON) {
sif::info << "Unmounting SD card " << sdChar << std::endl;
return sdcMan->unmountSdCard(sdCard);
}
else {
if(std::filesystem::exists(mountString)) {
sif::info << "SD card " << sdChar << " already on and mounted at " <<
mountString << std::endl;
return SdCardManager::ALREADY_MOUNTED;
}
sif::error << "SD card mounted but expected mount point " <<
mountString << " not found!" << std::endl;
return SdCardManager::MOUNT_ERROR;
}
}
if(state == sd::SdState::OFF) {
if(targetState == sd::SdState::MOUNTED) {
sif::info << "Switching on and mounting SD card " << sdChar << " at " <<
mountString << std::endl;
return sdcMan->switchOnSdCard(sdCard, true, &sdInfo.currentState);
}
else if(targetState == sd::SdState::ON) {
sif::info << "Switching on SD card " << sdChar << std::endl;
return sdcMan->switchOnSdCard(sdCard, false, &sdInfo.currentState);
}
}
else if(state == sd::SdState::ON) {
if(targetState == sd::SdState::MOUNTED) {
sif::info << "Mounting SD card " << sdChar << " at " << mountString << std::endl;
return sdcMan->mountSdCard(sdCard);
}
else if(targetState == sd::SdState::OFF) {
sif::info << "Switching off SD card " << sdChar << std::endl;
return sdcMan->switchOffSdCard(sdCard, false, &sdInfo.currentState);
}
}
else {
sif::warning << "CoreController::sdCardSetup: Invalid state for this call" << std::endl;
}
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t *data, size_t size) {
switch(actionId) {
case(LIST_DIRECTORY_INTO_FILE): {
// TODO: Packet definition for clean deserialization
// 2 bytes for a and R flag, at least 5 bytes for minimum valid path /tmp with
// null termination, at least 7 bytes for minimum target file name /tmp/a with
// null termination.
if(size < 14) {
return HasActionsIF::INVALID_PARAMETERS;
}
// We could also make -l optional, but I can't think of a reason why to not use -l..
// This flag specifies to run ls with -a
bool aFlag = data[0];
data += 1;
// This flag specifies to run ls with -R
bool RFlag = data[1];
data += 1;
size_t remainingSize = size - 2;
// One larger for null termination, which prevents undefined behaviour if the sent
// strings are not 0 terminated properly
std::vector<uint8_t> repoAndTargetFileBuffer(remainingSize + 1, 0);
std::memcpy(repoAndTargetFileBuffer.data(), data, remainingSize);
const char* currentCharPtr = reinterpret_cast<const char*>(repoAndTargetFileBuffer.data());
// Full target file name
std::string repoName(currentCharPtr);
size_t repoLength = repoName.length();
// The other string needs to be at least one letter plus NULL termination to be valid at all
// The first string also needs to be NULL terminated, but the termination is not included
// in the string length, so this is subtracted from the remaining size as well
if(repoLength > remainingSize - 3) {
return HasActionsIF::INVALID_PARAMETERS;
}
// The file length will not include the NULL termination, so we skip it
currentCharPtr += repoLength + 1;
std::string targetFileName(currentCharPtr);
std::ostringstream oss;
oss << "ls -l";
if(aFlag) {
oss << "a";
}
if(RFlag) {
oss << "R";
}
oss << " " << repoName << " > " << targetFileName;
std::system(oss.str().c_str());
return HasReturnvaluesIF::RETURN_OK;
return actionListDirectoryIntoFile(actionId, commandedBy, data, size);
}
case(REBOOT_OBC): {
return actionPerformReboot(data, size);
}
default: {
return HasActionsIF::INVALID_ACTION_ID;
@@ -184,76 +536,46 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
}
ReturnValue_t CoreController::initializeAfterTaskCreation() {
ReturnValue_t result = versionFileInit();
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
if(BLOCKING_SD_INIT) {
ReturnValue_t result = initSdCardBlocking();
if(result != HasReturnvaluesIF::RETURN_OK and result != SdCardManager::ALREADY_MOUNTED) {
sif::warning << "CoreController::CoreController: SD card init failed" << std::endl;
}
}
sdStateMachine();
result = initVersionFile();
if(result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "CoreController::initialize: Version initialization failed" << std::endl;
}
initPrint();
return result;
}
ReturnValue_t CoreController::sdCardColdRedundantInit(SdCardManager* sdcMan,
SdCardManager::SdStatusPair& statusPair) {
sd::SdCard preferredSdCard = sd::SdCard::SLOT_0;
ReturnValue_t result = sdcMan->getPreferredSdCard(preferredSdCard);
if(result != HasReturnvaluesIF::RETURN_OK) {
if(result == scratch::KEY_NOT_FOUND) {
sif::warning << "CoreController::sdCardInit: "
"Preferred SD card not set. Setting to 0" << std::endl;
sdcMan->setPreferredSdCard(preferredSdCard);
}
else {
sif::warning << "CoreController::sdCardInit: Could not get preferred SD card"
"information from the scratch buffer" << std::endl;
}
}
std::string preferredString;
sd::SdStatus preferredStatus = sd::SdStatus::OFF;
ReturnValue_t CoreController::sdColdRedundantBlockingInit() {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
sd::SdStatus otherStatus = sd::SdStatus::OFF;
std::string otherString;
sd::SdCard otherSdc = sd::SdCard::SLOT_0;
if(preferredSdCard == sd::SdCard::SLOT_0) {
preferredStatus = statusPair.first;
preferredString = "0";
otherSdc = sd::SdCard::SLOT_1;
otherStatus = statusPair.second;
otherString = "1";
}
else {
preferredString = "1";
preferredStatus = statusPair.second;
otherStatus = statusPair.first;
otherSdc = sd::SdCard::SLOT_0;
otherString = "0";
}
sif::info << "Cold redundant SD card configuration, preferred SD card " <<
preferredString << std::endl;
result = sdCardSetup(*sdcMan, statusPair, preferredSdCard, preferredStatus, preferredString);
result = sdCardSetup(sdInfo.pref, sd::SdState::MOUNTED, sdInfo.prefChar);
if(result != SdCardManager::ALREADY_MOUNTED and result != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "Setting up preferred card " << otherString <<
sif::warning << "Setting up preferred card " << sdInfo.otherChar <<
" in cold redundant mode failed" << std::endl;
// Try other SD card and mark set up operation as failed
sdCardSetup(*sdcMan, statusPair, preferredSdCard, preferredStatus, preferredString);
sdCardSetup(sdInfo.pref, sd::SdState::MOUNTED, sdInfo.prefChar);
result = HasReturnvaluesIF::RETURN_FAILED;
}
if(result != HasReturnvaluesIF::RETURN_FAILED and otherStatus != sd::SdStatus::OFF) {
sif::info << "Switching off secondary SD card " << otherString << std::endl;
// Switch off other SD card in cold redundant mode if setting up preferred one walked
if(result != HasReturnvaluesIF::RETURN_FAILED and sdInfo.otherState != sd::SdState::OFF) {
sif::info << "Switching off secondary SD card " << sdInfo.otherChar << std::endl;
// Switch off other SD card in cold redundant mode if setting up preferred one worked
// without issues
result = sdcMan->switchOffSdCard(otherSdc, otherStatus, &statusPair);
if(result != HasReturnvaluesIF::RETURN_OK and result != SdCardManager::ALREADY_OFF) {
sif::warning << "Switching off secondary SD card " << otherString <<
ReturnValue_t result2 = sdcMan->switchOffSdCard(sdInfo.other,
sdInfo.otherState, &sdInfo.currentState);
if(result2 != HasReturnvaluesIF::RETURN_OK and result2 != SdCardManager::ALREADY_OFF) {
sif::warning << "Switching off secondary SD card " << sdInfo.otherChar <<
" in cold redundant mode failed" << std::endl;
}
}
// Update status file
sdcMan->updateSdCardStateFile();
return HasReturnvaluesIF::RETURN_OK;
return result;
}
ReturnValue_t CoreController::incrementAllocationFailureCount() {
@@ -266,10 +588,11 @@ ReturnValue_t CoreController::incrementAllocationFailureCount() {
return scratch::writeNumber(scratch::ALLOC_FAILURE_COUNT, count);
}
ReturnValue_t CoreController::versionFileInit() {
ReturnValue_t CoreController::initVersionFile() {
std::string unameFileName = "/tmp/uname_version.txt";
std::string unameCmd = "uname -a > " + unameFileName;
// TODO: No -v flag for now. If the kernel version is used, need to cut off first few letters
std::string unameCmd = "uname -mnrso > " + unameFileName;
int result = std::system(unameCmd.c_str());
if(result != 0) {
utility::handleSystemError(result, "CoreController::versionFileInit");
@@ -348,3 +671,238 @@ ReturnValue_t CoreController::versionFileInit() {
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t CoreController::actionListDirectoryIntoFile(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t *data, size_t size) {
// TODO: Packet definition for clean deserialization
// 2 bytes for a and R flag, at least 5 bytes for minimum valid path /tmp with
// null termination, at least 7 bytes for minimum target file name /tmp/a with
// null termination.
if(size < 14) {
return HasActionsIF::INVALID_PARAMETERS;
}
// We could also make -l optional, but I can't think of a reason why to not use -l..
// This flag specifies to run ls with -a
bool aFlag = data[0];
data += 1;
// This flag specifies to run ls with -R
bool RFlag = data[1];
data += 1;
size_t remainingSize = size - 2;
// One larger for null termination, which prevents undefined behaviour if the sent
// strings are not 0 terminated properly
std::vector<uint8_t> repoAndTargetFileBuffer(remainingSize + 1, 0);
std::memcpy(repoAndTargetFileBuffer.data(), data, remainingSize);
const char* currentCharPtr = reinterpret_cast<const char*>(repoAndTargetFileBuffer.data());
// Full target file name
std::string repoName(currentCharPtr);
size_t repoLength = repoName.length();
// The other string needs to be at least one letter plus NULL termination to be valid at all
// The first string also needs to be NULL terminated, but the termination is not included
// in the string length, so this is subtracted from the remaining size as well
if(repoLength > remainingSize - 3) {
return HasActionsIF::INVALID_PARAMETERS;
}
// The file length will not include the NULL termination, so we skip it
currentCharPtr += repoLength + 1;
std::string targetFileName(currentCharPtr);
std::ostringstream oss;
oss << "ls -l";
if(aFlag) {
oss << "a";
}
if(RFlag) {
oss << "R";
}
oss << " " << repoName << " > " << targetFileName;
int result = std::system(oss.str().c_str());
if(result != 0) {
utility::handleSystemError(result, "CoreController::actionListDirectoryIntoFile");
actionHelper.finish(false, commandedBy, actionId);
}
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t CoreController::initBootCopy() {
std::string fileName = "/tmp/curr_copy.txt";
if(not std::filesystem::exists(fileName)) {
// Thils file is created by the systemd service eive-early-config so this should
// not happen normally
std::string cmd = "xsc_boot_copy > " + fileName;
int result = std::system(cmd.c_str());
if(result != 0) {
utility::handleSystemError(result, "CoreController::initBootCopy");
}
}
std::ifstream file(fileName);
std::string line;
std::getline(file, line);
std::istringstream iss(line);
int value = 0;
iss >> value;
currentChip = static_cast<Chip>(value);
iss >> value;
currentCopy = static_cast<Copy>(value);
return HasReturnvaluesIF::RETURN_OK;
}
void CoreController::getCurrentBootCopy(Chip &chip, Copy &copy) {
// Not really thread-safe but it does not need to be
chip = currentChip;
copy = currentCopy;
}
ReturnValue_t CoreController::initWatchdogFifo() {
if(not std::filesystem::exists(watchdog::FIFO_NAME)) {
// Still return RETURN_OK for now
sif::info << "Watchdog FIFO " << watchdog::FIFO_NAME << " does not exist, can't initiate" <<
" watchdog" << std::endl;
return HasReturnvaluesIF::RETURN_OK;
}
// Open FIFO write only and non-blocking to prevent SW from killing itself.
watchdogFifoFd = open(watchdog::FIFO_NAME.c_str(), O_WRONLY | O_NONBLOCK);
if(watchdogFifoFd < 0) {
if(errno == ENXIO) {
watchdogFifoFd = RETRY_FIFO_OPEN;
sif::info << "eive-watchdog not running. FIFO can not be opened" << std::endl;
}
else {
sif::error << "Opening pipe " << watchdog::FIFO_NAME << " write-only failed with " <<
errno << ": " << strerror(errno) << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
}
}
return HasReturnvaluesIF::RETURN_OK;
}
void CoreController::initPrint() {
#if OBSW_VERBOSE_LEVEL >= 1
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
sif::info << "Created UDP server for TMTC commanding with listener port " <<
UdpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
#else
sif::info << "Created TCP server for TMTC commanding with listener port " <<
TcpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
#endif
if(watchdogFifoFd > 0) {
sif::info << "Opened watchdog FIFO successfully.." << std::endl;
}
#endif
}
ReturnValue_t CoreController::actionPerformReboot(const uint8_t *data, size_t size) {
if(size < 1) {
return HasActionsIF::INVALID_PARAMETERS;
}
bool rebootSameBootCopy = data[0];
if(rebootSameBootCopy) {
#if OBSW_VERBOSE_LEVEL >= 1
sif::info << "CoreController::actionPerformReboot: Rebooting on current image" << std::endl;
#endif
// Attempt graceful shutdown by unmounting and switching off SD cards
SdCardManager::instance()->switchOffSdCard(sd::SdCard::SLOT_0);
SdCardManager::instance()->switchOffSdCard(sd::SdCard::SLOT_1);
int result = std::system("xsc_boot_copy -r");
if(result != 0) {
utility::handleSystemError(result, "CoreController::executeAction");
return HasReturnvaluesIF::RETURN_FAILED;
}
return HasActionsIF::EXECUTION_FINISHED;
}
if(size < 3) {
return HasActionsIF::INVALID_PARAMETERS;
}
#if OBSW_VERBOSE_LEVEL >= 1
sif::info << "CoreController::actionPerformReboot: Rebooting on " <<
static_cast<int>(data[1]) << " " << static_cast<int>(data[2]) << std::endl;
#endif
// The second byte in data is the target chip, the third byte is the target copy
std::string cmdString = "xsc_boot_copy " + std::to_string(data[1]) + " " +
std::to_string(data[2]);
int result = std::system(cmdString.c_str());
if(result != 0) {
utility::handleSystemError(result, "CoreController::executeAction");
return HasReturnvaluesIF::RETURN_FAILED;
}
return HasActionsIF::EXECUTION_FINISHED;
}
CoreController::~CoreController() {
}
void CoreController::determinePreferredSdCard() {
if(sdInfo.pref == sd::SdCard::NONE) {
ReturnValue_t result = sdcMan->getPreferredSdCard(sdInfo.pref);
if(result != HasReturnvaluesIF::RETURN_OK) {
if(result == scratch::KEY_NOT_FOUND) {
sif::warning << "CoreController::sdCardInit: "
"Preferred SD card not set. Setting to 0" << std::endl;
sdcMan->setPreferredSdCard(sdInfo.pref);
}
else {
sif::warning << "CoreController::sdCardInit: Could not get preferred SD card"
"information from the scratch buffer" << std::endl;
}
}
}
}
void CoreController::updateSdInfoOther() {
if(sdInfo.pref == sd::SdCard::SLOT_0) {
sdInfo.prefChar = "0";
sdInfo.otherChar = "1";
sdInfo.otherState = sdInfo.currentState.second;
sdInfo.prefState = sdInfo.currentState.first;
sdInfo.other = sd::SdCard::SLOT_1;
}
else {
sdInfo.prefChar = "1";
sdInfo.otherChar = "0";
sdInfo.otherState = sdInfo.currentState.first;
sdInfo.prefState = sdInfo.currentState.second;
sdInfo.other = sd::SdCard::SLOT_0;
}
}
bool CoreController::sdInitFinished() const {
return sdInfo.initFinished;
}
void CoreController::performWatchdogControlOperation() {
// Only perform each fifth iteration
if(watchdogFifoFd != 0 and opDivider.checkAndIncrement()) {
if(watchdogFifoFd == RETRY_FIFO_OPEN) {
// Open FIFO write only and non-blocking
watchdogFifoFd = open(watchdog::FIFO_NAME.c_str(), O_WRONLY | O_NONBLOCK);
if(watchdogFifoFd < 0) {
if(errno == ENXIO) {
watchdogFifoFd = RETRY_FIFO_OPEN;
// No printout for now, would be spam
return;
}
else {
sif::error << "Opening pipe " << watchdog::FIFO_NAME <<
" write-only failed with " << errno << ": " <<
strerror(errno) << std::endl;
return;
}
}
sif::info << "Opened " << watchdog::FIFO_NAME << " successfully" << std::endl;
}
else if(watchdogFifoFd > 0) {
// Write to OBSW watchdog FIFO here
const char writeChar = 'a';
ssize_t writtenBytes = write(watchdogFifoFd, &writeChar, 1);
if(writtenBytes < 0) {
sif::error << "Errors writing to watchdog FIFO, code " << errno << ": " <<
strerror(errno) << std::endl;
}
}
}
}

View File

@@ -1,20 +1,40 @@
#ifndef BSP_Q7S_CORE_CORECONTROLLER_H_
#define BSP_Q7S_CORE_CORECONTROLLER_H_
#include <fsfw/globalfunctions/PeriodicOperationDivider.h>
#include "fsfw/controller/ExtendedControllerBase.h"
#include "bsp_q7s/memory/SdCardManager.h"
#include "events/subsystemIdRanges.h"
class Timer;
class SdCardManager;
class CoreController: public ExtendedControllerBase {
public:
enum Chip: uint8_t {
CHIP_0,
CHIP_1,
NO_CHIP
};
enum Copy: uint8_t {
COPY_0,
COPY_1,
NO_COPY
};
static constexpr ActionId_t LIST_DIRECTORY_INTO_FILE = 0;
static constexpr ActionId_t REBOOT_OBC = 32;
static constexpr uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::CORE;
static constexpr Event ALLOC_FAILURE = event::makeEvent(SUBSYSTEM_ID, 0, severity::MEDIUM);
CoreController(object_id_t objectId);
virtual~ CoreController();
ReturnValue_t initialize() override;
@@ -27,21 +47,95 @@ public:
void performControlOperation() override;
static ReturnValue_t incrementAllocationFailureCount();
static void getCurrentBootCopy(Chip& chip, Copy& copy);
bool sdInitFinished() const;
private:
static Chip currentChip;
static Copy currentCopy;
ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
LocalDataPoolManager& poolManager) override;
LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override;
ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode);
ReturnValue_t sdCardInit();
ReturnValue_t sdCardSetup(SdCardManager& sdcMan, SdCardManager::SdStatusPair& statusPair,
sd::SdCard sdCard, sd::SdStatus status, std::string sdString);
ReturnValue_t sdCardColdRedundantInit(SdCardManager* sdcMan,
SdCardManager::SdStatusPair& statusPair);
// States for SD state machine, which is used in non-blocking mode
enum class SdStates {
NONE,
START,
GET_INFO,
SET_STATE_SELF,
MOUNT_SELF,
// Determine operations for other SD card, depending on redundancy configuration
DETERMINE_OTHER,
SET_STATE_OTHER,
// Mount or unmount other
MOUNT_UNMOUNT_OTHER,
// Skip period because the shell command used to generate the info file sometimes is
// missing the last performed operation if executed too early
SKIP_CYCLE_BEFORE_INFO_UPDATE,
UPDATE_INFO,
// SD initialization done
IDLE,
// Used if SD switches or mount commands are issued via telecommand
SET_STATE_FROM_COMMAND,
};
static constexpr bool BLOCKING_SD_INIT = false;
ReturnValue_t versionFileInit();
SdCardManager* sdcMan = nullptr;
ReturnValue_t initSdCardBlocking();
ReturnValue_t sdStateMachine();
struct SdInfo {
sd::SdCard pref = sd::SdCard::NONE;
sd::SdState prefState = sd::SdState::OFF;
sd::SdCard other = sd::SdCard::NONE;
sd::SdState otherState = sd::SdState::OFF;
std::string prefChar = "0";
std::string otherChar = "1";
SdStates state = SdStates::START;
// Used to track whether a command was executed
bool commandExecuted = true;
bool initFinished = false;
SdCardManager::SdStatePair currentState;
uint16_t cycleCount = 0;
// These two flags are related to external commanding
bool commandIssued = false;
bool commandFinished = false;
sd::SdState currentlyCommandedState = sd::SdState::OFF;
sd::SdCard commandedCard = sd::SdCard::NONE;
sd::SdState commandedState = sd::SdState::OFF;
};
SdInfo sdInfo;
void updateSdInfoOther();
ReturnValue_t sdCardSetup(sd::SdCard sdCard, sd::SdState targetState, std::string sdChar,
bool printOutput = true);
ReturnValue_t sdColdRedundantBlockingInit();
void currentStateSetter(sd::SdCard sdCard, sd::SdState newState);
void determinePreferredSdCard();
void executeNextExternalSdCommand();
void checkExternalSdCommandStatus();
ReturnValue_t initVersionFile();
ReturnValue_t initBootCopy();
ReturnValue_t initWatchdogFifo();
ReturnValue_t actionListDirectoryIntoFile(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t *data, size_t size);
ReturnValue_t actionPerformReboot(const uint8_t *data, size_t size);
void initPrint();
// Designated value for rechecking FIFO open
static constexpr int RETRY_FIFO_OPEN = -2;
int watchdogFifoFd = 0;
PeriodicOperationDivider opDivider;
void performWatchdogControlOperation();
};

View File

@@ -82,19 +82,27 @@ void initmission::initTasks() {
}
/* UDP bridge */
PeriodicTaskIF* udpBridgeTask = factory->createPeriodicTask(
PeriodicTaskIF* tmtcBridgeTask = factory->createPeriodicTask(
"UDP_UNIX_BRIDGE", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc);
result = udpBridgeTask->addComponent(objects::UDP_BRIDGE);
result = tmtcBridgeTask->addComponent(objects::TMTC_BRIDGE);
if(result != HasReturnvaluesIF::RETURN_OK) {
initmission::printAddObjectError("UDP_BRIDGE", objects::UDP_BRIDGE);
initmission::printAddObjectError("UDP_BRIDGE", objects::TMTC_BRIDGE);
}
PeriodicTaskIF* udpPollingTask = factory->createPeriodicTask(
PeriodicTaskIF* tmtcPollingTask = factory->createPeriodicTask(
"UDP_POLLING", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
result = udpPollingTask->addComponent(objects::UDP_POLLING_TASK);
result = tmtcPollingTask->addComponent(objects::TMTC_POLLING_TASK);
if(result != HasReturnvaluesIF::RETURN_OK) {
initmission::printAddObjectError("UDP_POLLING", objects::UDP_POLLING_TASK);
initmission::printAddObjectError("UDP_POLLING", objects::TMTC_POLLING_TASK);
}
PeriodicTaskIF* plocUpdaterTask = factory->createPeriodicTask(
"PLOC_UPDATER_TASK", 30, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.5, missedDeadlineFunc);
result = plocUpdaterTask->addComponent(objects::PLOC_UPDATER);
if(result != HasReturnvaluesIF::RETURN_OK) {
initmission::printAddObjectError("PLOC_UPDATER_TASK", objects::PLOC_UPDATER);
}
// FS task, task interval does not matter because it runs in permanent loop, priority low
// because it is a non-essential background task
PeriodicTaskIF* fsTask = factory->createPeriodicTask(
@@ -133,9 +141,10 @@ void initmission::initTasks() {
sif::info << "Starting tasks.." << std::endl;
tmTcDistributor->startTask();
udpBridgeTask->startTask();
udpPollingTask->startTask();
tmtcBridgeTask->startTask();
tmtcPollingTask->startTask();
coreController->startTask();
plocUpdaterTask->startTask();
taskStarter(pstTasks, "PST task vector");
taskStarter(pusTasks, "PUS task vector");

View File

@@ -37,6 +37,7 @@
#include "mission/devices/RadiationSensorHandler.h"
#include "mission/devices/RwHandler.h"
#include "mission/devices/StarTrackerHandler.h"
#include "mission/devices/PlocUpdater.h"
#include "mission/devices/devicedefinitions/GomspaceDefinitions.h"
#include "mission/devices/devicedefinitions/SyrlinksDefinitions.h"
#include "mission/devices/devicedefinitions/PlocMPSoCDefinitions.h"
@@ -48,24 +49,31 @@
#include "mission/utility/TmFunnel.h"
#include "linux/obc/CCSDSIPCoreBridge.h"
#include "fsfw/hal/linux/uart/UartComIF.h"
#include "fsfw/hal/linux/uart/UartCookie.h"
#include "fsfw/hal/devicehandlers/GyroL3GD20Handler.h"
#include "fsfw/hal/linux/i2c/I2cCookie.h"
#include "fsfw/hal/linux/i2c/I2cComIF.h"
#include "fsfw/hal/linux/spi/SpiCookie.h"
#include "fsfw/hal/linux/spi/SpiComIF.h"
#include "fsfw/hal/linux/gpio/LinuxLibgpioIF.h"
#include "fsfw/hal/common/gpio/GpioCookie.h"
#include "fsfw_hal/linux/uart/UartComIF.h"
#include "fsfw_hal/linux/uart/UartCookie.h"
#include "fsfw_hal/devicehandlers/GyroL3GD20Handler.h"
#include "fsfw_hal/linux/i2c/I2cCookie.h"
#include "fsfw_hal/linux/i2c/I2cComIF.h"
#include "fsfw_hal/linux/spi/SpiCookie.h"
#include "fsfw_hal/linux/spi/SpiComIF.h"
#include "fsfw_hal/linux/gpio/LinuxLibgpioIF.h"
#include "fsfw_hal/common/gpio/GpioCookie.h"
#include "fsfw/datapoollocal/LocalDataPoolManager.h"
#include "fsfw/tmtcservices/CommandingServiceBase.h"
#include "fsfw/tmtcservices/PusServiceBase.h"
#include "fsfw/tmtcpacket/pus/tm.h"
/* UDP server includes */
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
// UDP server includes
#include "fsfw/osal/common/UdpTmTcBridge.h"
#include "fsfw/osal/common/UdpTcPollingTask.h"
#else
// TCP server includes
#include "fsfw/osal/common/TcpTmTcBridge.h"
#include "fsfw/osal/common/TcpTmTcServer.h"
#endif
#include "linux/boardtest/SpiTestClass.h"
#if TEST_LIBGPIOD == 1
@@ -83,7 +91,7 @@ void Factory::setStaticFrameworkObjectIds() {
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
TmFunnel::downlinkDestination = objects::UDP_BRIDGE;
TmFunnel::downlinkDestination = objects::TMTC_BRIDGE;
// No storage object for now.
TmFunnel::storageDestination = objects::NO_OBJECT;
@@ -131,8 +139,13 @@ void ObjectFactory::produce(void* args){
createReactionWheelComponents(gpioComIF);
#endif /* TE7020 != 0 */
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#else
new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#endif
/* Test Task */
#if OBSW_ADD_TEST_CODE == 1
@@ -158,13 +171,15 @@ void ObjectFactory::produce(void* args){
/* Configuration for MIO0 on TE0720-03-1CFA */
UartCookie* plocSupervisorCookie = new UartCookie(objects::PLOC_SUPERVISOR_HANDLER,
std::string("/dev/ttyUL3"), UartModes::NON_CANONICAL, 115200,
PLOC_SPV::MAX_REPLY_SIZE);
PLOC_SPV::MAX_PACKET_SIZE * 20);
plocSupervisorCookie->setNoFixedSizeReply();
PlocSupervisorHandler* plocSupervisor = new PlocSupervisorHandler(
objects::PLOC_SUPERVISOR_HANDLER, objects::UART_COM_IF, plocSupervisorCookie);
plocSupervisor->setStartUpImmediately();
#endif
new PlocUpdater(objects::PLOC_UPDATER);
}
void ObjectFactory::createTmpComponents() {
@@ -790,7 +805,7 @@ void ObjectFactory::createTestComponents() {
radSensor->setStartUpImmediately();
#endif
#if BOARD_TE0720 == 1 && TEST_PLOC_HANDLER == 1
#if BOARD_TE0720 == 1 && ADD_PLOC_MPSOC == 1
UartCookie* plocUartCookie = new UartCookie(std::string("/dev/ttyPS1"), 115200,
PLOC_MPSOC::MAX_REPLY_SIZE);
/* Testing PlocMPSoCHandler on TE0720-03-1CFA */
@@ -808,7 +823,7 @@ void ObjectFactory::createTestComponents() {
pcduSwitches::TCS_BOARD_8V_HEATER_IN);
#endif
#if TE0720 == 1 && ADD_PLOC_SUPERVISOR == 1
#if BOARD_TE0720 == 1 && ADD_PLOC_SUPERVISOR == 1
/* Configuration for MIO0 on TE0720-03-1CFA */
UartCookie* plocSupervisorCookie = new UartCookie(objects::PLOC_SUPERVISOR_HANDLER,
std::string("/dev/ttyPS1"), UartModes::NON_CANONICAL, 115200,

View File

@@ -2,11 +2,15 @@
#include "OBSWVersion.h"
#include "OBSWConfig.h"
#include "InitMission.h"
#include "watchdogConf.h"
#include "fsfw/tasks/TaskFactory.h"
#include "fsfw/FSFWVersion.h"
#include <iostream>
#include <filesystem>
static int OBSW_ALREADY_RUNNING = -2;
int obsw::obsw() {
std::cout << "-- EIVE OBSW --" << std::endl;
@@ -15,11 +19,20 @@ int obsw::obsw() {
#else
std::cout << "-- Compiled for Linux (TE0720) --" << std::endl;
#endif
std::cout << "-- OBSW " << SW_NAME << " v" << SW_VERSION << "." << SW_SUBVERSION <<
std::cout << "-- OBSW v" << SW_VERSION << "." << SW_SUBVERSION <<
"." << SW_REVISION << ", FSFW v" << FSFW_VERSION << "." << FSFW_SUBVERSION << "." <<
FSFW_REVISION << "--" << std::endl;
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
#if Q7S_CHECK_FOR_ALREADY_RUNNING_IMG == 1
// Check special file here. This file is created or deleted by the eive-watchdog application
// or systemd service!
if(std::filesystem::exists(watchdog::RUNNING_FILE_NAME)) {
sif::warning << "File " << watchdog::RUNNING_FILE_NAME << " exists so the software might "
"already be running. Aborting.." << std::endl;
return OBSW_ALREADY_RUNNING;
}
#endif
initmission::initMission();
for(;;) {

View File

@@ -1,8 +1,8 @@
#include "gpioCallbacks.h"
#include <devices/gpioIds.h>
#include <fsfw/hal/linux/gpio/LinuxLibgpioIF.h>
#include <fsfw/hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/linux/gpio/LinuxLibgpioIF.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
#include <fsfw/serviceinterface/ServiceInterface.h>

View File

@@ -1,8 +1,8 @@
#ifndef LINUX_GPIO_GPIOCALLBACKS_H_
#define LINUX_GPIO_GPIOCALLBACKS_H_
#include <fsfw/hal/common/gpio/gpioDefinitions.h>
#include <fsfw/hal/common/gpio/GpioIF.h>
#include <fsfw_hal/common/gpio/gpioDefinitions.h>
#include <fsfw_hal/common/gpio/GpioIF.h>
namespace gpioCallbacks {

View File

@@ -41,7 +41,9 @@ void FileSystemHandler::fileSystemHandlerLoop() {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
while(true) {
if(opCounter % 5 == 0) {
fileSystemCheckup();
if(coreCtrl->sdInitFinished()) {
fileSystemCheckup();
}
}
result = mq->receiveMessage(&filemsg);
if(result == MessageQueueIF::EMPTY) {
@@ -72,16 +74,16 @@ void FileSystemHandler::fileSystemHandlerLoop() {
}
void FileSystemHandler::fileSystemCheckup() {
SdCardManager::SdStatusPair statusPair;
SdCardManager::SdStatePair statusPair;
sdcMan->getSdCardActiveStatus(statusPair);
sd::SdCard preferredSdCard;
sdcMan->getPreferredSdCard(preferredSdCard);
if((preferredSdCard == sd::SdCard::SLOT_0) and
(statusPair.first == sd::SdStatus::MOUNTED)) {
(statusPair.first == sd::SdState::MOUNTED)) {
currentMountPrefix = SdCardManager::SD_0_MOUNT_POINT;
}
else if((preferredSdCard == sd::SdCard::SLOT_1) and
(statusPair.second == sd::SdStatus::MOUNTED)) {
(statusPair.second == sd::SdState::MOUNTED)) {
currentMountPrefix = SdCardManager::SD_1_MOUNT_POINT;
}
else {
@@ -111,6 +113,11 @@ MessageQueueId_t FileSystemHandler::getCommandQueue() const {
}
ReturnValue_t FileSystemHandler::initialize() {
coreCtrl = ObjectManager::instance()->get<CoreController>(objects::CORE_CONTROLLER);
if(coreCtrl == nullptr) {
sif::error << "FileSystemHandler::initialize: Could not retrieve core controller handle" <<
std::endl;
}
sdcMan = SdCardManager::instance();
sd::SdCard preferredSdCard;
ReturnValue_t result = sdcMan->getPreferredSdCard(preferredSdCard);
@@ -226,7 +233,7 @@ ReturnValue_t FileSystemHandler::removeDirectory(const char *repositoryPath,
else {
// Check error code. Most probably denied permissions because folder is not empty
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory failed with "
"code" << err.value() << ": " << strerror(err.value()) << std::endl;
"code " << err.value() << ": " << strerror(err.value()) << std::endl;
if(err.value() == ENOTEMPTY) {
return DIRECTORY_NOT_EMPTY;
}
@@ -242,7 +249,7 @@ ReturnValue_t FileSystemHandler::removeDirectory(const char *repositoryPath,
}
else {
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory failed with "
"code" << err.value() << ": " << strerror(err.value()) << std::endl;
"code " << err.value() << ": " << strerror(err.value()) << std::endl;
// Check error code
if(err.value() == ENOTEMPTY) {
return DIRECTORY_NOT_EMPTY;

View File

@@ -11,6 +11,8 @@
#include <string>
class CoreController;
class FileSystemHandler: public SystemObject,
public ExecutableObjectIF,
public HasFileSystemIF {
@@ -47,6 +49,7 @@ public:
void* args = nullptr) override;
private:
CoreController* coreCtrl = nullptr;
MessageQueueIF* mq = nullptr;
std::string currentMountPrefix = SdCardManager::SD_0_MOUNT_POINT;
static constexpr uint32_t FS_MAX_QUEUE_SIZE = config::OBSW_FILESYSTEM_HANDLER_QUEUE_SIZE;

View File

@@ -1,3 +1,4 @@
#include <fsfw/osal/linux/Timer.h>
#include "SdCardManager.h"
#include "scratchApi.h"
@@ -6,13 +7,16 @@
#include "fsfw/ipc/MutexFactory.h"
#include "fsfw/serviceinterface/ServiceInterface.h"
#include <unistd.h>
#include <fstream>
#include <memory>
#include <filesystem>
#include <cstring>
SdCardManager* SdCardManager::factoryInstance = nullptr;
SdCardManager::SdCardManager() {
SdCardManager::SdCardManager(): cmdExecutor(256) {
}
SdCardManager::~SdCardManager() {
@@ -30,11 +34,19 @@ SdCardManager* SdCardManager::instance() {
}
ReturnValue_t SdCardManager::switchOnSdCard(sd::SdCard sdCard, bool doMountSdCard,
SdStatusPair* statusPair) {
SdStatePair* statusPair) {
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
std::unique_ptr<SdStatusPair> sdStatusPtr;
if(doMountSdCard) {
if(not blocking) {
sif::warning << "SdCardManager::switchOnSdCard: Two-step command but manager is"
" not configured for blocking operation. "
"Forcing blocking mode.." << std::endl;
blocking = true;
}
}
std::unique_ptr<SdStatePair> sdStatusPtr;
if(statusPair == nullptr) {
sdStatusPtr = std::make_unique<SdStatusPair>();
sdStatusPtr = std::make_unique<SdStatePair>();
statusPair = sdStatusPtr.get();
result = getSdCardActiveStatus(*statusPair);
if(result != HasReturnvaluesIF::RETURN_OK) {
@@ -49,39 +61,35 @@ ReturnValue_t SdCardManager::switchOnSdCard(sd::SdCard sdCard, bool doMountSdCar
return HasReturnvaluesIF::RETURN_FAILED;
}
sd::SdStatus targetStatus;
sd::SdState currentState;
if(sdCard == sd::SdCard::SLOT_0) {
targetStatus = statusPair->first;
currentState = statusPair->first;
}
else if(sdCard == sd::SdCard::SLOT_1) {
targetStatus = statusPair->second;
currentState = statusPair->second;
}
else {
// Should not happen
targetStatus = sd::SdStatus::OFF;
currentState = sd::SdState::OFF;
}
auto switchCall = [&]() {
if(targetStatus == sd::SdStatus::ON) {
if(not doMountSdCard) {
return ALREADY_ON;
}
else {
return mountSdCard(sdCard);
}
}
else if(targetStatus == sd::SdStatus::MOUNTED) {
return ALREADY_MOUNTED;
}
else if(targetStatus == sd::SdStatus::OFF) {
return setSdCardState(sdCard, true);
if(currentState == sd::SdState::ON) {
if(not doMountSdCard) {
return ALREADY_ON;
}
else {
return HasReturnvaluesIF::RETURN_FAILED;
return mountSdCard(sdCard);
}
};
result = switchCall();
}
else if(currentState == sd::SdState::MOUNTED) {
result = ALREADY_MOUNTED;
}
else if(currentState == sd::SdState::OFF) {
result = setSdCardState(sdCard, true);
}
else {
result = HasReturnvaluesIF::RETURN_FAILED;
}
if(result != HasReturnvaluesIF::RETURN_OK or not doMountSdCard) {
return result;
@@ -91,12 +99,19 @@ ReturnValue_t SdCardManager::switchOnSdCard(sd::SdCard sdCard, bool doMountSdCar
}
ReturnValue_t SdCardManager::switchOffSdCard(sd::SdCard sdCard, bool doUnmountSdCard,
SdStatusPair* statusPair) {
std::pair<sd::SdStatus, sd::SdStatus> active;
SdStatePair* statusPair) {
std::pair<sd::SdState, sd::SdState> active;
ReturnValue_t result = getSdCardActiveStatus(active);
if(result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
if(doUnmountSdCard) {
if(not blocking) {
sif::warning << "SdCardManager::switchOffSdCard: Two-step command but manager is"
" not configured for blocking operation. Forcing blocking mode.." << std::endl;
blocking = true;
}
}
// Not allowed, this function turns off one SD card
if(sdCard == sd::SdCard::BOTH) {
sif::warning << "SdCardManager::switchOffSdCard: API does not allow sd::SdStatus::BOTH"
@@ -104,12 +119,12 @@ ReturnValue_t SdCardManager::switchOffSdCard(sd::SdCard sdCard, bool doUnmountSd
return HasReturnvaluesIF::RETURN_FAILED;
}
if(sdCard == sd::SdCard::SLOT_0) {
if(active.first == sd::SdStatus::OFF) {
if(active.first == sd::SdState::OFF) {
return ALREADY_OFF;
}
}
else if(sdCard == sd::SdCard::SLOT_1) {
if(active.second == sd::SdStatus::OFF) {
if(active.second == sd::SdState::OFF) {
return ALREADY_OFF;
}
}
@@ -126,6 +141,9 @@ ReturnValue_t SdCardManager::switchOffSdCard(sd::SdCard sdCard, bool doUnmountSd
ReturnValue_t SdCardManager::setSdCardState(sd::SdCard sdCard, bool on) {
using namespace std;
if(cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING) {
return CommandExecutor::COMMAND_PENDING;
}
string sdstring = "";
string statestring = "";
if(sdCard == sd::SdCard::SLOT_0) {
@@ -135,23 +153,24 @@ ReturnValue_t SdCardManager::setSdCardState(sd::SdCard sdCard, bool on) {
sdstring = "1";
}
if(on) {
currentOp = Operations::SWITCHING_ON;
statestring = "on";
}
else {
currentOp = Operations::SWITCHING_OFF;
statestring = "off";
}
ostringstream command;
command << "q7hw sd set " << sdstring << " " << statestring;
int result = system(command.str().c_str());
if(result == 0) {
return HasReturnvaluesIF::RETURN_OK;
cmdExecutor.load(command.str(), blocking, printCmdOutput);
ReturnValue_t result = cmdExecutor.execute();
if(blocking and result != HasReturnvaluesIF::RETURN_OK) {
utility::handleSystemError(cmdExecutor.getLastError(), "SdCardManager::setSdCardState");
}
sif::warning << "SdCardManager::setSdCardState: system call failed with code " <<
result << std::endl;
return SYSTEM_CALL_ERROR;
return result;
}
ReturnValue_t SdCardManager::getSdCardActiveStatus(SdStatusPair& active) {
ReturnValue_t SdCardManager::getSdCardActiveStatus(SdStatePair& active) {
using namespace std;
if(not filesystem::exists(SD_STATE_FILE)) {
return STATUS_FILE_NEXISTS;
@@ -174,6 +193,9 @@ ReturnValue_t SdCardManager::getSdCardActiveStatus(SdStatusPair& active) {
ReturnValue_t SdCardManager::mountSdCard(sd::SdCard sdCard) {
using namespace std;
if(cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING) {
return CommandExecutor::COMMAND_PENDING;
}
if(sdCard == sd::SdCard::BOTH) {
sif::warning << "SdCardManager::mountSdCard: API does not allow sd::SdStatus::BOTH"
<< std::endl;
@@ -195,16 +217,22 @@ ReturnValue_t SdCardManager::mountSdCard(sd::SdCard sdCard) {
return MOUNT_ERROR;
}
string sdMountCommand = "mount " + mountDev + " " + mountPoint;
int result = system(sdMountCommand.c_str());
if (result != 0) {
utility::handleSystemError(result, "SdCardManager::mountSdCard");
return SYSTEM_CALL_ERROR;
if(not blocking) {
currentOp = Operations::MOUNTING;
}
return HasReturnvaluesIF::RETURN_OK;
string sdMountCommand = "mount " + mountDev + " " + mountPoint;
cmdExecutor.load(sdMountCommand, blocking, printCmdOutput);
ReturnValue_t result = cmdExecutor.execute();
if(blocking and result != HasReturnvaluesIF::RETURN_OK) {
utility::handleSystemError(cmdExecutor.getLastError(), "SdCardManager::mountSdCard");
}
return result;
}
ReturnValue_t SdCardManager::unmountSdCard(sd::SdCard sdCard) {
if(cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING) {
return CommandExecutor::COMMAND_PENDING;
}
using namespace std;
if(sdCard == sd::SdCard::BOTH) {
sif::warning << "SdCardManager::unmountSdCard: API does not allow sd::SdStatus::BOTH"
@@ -229,34 +257,53 @@ ReturnValue_t SdCardManager::unmountSdCard(sd::SdCard sdCard) {
sif::warning << "SdCardManager::unmountSdCard: Mount point is empty!" << std::endl;
}
string sdUnmountCommand = "umount " + mountPoint;
int result = system(sdUnmountCommand.c_str());
if (result != 0) {
utility::handleSystemError(result, "SdCardManager::unmountSdCard");
return SYSTEM_CALL_ERROR;
if(not blocking) {
currentOp = Operations::UNMOUNTING;
}
return HasReturnvaluesIF::RETURN_OK;
cmdExecutor.load(sdUnmountCommand, blocking, printCmdOutput);
ReturnValue_t result = cmdExecutor.execute();
if(blocking and result != HasReturnvaluesIF::RETURN_OK) {
utility::handleSystemError(cmdExecutor.getLastError(), "SdCardManager::unmountSdCard");
}
return result;
}
ReturnValue_t SdCardManager::sanitizeState(SdStatusPair* statusPair, sd::SdCard prefSdCard) {
std::unique_ptr<SdStatusPair> sdStatusPtr;
ReturnValue_t SdCardManager::sanitizeState(SdStatePair* statusPair, sd::SdCard prefSdCard) {
std::unique_ptr<SdStatePair> sdStatusPtr;
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
// Enforce blocking operation for now. Be careful to reset it when returning prematurely!
bool resetNonBlockingState = false;
if(not this->blocking) {
blocking = true;
resetNonBlockingState = true;
}
if(prefSdCard == sd::SdCard::NONE) {
ReturnValue_t result = getPreferredSdCard(prefSdCard);
result = getPreferredSdCard(prefSdCard);
if(result != HasReturnvaluesIF::RETURN_OK) {}
}
if(statusPair == nullptr) {
sdStatusPtr = std::make_unique<SdStatusPair>();
sdStatusPtr = std::make_unique<SdStatePair>();
statusPair = sdStatusPtr.get();
getSdCardActiveStatus(*statusPair);
}
if(statusPair->first == sd::SdStatus::ON) {
return mountSdCard(prefSdCard);
if(statusPair->first == sd::SdState::ON) {
result = mountSdCard(prefSdCard);
}
return switchOnSdCard(prefSdCard, true, statusPair);
result = switchOnSdCard(prefSdCard, true, statusPair);
if(resetNonBlockingState) {
blocking = false;
}
return result;
}
void SdCardManager::processSdStatusLine(std::pair<sd::SdStatus, sd::SdStatus> &active,
void SdCardManager::resetState() {
cmdExecutor.reset();
currentOp = Operations::IDLE;
}
void SdCardManager::processSdStatusLine(std::pair<sd::SdState, sd::SdState> &active,
std::string& line, uint8_t& idx, sd::SdCard& currentSd) {
using namespace std;
istringstream iss(line);
@@ -278,28 +325,28 @@ void SdCardManager::processSdStatusLine(std::pair<sd::SdStatus, sd::SdStatus> &a
if(word == "on") {
if(currentSd == sd::SdCard::SLOT_0) {
active.first = sd::SdStatus::ON;
active.first = sd::SdState::ON;
}
else {
active.second = sd::SdStatus::ON;
active.second = sd::SdState::ON;
}
}
else if (word == "off") {
if(currentSd == sd::SdCard::SLOT_0) {
active.first = sd::SdStatus::OFF;
active.first = sd::SdState::OFF;
}
else {
active.second = sd::SdStatus::OFF;
active.second = sd::SdState::OFF;
}
}
}
if(mountLine) {
if(currentSd == sd::SdCard::SLOT_0) {
active.first = sd::SdStatus::MOUNTED;
active.first = sd::SdState::MOUNTED;
}
else {
active.second = sd::SdStatus::MOUNTED;
active.second = sd::SdState::MOUNTED;
}
}
@@ -329,15 +376,17 @@ ReturnValue_t SdCardManager::setPreferredSdCard(sd::SdCard sdCard) {
}
ReturnValue_t SdCardManager::updateSdCardStateFile() {
if(cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING) {
return CommandExecutor::COMMAND_PENDING;
}
// Use q7hw utility and pipe the command output into the state file
std::string updateCmd = "q7hw sd info all > " + std::string(SD_STATE_FILE);
int result = std::system(updateCmd.c_str());
if(result == 0) {
return HasReturnvaluesIF::RETURN_OK;
cmdExecutor.load(updateCmd, blocking, printCmdOutput);
ReturnValue_t result = cmdExecutor.execute();
if(blocking and result != HasReturnvaluesIF::RETURN_OK) {
utility::handleSystemError(cmdExecutor.getLastError(), "SdCardManager::mountSdCard");
}
sif::warning << "SdCardManager::updateSdCardStateFile: system call failed with code " <<
result << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
return result;
}
std::string SdCardManager::getCurrentMountPrefix(sd::SdCard prefSdCard) {
@@ -354,3 +403,56 @@ std::string SdCardManager::getCurrentMountPrefix(sd::SdCard prefSdCard) {
return SD_1_MOUNT_POINT;
}
}
SdCardManager::OpStatus SdCardManager::checkCurrentOp(Operations &currentOp) {
CommandExecutor::States state = cmdExecutor.getCurrentState();
if(state == CommandExecutor::States::IDLE or state == CommandExecutor::States::COMMAND_LOADED) {
return OpStatus::IDLE;
}
currentOp = this->currentOp;
bool bytesRead = false;
#if OBSW_ENABLE_TIMERS == 1
Timer timer;
timer.setTimer(100);
uint32_t remainingTimeMs = 0;
#endif
while(true) {
ReturnValue_t result = cmdExecutor.check(bytesRead);
// This timer can prevent deadlocks due to missconfigurations
#if OBSW_ENABLE_TIMERS == 1
timer.getTimer(&remainingTimeMs);
if(remainingTimeMs == 0) {
sif::error << "SdCardManager::checkCurrentOp: Timeout!" << std::endl;
return OpStatus::FAIL;
}
#endif
switch(result) {
case(CommandExecutor::BYTES_READ): {
continue;
}
case(CommandExecutor::EXECUTION_FINISHED): {
return OpStatus::SUCCESS;
}
case(HasReturnvaluesIF::RETURN_OK): {
return OpStatus::ONGOING;
}
case(HasReturnvaluesIF::RETURN_FAILED): {
return OpStatus::FAIL;
}
default: {
sif::warning << "SdCardManager::checkCurrentOp: Unhandled case" << std::endl;
}
}
}
}
void SdCardManager::setBlocking(bool blocking) {
this->blocking = blocking;
}
void SdCardManager::setPrintCommandOutput(bool print) {
this->printCmdOutput = print;
}

View File

@@ -1,6 +1,7 @@
#ifndef BSP_Q7S_MEMORY_SDCARDACCESSMANAGER_H_
#define BSP_Q7S_MEMORY_SDCARDACCESSMANAGER_H_
#include <fsfw/osal/linux/CommandExecutor.h>
#include "definitions.h"
#include "returnvalues/classIds.h"
#include "events/subsystemIdRanges.h"
@@ -8,10 +9,13 @@
#include "fsfw/events/Event.h"
#include "fsfw/returnvalues/HasReturnvaluesIF.h"
#include <poll.h>
#include <cstdint>
#include <utility>
#include <string>
#include <optional>
#include <array>
class MutexIF;
@@ -22,16 +26,34 @@ class MutexIF;
class SdCardManager {
friend class SdCardAccess;
public:
using SdStatusPair = std::pair<sd::SdStatus, sd::SdStatus>;
enum class Operations {
SWITCHING_ON,
SWITCHING_OFF,
MOUNTING,
UNMOUNTING,
IDLE
};
enum class OpStatus {
IDLE,
TIMEOUT,
ONGOING,
SUCCESS,
FAIL
};
using SdStatePair = std::pair<sd::SdState, sd::SdState>;
static constexpr uint8_t INTERFACE_ID = CLASS_ID::SD_CARD_MANAGER;
static constexpr ReturnValue_t ALREADY_ON =
static constexpr ReturnValue_t OP_ONGOING =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 0);
static constexpr ReturnValue_t ALREADY_MOUNTED =
static constexpr ReturnValue_t ALREADY_ON =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 1);
static constexpr ReturnValue_t ALREADY_OFF =
static constexpr ReturnValue_t ALREADY_MOUNTED =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 2);
static constexpr ReturnValue_t ALREADY_OFF =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 3);
static constexpr ReturnValue_t STATUS_FILE_NEXISTS =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 10);
static constexpr ReturnValue_t STATUS_FILE_FORMAT_INVALID =
@@ -42,6 +64,8 @@ public:
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 13);
static constexpr ReturnValue_t SYSTEM_CALL_ERROR =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 14);
static constexpr ReturnValue_t POPEN_CALL_ERROR =
HasReturnvaluesIF::makeReturnCode(INTERFACE_ID, 15);
static constexpr uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::FILE_SYSTEM;
@@ -90,7 +114,7 @@ public:
* SYSTEM_CALL_ERROR on system error
*/
ReturnValue_t switchOnSdCard(sd::SdCard sdCard, bool doMountSdCard = true,
SdStatusPair* statusPair = nullptr);
SdStatePair* statusPair = nullptr);
/**
* Switch off the specified SD card.
@@ -102,13 +126,15 @@ public:
* SYSTEM_CALL_ERROR on system error
*/
ReturnValue_t switchOffSdCard(sd::SdCard sdCard, bool doUnmountSdCard = true,
SdStatusPair* statusPair = nullptr);
SdStatePair* statusPair = nullptr);
/**
* Update the state file or creates one if it does not exist. You need to call this
* function before calling #sdCardActive
* @return - RETURN_OK if the state file was updated successfully
* - SYSTEM_CALL_ERROR if the call to create the status file failed
* @return
* - RETURN_OK if the state file was updated successfully
* - CommandExecutor::COMMAND_PENDING: Non-blocking command is pending
* - RETURN_FAILED: blocking command failed
*/
ReturnValue_t updateSdCardStateFile();
@@ -123,7 +149,7 @@ public:
* should call #updateSdCardStateFile again in that case
* - STATUS_FILE_NEXISTS if the status file does not exist
*/
ReturnValue_t getSdCardActiveStatus(SdStatusPair& active);
ReturnValue_t getSdCardActiveStatus(SdStatePair& active);
/**
* Mount the specified SD card. This is necessary to use it.
@@ -143,28 +169,43 @@ public:
* In case that there is a discrepancy between the preferred SD card and the currently
* mounted one, this function will sanitize the state by attempting to mount the
* currently preferred SD card. If the caller already has state information, it can be
* passed into the function.
* passed into the function. For now, this operation will be enforced in blocking mode.
* @param statusPair Current SD card status capture with #getSdCardActiveStatus
* @param prefSdCard Preferred SD card captured with #getPreferredSdCard
* @throws std::bad_alloc if one of the two arguments was a nullptr and an allocation failed
* @return
*/
ReturnValue_t sanitizeState(SdStatusPair* statusPair = nullptr,
ReturnValue_t sanitizeState(SdStatePair* statusPair = nullptr,
sd::SdCard prefSdCard = sd::SdCard::NONE);
/**
* If sd::SdCard::NONE is passed as an argument, this funtion will get the currently
* If sd::SdCard::NONE is passed as an argument, this function will get the currently
* preferred SD card from the scratch buffer.
* @param prefSdCardPtr
* @return
*/
std::string getCurrentMountPrefix(sd::SdCard prefSdCardPtr = sd::SdCard::NONE);
OpStatus checkCurrentOp(Operations& currentOp);
/**
* If there are issues with the state machine, it can be reset with this function
*/
void resetState();
void setBlocking(bool blocking);
void setPrintCommandOutput(bool print);
private:
CommandExecutor cmdExecutor;
Operations currentOp = Operations::IDLE;
bool blocking = false;
bool printCmdOutput = true;
SdCardManager();
ReturnValue_t setSdCardState(sd::SdCard sdCard, bool on);
void processSdStatusLine(SdStatusPair& active, std::string& line, uint8_t& idx,
void processSdStatusLine(SdStatePair& active, std::string& line, uint8_t& idx,
sd::SdCard& currentSd);
std::string currentPrefix;

View File

@@ -5,7 +5,7 @@
namespace sd {
enum SdStatus: uint8_t {
enum SdState: uint8_t {
OFF = 0,
ON = 1,
// A mounted SD card is on as well

View File

@@ -1,7 +1,7 @@
#ifndef BSP_Q7S_SPI_Q7SSPICOMIF_H_
#define BSP_Q7S_SPI_Q7SSPICOMIF_H_
#include <fsfw/hal/linux/spi/SpiComIF.h>
#include <fsfw_hal/linux/spi/SpiComIF.h>
/**

View File

@@ -1,8 +1,8 @@
#include <bsp_q7s/spiCallbacks/rwSpiCallback.h>
#include <fsfw/serviceinterface/ServiceInterface.h>
#include <mission/devices/RwHandler.h>
#include <fsfw/hal/linux/spi/SpiCookie.h>
#include <fsfw/hal/linux/UnixFileGuard.h>
#include <fsfw_hal/linux/spi/SpiCookie.h>
#include <fsfw_hal/linux/UnixFileGuard.h>
#include "devices/gpioIds.h"
namespace rwSpiCallback {

View File

@@ -2,8 +2,8 @@
#define BSP_Q7S_RW_SPI_CALLBACK_H_
#include <fsfw/returnvalues/HasReturnvaluesIF.h>
#include <fsfw/hal/linux/spi/SpiComIF.h>
#include <fsfw/hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/linux/spi/SpiComIF.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
namespace rwSpiCallback {

View File

@@ -54,21 +54,23 @@ set(CMAKE_SYSTEM_PROCESSOR "armv7")
set(CMAKE_C_COMPILER ${CROSS_COMPILE_CC})
set(CMAKE_CXX_COMPILER ${CROSS_COMPILE_CXX})
# List of library dirs where LD has to look. Pass them directly through gcc.
set(LIB_DIRS
"${SYSROOT_PATH}/usr/include"
"${SYSROOT_PATH}/usr/include/linux"
"${SYSROOT_PATH}/usr/lib"
"${SYSROOT_PATH}/lib"
"${SYSROOT_PATH}"
"${SYSROOT_PATH}/usr/lib/arm-xiphos-linux-gnueabi"
)
# You can additionally check the linker paths if you add the
# flags ' -Xlinker --verbose'
set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/lib")
foreach(LIB ${LIB_DIRS})
set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}")
endforeach()
if(EIVE_SYSROOT_MAGIC)
# List of library dirs where LD has to look. Pass them directly through gcc.
set(LIB_DIRS
"${SYSROOT_PATH}/usr/include"
"${SYSROOT_PATH}/usr/include/linux"
"${SYSROOT_PATH}/usr/lib"
"${SYSROOT_PATH}/lib"
"${SYSROOT_PATH}"
"${SYSROOT_PATH}/usr/lib/arm-xiphos-linux-gnueabi"
)
# You can additionally check the linker paths if you add the
# flags ' -Xlinker --verbose'
set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/lib")
foreach(LIB ${LIB_DIRS})
set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}")
endforeach()
endif()
set(CMAKE_PREFIX_PATH
"${CMAKE_PREFIX_PATH}"

View File

@@ -1,30 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Debug-BBB"
defines="LINUX_CROSS_COMPILE=OFF"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"

View File

@@ -1,30 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Debug-BBB"
defines="LINUX_CROSS_COMPILE=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"

View File

@@ -1,30 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Release-BBB"
defines="LINUX_CROSS_COMPILE=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"

View File

@@ -1,30 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Release-BBB"
defines="LINUX_CROSS_COMPILE=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"

View File

@@ -0,0 +1,35 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Debug-BBB"
defines="LINUX_CROSS_COMPILE=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -0,0 +1,35 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Release-BBB"
defines="LINUX_CROSS_COMPILE=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -0,0 +1,35 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/beagleboneblack"
build_generator=""
builddir="build-Debug-BBB"
defines="LINUX_CROSS_COMPILE=OFF"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${builddir}" -d "${defines}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -1,27 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
fi
build_generator=""
os_fsfw="host"
build_dir="Release-Host"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -l"${build_dir}"

View File

@@ -1,26 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
fi
build_generator=""
os_fsfw="host"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "reldeb"

View File

@@ -1,26 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
fi
build_generator=""
os_fsfw="host"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "size"

View File

@@ -0,0 +1,32 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
build_generator="Unix Makefiles"
os_fsfw="host"
builddir="build-Debug-Host"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
else
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -0,0 +1,32 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
build_generator="Unix Makefiles"
os_fsfw="host"
builddir="build-Release-Host"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
else
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -1,27 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
fi
build_generator=""
build_dir="build-Debug-Host"
os_fsfw="host"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l"${build_dir}"

View File

@@ -0,0 +1,32 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
build_generator="Ninja"
os_fsfw="host"
builddir="build-Debug-Host"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
else
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
build_generator="Unix Makefiles"
@@ -26,7 +27,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
build_generator="Unix Makefiles"
@@ -26,6 +27,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -l "${builddir}"
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "create_cmake_cfg.sh not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
build_generator="Ninja"
@@ -26,7 +27,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
# Use this if commands are added which should not be printed
# set +x

View File

@@ -0,0 +1,36 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Debug-Q7S"
build_generator=""
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
python="py"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
@@ -29,6 +30,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
@@ -27,7 +28,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${build_dir}"
# set +x

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
@@ -27,7 +28,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x

View File

@@ -1,24 +1,25 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Simple-Q7S"
build_generator=""
definitions="Q7S_SIMPLE_MODE=On"
definitions="BUILD_Q7S_SIMPLE_MODE=On"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
python="py"
@@ -30,6 +31,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${build_dir}" -d "${definitions}"
# set +x

View File

@@ -1,24 +1,25 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Simple-Q7S"
build_generator="Ninja"
definitions="Q7S_SIMPLE_MODE=On"
definitions="BUILD_Q7S_SIMPLE_MODE=On"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
@@ -28,7 +29,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l "${build_dir}" -d "${definitions}"
# set +x

View File

@@ -0,0 +1,37 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Debug-Watchdog"
build_generator=""
definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
python="py"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-d "${definitions}" -l"${build_dir}"
# set +x

View File

@@ -16,8 +16,9 @@ fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Debug-Q7S"
build_dir="build-Release-Watchdog"
build_generator=""
definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
python="py"
@@ -29,7 +30,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-d "${definitions} -l"${build_dir}"
# set +x

View File

@@ -0,0 +1,35 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Debug-Watchdog"
build_generator="Ninja"
definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
else
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-d "${definitions}" -l "${build_dir}"
# set +x

View File

@@ -0,0 +1,35 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="build-Release-Watchdog"
build_generator="Ninja"
definitions="EIVE_BUILD_WATCHDOG=ON"
if [ "${OS}" = "Windows_NT" ]; then
python="py"
# Could be other OS but this works for now.
else
python="python3"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-d "${definitions}" -l"${build_dir}"
# set +x

View File

@@ -1,19 +1,21 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/raspberrypi"
build_generator=""
@@ -29,7 +31,6 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x

View File

@@ -0,0 +1,33 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/raspberrypi"
build_generator=""
build_dir="build-Release-RPi"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
echo "Running command (without the leading +):"
set -x # Print command
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x

View File

@@ -1,29 +0,0 @@
#!/bin/sh
counter=0
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
fi
os_fsfw="linux"
tgt_bsp="arm/raspberrypi"
build_generator=""
build_dir="build-Release-RPi"
if [ "${OS}" = "Windows_NT" ]; then
build_generator="MinGW Makefiles"
# Could be other OS but this works for now.
else
build_generator="Unix Makefiles"
fi
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
-l"${build_dir}"

View File

@@ -1,17 +1,18 @@
#!/bin/sh
counter=0
cfg_script_name="cmake-build-cfg.py"
while [ ${counter} -lt 5 ]
do
cd ..
if [ -f "cmake_build_config.py" ];then
break
fi
counter=$((counter=counter + 1))
cd ..
if [ -f ${cfg_script_name} ];then
break
fi
counter=$((counter=counter + 1))
done
if [ "${counter}" -ge 5 ];then
echo "cmake_build_config.py not found in upper directories!"
exit 1
echo "${cfg_script_name} not found in upper directories!"
exit 1
fi
os_fsfw="linux"
@@ -27,7 +28,7 @@ fi
echo "Running command (without the leading +):"
set -x # Print command
${python} cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
${python} ${cfg_script_name} -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
-l"${build_dir}"
# set +x

View File

@@ -4,7 +4,7 @@
const char* const SW_NAME = "eive";
#define SW_VERSION 1
#define SW_SUBVERSION 5
#define SW_SUBVERSION 6
#define SW_REVISION 0
#endif /* COMMON_CONFIG_OBSWVERSION_H_ */

View File

@@ -13,12 +13,13 @@ enum commonClassIds: uint8_t {
HEATER_HANDLER, //HEATER
SYRLINKS_HANDLER, //SYRLINKS
IMTQ_HANDLER, //IMTQ
RW_HANDLER, //Reaction Wheels
STR_HANDLER, //Star tracker
PLOC_MPSOC_HANDLER, //PLOC MPSoC
PLOC_SUPERVISOR_HANDLER, //PLOC Supervisor
RW_HANDLER, //RWHA
STR_HANDLER, //STRH
PLOC_MPSOC_HANDLER, //PLMP
PLOC_SUPERVISOR_HANDLER, //PLSV
SUS_HANDLER, //SUSS
CCSDS_IP_CORE_BRIDGE, // IP Core interface
CCSDS_IP_CORE_BRIDGE, //IPCI
PLOC_UPDATER, //PLUD
COMMON_CLASS_ID_END // [EXPORT] : [END]
};

View File

@@ -1,7 +1,10 @@
#ifndef COMMON_CONFIG_COMMONCONFIG_H_
#define COMMON_CONFIG_COMMONCONFIG_H_
#define OBSW_ADD_LWGPS_TEST 0
#define OBSW_ADD_LWGPS_TEST 0
// Use TCP instead of UDP for the TMTC bridge. This allows using the TMTC client locally
// because UDP packets are not allowed in the VPN
#define OBSW_USE_TMTC_TCP_BRIDGE 0
#endif /* COMMON_CONFIG_COMMONCONFIG_H_ */

View File

@@ -8,8 +8,8 @@ enum commonObjects: uint32_t {
/* First Byte 0x50-0x52 reserved for PUS Services **/
CCSDS_PACKET_DISTRIBUTOR = 0x50000100,
PUS_PACKET_DISTRIBUTOR = 0x50000200,
UDP_BRIDGE = 0x50000300,
UDP_POLLING_TASK = 0x50000400,
TMTC_BRIDGE = 0x50000300,
TMTC_POLLING_TASK = 0x50000400,
FILE_SYSTEM_HANDLER = 0x50000500,
/* 0x43 ('C') for Controllers */
@@ -80,7 +80,9 @@ enum commonObjects: uint32_t {
RW3 = 0x44120003,
RW4 = 0x44120004,
START_TRACKER = 0x44130001
START_TRACKER = 0x44130001,
PLOC_UPDATER = 0x44330000
};
}

View File

@@ -17,6 +17,7 @@ enum: uint8_t {
STR_HANDLER = 114,
PLOC_SUPERVISOR_HANDLER = 115,
FILE_SYSTEM = 116,
PLOC_UPDATER = 117,
COMMON_SUBSYSTEM_ID_END
};
}

View File

@@ -2,7 +2,7 @@
#define COMMON_CONFIG_SPICONF_H_
#include <cstdint>
#include <fsfw/hal/linux/spi/spiDefinitions.h>
#include <fsfw_hal/linux/spi/spiDefinitions.h>
/**
* SPI configuration will be contained here to let the device handlers remain independent

BIN
doc/img/eive-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

2
fsfw

Submodule fsfw updated: c5b4b01362...22e29144b6

View File

@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="events" type="PythonConfigurationType" factoryName="Python">
<module name="generators" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/fsfwgen.py" />
<option name="PARAMETERS" value="events" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="objects" type="PythonConfigurationType" factoryName="Python">
<module name="generators" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/fsfwgen.py" />
<option name="PARAMETERS" value="objects" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="returnvalues" type="PythonConfigurationType" factoryName="Python">
<module name="generators" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/fsfwgen.py" />
<option name="PARAMETERS" value="returnvalues" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>

View File

@@ -1,96 +1,102 @@
2200;STORE_SEND_WRITE_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2201;STORE_WRITE_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2202;STORE_SEND_READ_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2203;STORE_READ_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2204;UNEXPECTED_MSG;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2205;STORING_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2206;TM_DUMP_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2207;STORE_INIT_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2208;STORE_INIT_EMPTY;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2209;STORE_CONTENT_CORRUPTED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2210;STORE_INITIALIZE;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2211;INIT_DONE;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2212;DUMP_FINISHED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2213;DELETION_FINISHED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2214;DELETION_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2215;AUTO_CATALOGS_SENDING_FAILED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h
2600;GET_DATA_FAILED;LOW; ;../../fsfw/storagemanager/StorageManagerIF.h
2601;STORE_DATA_FAILED;LOW; ;../../fsfw/storagemanager/StorageManagerIF.h
2800;DEVICE_BUILDING_COMMAND_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2801;DEVICE_SENDING_COMMAND_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2802;DEVICE_REQUESTING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2803;DEVICE_READING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2804;DEVICE_INTERPRETING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2805;DEVICE_MISSED_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2806;DEVICE_UNKNOWN_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2807;DEVICE_UNREQUESTED_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2808;INVALID_DEVICE_COMMAND;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2809;MONITORING_LIMIT_EXCEEDED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
2810;MONITORING_AMBIGUOUS;HIGH; ;../../fsfw/devicehandlers/DeviceHandlerIF.h
4201;FUSE_CURRENT_HIGH;LOW; ;../../fsfw/power/Fuse.h
4202;FUSE_WENT_OFF;LOW; ;../../fsfw/power/Fuse.h
4204;POWER_ABOVE_HIGH_LIMIT;LOW; ;../../fsfw/power/Fuse.h
4205;POWER_BELOW_LOW_LIMIT;LOW; ;../../fsfw/power/Fuse.h
4300;SWITCH_WENT_OFF;LOW; ;../../fsfw/power/PowerSwitchIF.h
5000;HEATER_ON;INFO; ;../../fsfw/thermal/Heater.h
5001;HEATER_OFF;INFO; ;../../fsfw/thermal/Heater.h
5002;HEATER_TIMEOUT;LOW; ;../../fsfw/thermal/Heater.h
5003;HEATER_STAYED_ON;LOW; ;../../fsfw/thermal/Heater.h
5004;HEATER_STAYED_OFF;LOW; ;../../fsfw/thermal/Heater.h
5200;TEMP_SENSOR_HIGH;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h
5201;TEMP_SENSOR_LOW;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h
5202;TEMP_SENSOR_GRADIENT;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h
5901;COMPONENT_TEMP_LOW;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
5902;COMPONENT_TEMP_HIGH;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
5903;COMPONENT_TEMP_OOL_LOW;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
5904;COMPONENT_TEMP_OOL_HIGH;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
5905;TEMP_NOT_IN_OP_RANGE;LOW; ;../../fsfw/thermal/ThermalComponentIF.h
7101;FDIR_CHANGED_STATE;INFO; ;../../fsfw/fdir/FailureIsolationBase.h
7102;FDIR_STARTS_RECOVERY;MEDIUM; ;../../fsfw/fdir/FailureIsolationBase.h
7103;FDIR_TURNS_OFF_DEVICE;MEDIUM; ;../../fsfw/fdir/FailureIsolationBase.h
7201;MONITOR_CHANGED_STATE;LOW; ;../../fsfw/monitoring/MonitoringIF.h
7202;VALUE_BELOW_LOW_LIMIT;LOW; ;../../fsfw/monitoring/MonitoringIF.h
7203;VALUE_ABOVE_HIGH_LIMIT;LOW; ;../../fsfw/monitoring/MonitoringIF.h
7204;VALUE_OUT_OF_RANGE;LOW; ;../../fsfw/monitoring/MonitoringIF.h
7301;SWITCHING_TM_FAILED;LOW; ;../../fsfw/datapool/HkSwitchHelper.h
7400;CHANGING_MODE;INFO; ;../../fsfw/modes/HasModesIF.h
7401;MODE_INFO;INFO; ;../../fsfw/modes/HasModesIF.h
7402;FALLBACK_FAILED;HIGH; ;../../fsfw/modes/HasModesIF.h
7403;MODE_TRANSITION_FAILED;LOW; ;../../fsfw/modes/HasModesIF.h
7404;CANT_KEEP_MODE;HIGH; ;../../fsfw/modes/HasModesIF.h
7405;OBJECT_IN_INVALID_MODE;LOW; ;../../fsfw/modes/HasModesIF.h
7406;FORCING_MODE;MEDIUM; ;../../fsfw/modes/HasModesIF.h
7407;MODE_CMD_REJECTED;LOW; ;../../fsfw/modes/HasModesIF.h
7506;HEALTH_INFO;INFO; ;../../fsfw/health/HasHealthIF.h
7507;CHILD_CHANGED_HEALTH;INFO; ;../../fsfw/health/HasHealthIF.h
7508;CHILD_PROBLEMS;LOW; ;../../fsfw/health/HasHealthIF.h
7509;OVERWRITING_HEALTH;LOW; ;../../fsfw/health/HasHealthIF.h
7510;TRYING_RECOVERY;MEDIUM; ;../../fsfw/health/HasHealthIF.h
7511;RECOVERY_STEP;MEDIUM; ;../../fsfw/health/HasHealthIF.h
7512;RECOVERY_DONE;MEDIUM; ;../../fsfw/health/HasHealthIF.h
7900;RF_AVAILABLE;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
7901;RF_LOST;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
7902;BIT_LOCK;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
7903;BIT_LOCK_LOST;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h
7905;FRAME_PROCESSING_FAILED;LOW; ;../../fsfw/datalinklayer/DataLinkLayer.h
8900;CLOCK_SET;INFO; ;../../fsfw/pus/Service9TimeManagement.h
8901;CLOCK_SET_FAILURE;LOW; ;../../fsfw/pus/Service9TimeManagement.h
9700;TEST;INFO; ;../../fsfw/pus/Service17Test.h
10600;CHANGE_OF_SETUP_PARAMETER;LOW; ;../../mission/devices/MGMHandlerLIS3MDL.h
11101;MEMORY_READ_RPT_CRC_FAILURE;LOW; ;../../mission/devices/PlocMPSoCHandler.h
11102;ACK_FAILURE;LOW; ;../../mission/devices/PlocMPSoCHandler.h
11103;EXE_FAILURE;LOW; ;../../mission/devices/PlocMPSoCHandler.h
11104;CRC_FAILURE_EVENT;LOW; ;../../mission/devices/PlocMPSoCHandler.h
11201;SELF_TEST_I2C_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11202;SELF_TEST_SPI_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11203;SELF_TEST_ADC_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11204;SELF_TEST_PWM_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11205;SELF_TEST_TC_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11206;SELF_TEST_MTM_RANGE_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11207;SELF_TEST_COIL_CURRENT_FAILURE;LOW; ;../../mission/devices/IMTQHandler.h
11208;INVALID_ERROR_BYTE;LOW; ;../../mission/devices/IMTQHandler.h
11301;ERROR_STATE;HIGH; ;../../mission/devices/RwHandler.h
11501;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW; ;../../mission/devices/PlocSupervisorHandler.h
11502;SUPV_ACK_FAILURE;LOW; ;../../mission/devices/PlocSupervisorHandler.h
11503;SUPV_EXE_FAILURE;LOW; ;../../mission/devices/PlocSupervisorHandler.h
11504;SUPV_CRC_FAILURE_EVENT;LOW; ;../../mission/devices/PlocSupervisorHandler.h
2200;STORE_SEND_WRITE_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2201;STORE_WRITE_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2202;STORE_SEND_READ_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2203;STORE_READ_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2204;UNEXPECTED_MSG;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2205;STORING_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2206;TM_DUMP_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2207;STORE_INIT_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2208;STORE_INIT_EMPTY;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2209;STORE_CONTENT_CORRUPTED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2210;STORE_INITIALIZE;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2211;INIT_DONE;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2212;DUMP_FINISHED;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2213;DELETION_FINISHED;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2214;DELETION_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2215;AUTO_CATALOGS_SENDING_FAILED;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2600;GET_DATA_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h
2601;STORE_DATA_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h
2800;DEVICE_BUILDING_COMMAND_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2801;DEVICE_SENDING_COMMAND_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2802;DEVICE_REQUESTING_REPLY_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2803;DEVICE_READING_REPLY_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2804;DEVICE_INTERPRETING_REPLY_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2805;DEVICE_MISSED_REPLY;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2806;DEVICE_UNKNOWN_REPLY;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2807;DEVICE_UNREQUESTED_REPLY;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2808;INVALID_DEVICE_COMMAND;LOW;Indicates a SW bug in child class.;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2809;MONITORING_LIMIT_EXCEEDED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
2810;MONITORING_AMBIGUOUS;HIGH;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
4201;FUSE_CURRENT_HIGH;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
4202;FUSE_WENT_OFF;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
4204;POWER_ABOVE_HIGH_LIMIT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
4205;POWER_BELOW_LOW_LIMIT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
4300;SWITCH_WENT_OFF;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h
5000;HEATER_ON;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
5001;HEATER_OFF;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
5002;HEATER_TIMEOUT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
5003;HEATER_STAYED_ON;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
5004;HEATER_STAYED_OFF;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
5200;TEMP_SENSOR_HIGH;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
5201;TEMP_SENSOR_LOW;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
5202;TEMP_SENSOR_GRADIENT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
5901;COMPONENT_TEMP_LOW;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
5902;COMPONENT_TEMP_HIGH;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
5903;COMPONENT_TEMP_OOL_LOW;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
5904;COMPONENT_TEMP_OOL_HIGH;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
5905;TEMP_NOT_IN_OP_RANGE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
7101;FDIR_CHANGED_STATE;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
7102;FDIR_STARTS_RECOVERY;MEDIUM;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
7103;FDIR_TURNS_OFF_DEVICE;MEDIUM;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
7201;MONITOR_CHANGED_STATE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
7202;VALUE_BELOW_LOW_LIMIT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
7203;VALUE_ABOVE_HIGH_LIMIT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
7204;VALUE_OUT_OF_RANGE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
7301;SWITCHING_TM_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/HkSwitchHelper.h
7400;CHANGING_MODE;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7401;MODE_INFO;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7402;FALLBACK_FAILED;HIGH;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7403;MODE_TRANSITION_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7404;CANT_KEEP_MODE;HIGH;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7405;OBJECT_IN_INVALID_MODE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7406;FORCING_MODE;MEDIUM;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7407;MODE_CMD_REJECTED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
7506;HEALTH_INFO;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7507;CHILD_CHANGED_HEALTH;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7508;CHILD_PROBLEMS;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7509;OVERWRITING_HEALTH;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7510;TRYING_RECOVERY;MEDIUM;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7511;RECOVERY_STEP;MEDIUM;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7512;RECOVERY_DONE;MEDIUM;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
7900;RF_AVAILABLE;INFO;A RF available signal was detected. P1: raw RFA state, P2: 0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7901;RF_LOST;INFO;A previously found RF available signal was lost. P1: raw RFA state, P2: 0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7902;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7903;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7905;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
8900;CLOCK_SET;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/pus/Service9TimeManagement.h
8901;CLOCK_SET_FAILURE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/pus/Service9TimeManagement.h
9700;TEST;INFO;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/pus/Service17Test.h
10600;CHANGE_OF_SETUP_PARAMETER;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/MGMHandlerLIS3MDL.h
11101;MEMORY_READ_RPT_CRC_FAILURE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
11102;ACK_FAILURE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
11103;EXE_FAILURE;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
11104;CRC_FAILURE_EVENT;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
11201;SELF_TEST_I2C_FAILURE;LOW;Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11202;SELF_TEST_SPI_FAILURE;LOW;Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11203;SELF_TEST_ADC_FAILURE;LOW;Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11204;SELF_TEST_PWM_FAILURE;LOW;Get self test result returns PWM failure which concerns the coil actuation. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11205;SELF_TEST_TC_FAILURE;LOW;Get self test result returns TC failure (system failure) P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11206;SELF_TEST_MTM_RANGE_FAILURE;LOW;Get self test result returns failure that MTM values were outside of the expected range. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11207;SELF_TEST_COIL_CURRENT_FAILURE;LOW;Get self test result returns failure indicating that the coil current was outside of the expected range P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11208;INVALID_ERROR_BYTE;LOW;Received invalid error byte. This indicates an error of the communication link between IMTQ and OBC.;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
11301;ERROR_STATE;HIGH;Reaction wheel signals an error state;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h
11501;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
11502;SUPV_ACK_FAILURE;LOW;PLOC supervisor received acknowledgment failure report;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
11503;SUPV_EXE_FAILURE;LOW;PLOC received execution failure report;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
11504;SUPV_CRC_FAILURE_EVENT;LOW;PLOC supervisor reply has invalid crc;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
11700;UPDATE_FILE_NOT_EXISTS;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
11701;ACTION_COMMANDING_FAILED;LOW;;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
11702;UPDATE_AVAILABLE_FAILED;LOW;Supervisor handler replied action message indicating a command execution failure of the update available command;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
11703;UPDATE_TRANSFER_FAILED;LOW;Supervisor handler failed to transfer an update space packet. P1: Parameter holds the number of update packets already sent.;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
11704;UPDATE_VERIFY_FAILED;LOW;Supervisor failed to execute the update verify command.;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
11705;UPDATE_FINISHED;INFO;MPSoC update successful completed;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
1 2200 STORE_SEND_WRITE_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
2 2201 STORE_WRITE_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
3 2202 STORE_SEND_READ_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
4 2203 STORE_READ_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
5 2204 UNEXPECTED_MSG LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
6 2205 STORING_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
7 2206 TM_DUMP_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
8 2207 STORE_INIT_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
9 2208 STORE_INIT_EMPTY INFO ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
10 2209 STORE_CONTENT_CORRUPTED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
11 2210 STORE_INITIALIZE INFO ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
12 2211 INIT_DONE INFO ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
13 2212 DUMP_FINISHED INFO ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
14 2213 DELETION_FINISHED INFO ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
15 2214 DELETION_FAILED LOW ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
16 2215 AUTO_CATALOGS_SENDING_FAILED INFO ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h
17 2600 GET_DATA_FAILED LOW ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h
18 2601 STORE_DATA_FAILED LOW ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h
19 2800 DEVICE_BUILDING_COMMAND_FAILED LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
20 2801 DEVICE_SENDING_COMMAND_FAILED LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
21 2802 DEVICE_REQUESTING_REPLY_FAILED LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
22 2803 DEVICE_READING_REPLY_FAILED LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
23 2804 DEVICE_INTERPRETING_REPLY_FAILED LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
24 2805 DEVICE_MISSED_REPLY LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
25 2806 DEVICE_UNKNOWN_REPLY LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
26 2807 DEVICE_UNREQUESTED_REPLY LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
27 2808 INVALID_DEVICE_COMMAND LOW Indicates a SW bug in child class. ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
28 2809 MONITORING_LIMIT_EXCEEDED LOW ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
29 2810 MONITORING_AMBIGUOUS HIGH ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
30 4201 FUSE_CURRENT_HIGH LOW ../../fsfw/power/Fuse.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
31 4202 FUSE_WENT_OFF LOW ../../fsfw/power/Fuse.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
32 4204 POWER_ABOVE_HIGH_LIMIT LOW ../../fsfw/power/Fuse.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
33 4205 POWER_BELOW_LOW_LIMIT LOW ../../fsfw/power/Fuse.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/Fuse.h
34 4300 SWITCH_WENT_OFF LOW ../../fsfw/power/PowerSwitchIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h
35 5000 HEATER_ON INFO ../../fsfw/thermal/Heater.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
36 5001 HEATER_OFF INFO ../../fsfw/thermal/Heater.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
37 5002 HEATER_TIMEOUT LOW ../../fsfw/thermal/Heater.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
38 5003 HEATER_STAYED_ON LOW ../../fsfw/thermal/Heater.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
39 5004 HEATER_STAYED_OFF LOW ../../fsfw/thermal/Heater.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/Heater.h
40 5200 TEMP_SENSOR_HIGH LOW ../../fsfw/thermal/AbstractTemperatureSensor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
41 5201 TEMP_SENSOR_LOW LOW ../../fsfw/thermal/AbstractTemperatureSensor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
42 5202 TEMP_SENSOR_GRADIENT LOW ../../fsfw/thermal/AbstractTemperatureSensor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/AbstractTemperatureSensor.h
43 5901 COMPONENT_TEMP_LOW LOW ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
44 5902 COMPONENT_TEMP_HIGH LOW ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
45 5903 COMPONENT_TEMP_OOL_LOW LOW ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
46 5904 COMPONENT_TEMP_OOL_HIGH LOW ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
47 5905 TEMP_NOT_IN_OP_RANGE LOW ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h
48 7101 FDIR_CHANGED_STATE INFO ../../fsfw/fdir/FailureIsolationBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
49 7102 FDIR_STARTS_RECOVERY MEDIUM ../../fsfw/fdir/FailureIsolationBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
50 7103 FDIR_TURNS_OFF_DEVICE MEDIUM ../../fsfw/fdir/FailureIsolationBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/FailureIsolationBase.h
51 7201 MONITOR_CHANGED_STATE LOW ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
52 7202 VALUE_BELOW_LOW_LIMIT LOW ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
53 7203 VALUE_ABOVE_HIGH_LIMIT LOW ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
54 7204 VALUE_OUT_OF_RANGE LOW ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h
55 7301 SWITCHING_TM_FAILED LOW ../../fsfw/datapool/HkSwitchHelper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/HkSwitchHelper.h
56 7400 CHANGING_MODE INFO ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
57 7401 MODE_INFO INFO ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
58 7402 FALLBACK_FAILED HIGH ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
59 7403 MODE_TRANSITION_FAILED LOW ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
60 7404 CANT_KEEP_MODE HIGH ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
61 7405 OBJECT_IN_INVALID_MODE LOW ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
62 7406 FORCING_MODE MEDIUM ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
63 7407 MODE_CMD_REJECTED LOW ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h
64 7506 HEALTH_INFO INFO ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
65 7507 CHILD_CHANGED_HEALTH INFO ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
66 7508 CHILD_PROBLEMS LOW ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
67 7509 OVERWRITING_HEALTH LOW ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
68 7510 TRYING_RECOVERY MEDIUM ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
69 7511 RECOVERY_STEP MEDIUM ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
70 7512 RECOVERY_DONE MEDIUM ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h
71 7900 RF_AVAILABLE INFO A RF available signal was detected. P1: raw RFA state, P2: 0 ../../fsfw/datalinklayer/DataLinkLayer.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
72 7901 RF_LOST INFO A previously found RF available signal was lost. P1: raw RFA state, P2: 0 ../../fsfw/datalinklayer/DataLinkLayer.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
73 7902 BIT_LOCK INFO A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0 ../../fsfw/datalinklayer/DataLinkLayer.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
74 7903 BIT_LOCK_LOST INFO A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0 ../../fsfw/datalinklayer/DataLinkLayer.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
75 7905 FRAME_PROCESSING_FAILED LOW The CCSDS Board could not interpret a TC ../../fsfw/datalinklayer/DataLinkLayer.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
76 8900 CLOCK_SET INFO ../../fsfw/pus/Service9TimeManagement.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/pus/Service9TimeManagement.h
77 8901 CLOCK_SET_FAILURE LOW ../../fsfw/pus/Service9TimeManagement.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/pus/Service9TimeManagement.h
78 9700 TEST INFO ../../fsfw/pus/Service17Test.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/pus/Service17Test.h
79 10600 CHANGE_OF_SETUP_PARAMETER LOW ../../mission/devices/MGMHandlerLIS3MDL.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/MGMHandlerLIS3MDL.h
80 11101 MEMORY_READ_RPT_CRC_FAILURE LOW ../../mission/devices/PlocMPSoCHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
81 11102 ACK_FAILURE LOW ../../mission/devices/PlocMPSoCHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
82 11103 EXE_FAILURE LOW ../../mission/devices/PlocMPSoCHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
83 11104 CRC_FAILURE_EVENT LOW ../../mission/devices/PlocMPSoCHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h
84 11201 SELF_TEST_I2C_FAILURE LOW Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
85 11202 SELF_TEST_SPI_FAILURE LOW Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
86 11203 SELF_TEST_ADC_FAILURE LOW Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
87 11204 SELF_TEST_PWM_FAILURE LOW Get self test result returns PWM failure which concerns the coil actuation. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
88 11205 SELF_TEST_TC_FAILURE LOW Get self test result returns TC failure (system failure) P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
89 11206 SELF_TEST_MTM_RANGE_FAILURE LOW Get self test result returns failure that MTM values were outside of the expected range. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
90 11207 SELF_TEST_COIL_CURRENT_FAILURE LOW Get self test result returns failure indicating that the coil current was outside of the expected range P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
91 11208 INVALID_ERROR_BYTE LOW Received invalid error byte. This indicates an error of the communication link between IMTQ and OBC. ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h
92 11301 ERROR_STATE HIGH Reaction wheel signals an error state ../../mission/devices/RwHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h
93 11501 SUPV_MEMORY_READ_RPT_CRC_FAILURE LOW PLOC supervisor crc failure in telemetry packet ../../mission/devices/PlocSupervisorHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
94 11502 SUPV_ACK_FAILURE LOW PLOC supervisor received acknowledgment failure report ../../mission/devices/PlocSupervisorHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
95 11503 SUPV_EXE_FAILURE LOW PLOC received execution failure report ../../mission/devices/PlocSupervisorHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
96 11504 SUPV_CRC_FAILURE_EVENT LOW PLOC supervisor reply has invalid crc ../../mission/devices/PlocSupervisorHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h
97 11700 UPDATE_FILE_NOT_EXISTS LOW C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
98 11701 ACTION_COMMANDING_FAILED LOW C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
99 11702 UPDATE_AVAILABLE_FAILED LOW Supervisor handler replied action message indicating a command execution failure of the update available command C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
100 11703 UPDATE_TRANSFER_FAILED LOW Supervisor handler failed to transfer an update space packet. P1: Parameter holds the number of update packets already sent. C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
101 11704 UPDATE_VERIFY_FAILED LOW Supervisor failed to execute the update verify command. C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h
102 11705 UPDATE_FINISHED INFO MPSoC update successful completed C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h

View File

@@ -37,6 +37,7 @@
0x44250002;PDU2_HANDLER
0x44250003;ACU_HANDLER
0x443200A5;RAD_SENSOR
0x44330000;PLOC_UPDATER
0x44330015;PLOC_MPSOC_HANDLER
0x44330016;PLOC_SUPERVISOR_HANDLER
0x444100A2;SOLAR_ARRAY_DEPL_HANDLER
@@ -68,8 +69,9 @@
0x49050001;CSP_COM_IF
0x50000100;CCSDS_PACKET_DISTRIBUTOR
0x50000200;PUS_PACKET_DISTRIBUTOR
0x50000300;UDP_BRIDGE
0x50000400;UDP_POLLING_TASK
0x50000300;TMTC_BRIDGE
0x50000400;TMTC_POLLING_TASK
0x50000500;FILE_SYSTEM_HANDLER
0x51000500;PUS_SERVICE_6
0x53000000;FSFW_OBJECTS_START
0x53000001;PUS_SERVICE_1_VERIFICATION
1 0x00005060 P60DOCK_TEST_TASK
37 0x44250002 PDU2_HANDLER
38 0x44250003 ACU_HANDLER
39 0x443200A5 RAD_SENSOR
40 0x44330000 PLOC_UPDATER
41 0x44330015 PLOC_MPSOC_HANDLER
42 0x44330016 PLOC_SUPERVISOR_HANDLER
43 0x444100A2 SOLAR_ARRAY_DEPL_HANDLER
69 0x49050001 CSP_COM_IF
70 0x50000100 CCSDS_PACKET_DISTRIBUTOR
71 0x50000200 PUS_PACKET_DISTRIBUTOR
72 0x50000300 UDP_BRIDGE TMTC_BRIDGE
73 0x50000400 UDP_POLLING_TASK TMTC_POLLING_TASK
74 0x50000500 FILE_SYSTEM_HANDLER
75 0x51000500 PUS_SERVICE_6
76 0x53000000 FSFW_OBJECTS_START
77 0x53000001 PUS_SERVICE_1_VERIFICATION

View File

@@ -1,407 +1,461 @@
0x0;OK;System-wide code for ok.;RETURN_OK;HasReturnvaluesIF.h;HasReturnvaluesIF
0x1;Failed;Unspecified system-wide code for failed.;RETURN_FAILED;HasReturnvaluesIF.h;HasReturnvaluesIF
0xe0;_PacketTooLong;;0xE0;../../mission/devices/GomspaceDeviceHandler.h;
0xe1;_InvalidTableId;;0xE1;../../mission/devices/GomspaceDeviceHandler.h;
0xe2;_InvalidAddress;;0xE2;../../mission/devices/GomspaceDeviceHandler.h;
0xe3;_InvalidParamSize;;0xE3;../../mission/devices/GomspaceDeviceHandler.h;
0xe4;_InvalidPayloadSize;;0xE4;../../mission/devices/GomspaceDeviceHandler.h;
0xe5;_UnknownReplyId;;0xE5;../../mission/devices/GomspaceDeviceHandler.h;
0x4da0;PLOC_CrcFailure;;0xA0;../../mission/devices/PlocHandler.h;PLOC_HANDLER
0x4da1;PLOC_ReceivedAckFailure;;0xA1;../../mission/devices/PlocHandler.h;PLOC_HANDLER
0x4da2;PLOC_ReceivedExeFailure;;0xA2;../../mission/devices/PlocHandler.h;PLOC_HANDLER
0x4da3;PLOC_InvalidApid;;0xA3;../../mission/devices/PlocHandler.h;PLOC_HANDLER
0x4ca0;IMTQ_InvalidCommandCode;;0xA0;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ca1;IMTQ_ParameterMissing;;0xA1;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ca2;IMTQ_ParameterInvalid;;0xA2;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ca3;IMTQ_CcUnavailable;;0xA3;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ca4;IMTQ_InternalProcessingError;;0xA4;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ca5;IMTQ_RejectedWithoutReason;;0xA5;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ca6;IMTQ_CmdErrUnknown;;0xA6;../../mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x4ba0;SYRLINKS_CrcFailure;;0xA0;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba1;SYRLINKS_UartFraminOrParityErrorAck;;0xA1;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba2;SYRLINKS_BadCharacterAck;;0xA2;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba3;SYRLINKS_BadParameterValueAck;;0xA3;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba4;SYRLINKS_BadEndOfFrameAck;;0xA4;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba5;SYRLINKS_UnknownCommandIdAck;;0xA5;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba6;SYRLINKS_BadCrcAck;;0xA6;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba7;SYRLINKS_ReplyWrongSize;;0xA7;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4ba8;SYRLINKS_MissingStartFrameCharacter;;0xA8;../../mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x2b01;CCS_BcIsSetVrCommand;;0x01;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2b02;CCS_BcIsUnlockCommand;;0x02;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bb0;CCS_BcIllegalCommand;;0xB0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bb1;CCS_BoardReadingNotFinished;;0xB1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf0;CCS_NsPositiveW;;0xF0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf1;CCS_NsNegativeW;;0xF1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf2;CCS_NsLockout;;0xF2;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf3;CCS_FarmInLockout;;0xF3;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf4;CCS_FarmInWait;;0xF4;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be0;CCS_WrongSymbol;;0xE0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be1;CCS_DoubleStart;;0xE1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be2;CCS_StartSymbolMissed;;0xE2;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be3;CCS_EndWithoutStart;;0xE3;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be4;CCS_TooLarge;;0xE4;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be5;CCS_TooShort;;0xE5;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be6;CCS_WrongTfVersion;;0xE6;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be7;CCS_WrongSpacecraftId;;0xE7;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be8;CCS_NoValidFrameType;;0xE8;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be9;CCS_CrcFailed;;0xE9;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bea;CCS_VcNotFound;;0xEA;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2beb;CCS_ForwardingFailed;;0xEB;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bec;CCS_ContentTooLarge;;0xEC;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bed;CCS_ResidualData;;0xED;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bee;CCS_DataCorrupted;;0xEE;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bef;CCS_IllegalSegmentationFlag;;0xEF;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd0;CCS_IllegalFlagCombination;;0xD0;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd1;CCS_ShorterThanHeader;;0xD1;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd2;CCS_TooShortBlockedPacket;;0xD2;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd3;CCS_TooShortMapExtraction;;0xD3;../../fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2901;IEC_NoConfigurationTable;;0x01;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2902;IEC_NoCpuTable;;0x02;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2903;IEC_InvalidWorkspaceAddress;;0x03;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2904;IEC_TooLittleWorkspace;;0x04;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2905;IEC_WorkspaceAllocation;;0x05;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2906;IEC_InterruptStackTooSmall;;0x06;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2907;IEC_ThreadExitted;;0x07;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2908;IEC_InconsistentMpInformation;;0x08;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2909;IEC_InvalidNode;;0x09;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290a;IEC_NoMpci;;0x0a;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290b;IEC_BadPacket;;0x0b;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290c;IEC_OutOfPackets;;0x0c;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290d;IEC_OutOfGlobalObjects;;0x0d;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290e;IEC_OutOfProxies;;0x0e;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290f;IEC_InvalidGlobalId;;0x0f;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2910;IEC_BadStackHook;;0x10;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2911;IEC_BadAttributes;;0x11;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2912;IEC_ImplementationKeyCreateInconsistency;;0x12;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2913;IEC_ImplementationBlockingOperationCancel;;0x13;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2914;IEC_MutexObtainFromBadState;;0x14;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2915;IEC_UnlimitedAndMaximumIs0;;0x15;../../fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0xe01;HM_InvalidMode;;0x01;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
0xe02;HM_TransNotAllowed;;0x02;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
0xe03;HM_InTransition;;0x03;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
0xe04;HM_InvalidSubmode;;0x04;../../fsfw/modes/HasModesIF.h;HAS_MODES_IF
0x2d01;HPA_InvalidIdentifierId;;0x01;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2d02;HPA_InvalidDomainId;;0x02;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2d03;HPA_InvalidValue;;0x03;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2d05;HPA_ReadOnly;;0x05;../../fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2c01;PAW_UnknownDatatype;;0x01;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c02;PAW_DatatypeMissmatch;;0x02;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c03;PAW_Readonly;;0x03;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c04;PAW_TooBig;;0x04;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c05;PAW_SourceNotSet;;0x05;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c06;PAW_OutOfBounds;;0x06;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c07;PAW_NotSet;;0x07;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c08;PAW_ColumnOrRowsZero;;0x08;../../fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x3101;CF_ObjectHasNoFunctions;;1;../../fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
0x3102;CF_AlreadyCommanding;;2;../../fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
0x3201;HF_IsBusy;;1;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x3202;HF_InvalidParameters;;2;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x3203;HF_ExecutionFinished;;3;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x3204;HF_InvalidActionId;;4;../../fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x201;OM_InsertionFailed;;1;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x202;OM_NotFound;;2;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x203;OM_ChildInitFailed;;3;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x204;OM_InternalErrReporterUninit;;4;../../fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x2500;FDI_YourFault;;0;../../fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
0x2501;FDI_MyFault;;1;../../fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
0x2502;FDI_ConfirmLater;;2;../../fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
0x2101;TMF_Busy;;1;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2102;TMF_LastPacketFound;;2;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2103;TMF_StopFetch;;3;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2104;TMF_Timeout;;4;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2105;TMF_TmChannelFull;;5;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2106;TMF_NotStored;;6;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2107;TMF_AllDeleted;;7;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2108;TMF_InvalidData;;8;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2109;TMF_NotReady;;9;../../fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2001;TMB_Busy;;1;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2002;TMB_Full;;2;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2003;TMB_Empty;;3;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2004;TMB_NullRequested;;4;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2005;TMB_TooLarge;;5;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2006;TMB_NotReady;;6;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2007;TMB_DumpError;;7;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2008;TMB_CrcError;;8;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2009;TMB_Timeout;;9;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200a;TMB_IdlePacketFound;;10;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200b;TMB_TelecommandFound;;11;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200c;TMB_NoPusATm;;12;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200d;TMB_TooSmall;;13;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200e;TMB_BlockNotFound;;14;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200f;TMB_InvalidRequest;;15;../../fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x1c01;TCD_PacketLost;;1;../../fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
0x1c02;TCD_DestinationNotFound;;2;../../fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
0x1c03;TCD_ServiceIdAlreadyExists;;3;../../fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
0x1b00;TCC_IllegalApid;;0;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b01;TCC_IncompletePacket;;1;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b02;TCC_IncorrectChecksum;;2;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b03;TCC_IllegalPacketType;;3;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b04;TCC_IllegalPacketSubtype;;4;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b05;TCC_IncorrectPrimaryHeader;;5;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b06;TCC_IncorrectSecondaryHeader;;6;../../fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x4e1;RMP_CommandNoDescriptorsAvailable;;0xE1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e2;RMP_CommandBufferFull;;0xE2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e3;RMP_CommandChannelOutOfRange;;0xE3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e6;RMP_CommandChannelDeactivated;;0xE6;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e7;RMP_CommandPortOutOfRange;;0xE7;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e8;RMP_CommandPortInUse;;0xE8;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e9;RMP_CommandNoChannel;;0xE9;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4ea;RMP_NoHwCrc;;0xEA;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d0;RMP_ReplyNoReply;;0xD0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d1;RMP_ReplyNotSent;;0xD1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d2;RMP_ReplyNotYetSent;;0xD2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d3;RMP_ReplyMissmatch;;0xD3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d4;RMP_ReplyTimeout;;0xD4;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c0;RMP_ReplyInterfaceBusy;;0xC0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c1;RMP_ReplyTransmissionError;;0xC1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c2;RMP_ReplyInvalidData;;0xC2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c3;RMP_ReplyNotSupported;;0xC3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f0;RMP_LinkDown;;0xF0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f1;RMP_SpwCredit;;0xF1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f2;RMP_SpwEscape;;0xF2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f3;RMP_SpwDisconnect;;0xF3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f4;RMP_SpwParity;;0xF4;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f5;RMP_SpwWriteSync;;0xF5;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f6;RMP_SpwInvalidAddress;;0xF6;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f7;RMP_SpwEarlyEop;;0xF7;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f8;RMP_SpwDma;;0xF8;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f9;RMP_SpwLinkError;;0xF9;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x400;RMP_ReplyOk;;0;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x401;RMP_ReplyGeneralErrorCode;;1;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x402;RMP_ReplyUnusedPacketTypeOrCommandCode;;2;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x403;RMP_ReplyInvalidKey;;3;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x404;RMP_ReplyInvalidDataCrc;;4;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x405;RMP_ReplyEarlyEop;;5;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x406;RMP_ReplyTooMuchData;;6;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x407;RMP_ReplyEep;;7;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x408;RMP_ReplyReserved;;8;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x409;RMP_ReplyVerifyBufferOverrun;;9;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x40a;RMP_ReplyCommandNotImplementedOrNotAuthorised;;10;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x40b;RMP_ReplyRmwDataLengthError;;11;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x40c;RMP_ReplyInvalidTargetLogicalAddress;;12;../../fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x2701;SM_DataTooLarge;;1;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2702;SM_DataStorageFull;;2;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2703;SM_IllegalStorageId;;3;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2704;SM_DataDoesNotExist;;4;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2705;SM_IllegalAddress;;5;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2706;SM_PoolTooLarge;;6;../../fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x36a1;SGP4_InvalidEccentricity;;0xA1;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a2;SGP4_InvalidMeanMotion;;0xA2;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a3;SGP4_InvalidPerturbationElements;;0xA3;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a4;SGP4_InvalidSemiLatusRectum;;0xA4;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a5;SGP4_InvalidEpochElements;;0xA5;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a6;SGP4_SatelliteHasDecayed;;0xA6;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36b1;SGP4_TleTooOld;;0xB1;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36b2;SGP4_TleNotInitialized;;0xB2;../../fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x2301;MT_TooDetailedRequest;;1;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2302;MT_TooGeneralRequest;;2;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2303;MT_NoMatch;;3;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2304;MT_Full;;4;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2305;MT_NewNodeCreated;;5;../../fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x3d01;DLEE_StreamTooShort;;0x01;../../fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
0x3d02;DLEE_DecodingError;;0x02;../../fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
0x2e01;ASC_TooLongForTargetType;;1;../../fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
0x2e02;ASC_InvalidCharacters;;2;../../fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
0x2e03;ASC_BufferTooSmall;;0x3;../../fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
0xf01;CM_UnknownCommand;;1;../../fsfw/ipc/CommandMessageIF.h;COMMAND_MESSAGE
0x3801;MQI_Empty;;1;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3802;MQI_Full; No space left for more messages;2;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3803;MQI_NoReplyPartner; Returned if a reply method was called without partner;3;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3804;MQI_DestinationInvalid; Returned if the target destination is invalid.;4;../../fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3701;MUX_NotEnoughResources;;1;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3702;MUX_InsufficientMemory;;2;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3703;MUX_NoPrivilege;;3;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3704;MUX_WrongAttributeSetting;;4;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3705;MUX_MutexAlreadyLocked;;5;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3706;MUX_MutexNotFound;;6;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3707;MUX_MutexMaxLocks;;7;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3708;MUX_CurrThreadAlreadyOwnsMutex;;8;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3709;MUX_CurrThreadDoesNotOwnMutex;;9;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x370a;MUX_MutexTimeout;;10;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x370b;MUX_MutexInvalidId;;11;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x370c;MUX_MutexDestroyedWhileWaiting;;12;../../fsfw/ipc/MutexIF.h;MUTEX_IF
0x3901;SPH_SemaphoreTimeout;;1;../../fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
0x3902;SPH_SemaphoreNotOwned;;2;../../fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
0x3903;SPH_SemaphoreInvalid;;3;../../fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
0x2801;TC_InvalidTargetState;;1;../../fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
0x28f1;TC_AboveOperationalLimit;;0xF1;../../fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
0x28f2;TC_BelowOperationalLimit;;0xF2;../../fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
0xc02;MS_InvalidEntry;;0x02;../../fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
0xc03;MS_TooManyElements;;0x03;../../fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
0xc04;MS_CantStoreEmpty;;0x04;../../fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
0xd01;SS_SequenceAlreadyExists;;0x01;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd02;SS_TableAlreadyExists;;0x02;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd03;SS_TableDoesNotExist;;0x03;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd04;SS_TableOrSequenceLengthInvalid;;0x04;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd05;SS_SequenceDoesNotExist;;0x05;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd06;SS_TableContainsInvalidObjectId;;0x06;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd07;SS_FallbackSequenceDoesNotExist;;0x07;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd08;SS_NoTargetTable;;0x08;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd09;SS_SequenceOrTableTooLong;;0x09;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd0b;SS_IsFallbackSequence;;0x0B;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd0c;SS_AccessDenied;;0x0C;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd0e;SS_TableInUse;;0x0E;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xda1;SS_TargetTableNotReached;;0xA1;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xda2;SS_TableCheckFailed;;0xA2;../../fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xb01;SB_ChildNotFound;;0x01;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb02;SB_ChildInfoUpdated;;0x02;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb03;SB_ChildDoesntHaveModes;;0x03;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb04;SB_CouldNotInsertChild;;0x04;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb05;SB_TableContainsInvalidObjectId;;0x05;../../fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0x3c00;HKM_QueueOrDestinationInvalid;;0;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c01;HKM_WrongHkPacketType;;1;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c02;HKM_ReportingStatusUnchanged;;2;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c03;HKM_PeriodicHelperInvalid;;3;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c04;HKM_PoolobjectNotFound;;4;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c05;HKM_DatasetNotFound;;5;../../fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3a00;LPIF_PoolEntryNotFound;;0x00;../../fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
0x3a01;LPIF_PoolEntryTypeConflict;;0x01;../../fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
0x3ba0;PVA_InvalidReadWriteMode;;0xA0;../../fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
0x3ba1;PVA_InvalidPoolEntry;;0xA1;../../fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
0x801;DPS_InvalidParameterDefinition;;1;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x802;DPS_SetWasAlreadyRead;;2;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x803;DPS_CommitingWithoutReading;;3;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x804;DPS_DataSetUninitialised;;4;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x805;DPS_DataSetFull;;5;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x806;DPS_PoolVarNull;;6;../../fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x1000;TIM_UnsupportedTimeFormat;;0;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1001;TIM_NotEnoughInformationForTargetFormat;;1;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1002;TIM_LengthMismatch;;2;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1003;TIM_InvalidTimeFormat;;3;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1004;TIM_InvalidDayOfYear;;4;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1005;TIM_TimeDoesNotFitFormat;;5;../../fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x3501;TSI_BadTimestamp;;1;../../fsfw/timemanager/TimeStamperIF.h;TIME_STAMPER_IF
0x1d01;PUS_ActivityStarted;;1;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d02;PUS_InvalidSubservice;;2;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d03;PUS_IllegalApplicationData;;3;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d04;PUS_SendTmFailed;;4;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d05;PUS_Timeout;;5;../../fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1f01;CSB_ExecutionComplete;;1;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f02;CSB_NoStepMessage;;2;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f03;CSB_ObjectBusy;;3;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f04;CSB_Busy;;4;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f05;CSB_InvalidTc;;5;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f06;CSB_InvalidObject;;6;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f07;CSB_InvalidReply;;7;../../fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1101;AL_Full;;0x01;../../fsfw/container/ArrayList.h;ARRAY_LIST
0x1801;FF_Full;;1;../../fsfw/container/FIFOBase.h;FIFO_CLASS
0x1802;FF_Empty;;2;../../fsfw/container/FIFOBase.h;FIFO_CLASS
0x1601;FMM_MapFull;;0x01;../../fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
0x1602;FMM_KeyDoesNotExist;;0x02;../../fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
0x1501;FM_KeyAlreadyExists;;0x01;../../fsfw/container/FixedMap.h;FIXED_MAP
0x1502;FM_MapFull;;0x02;../../fsfw/container/FixedMap.h;FIXED_MAP
0x1503;FM_KeyDoesNotExist;;0x03;../../fsfw/container/FixedMap.h;FIXED_MAP
0x2401;EV_ListenerNotFound;;1;../../fsfw/events/EventManagerIF.h;EVENT_MANAGER_IF
0x1701;HHI_ObjectNotHealthy;;1;../../fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
0x1702;HHI_InvalidHealthState;;2;../../fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
0x2f01;POS_InPowerTransition;;1;../../fsfw/power/PowerSwitcher.h;POWER_SWITCHER
0x2f02;POS_SwitchStateMismatch;;2;../../fsfw/power/PowerSwitcher.h;POWER_SWITCHER
0x501;PS_SwitchOn;;1;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x500;PS_SwitchOff;;0;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x502;PS_SwitchTimeout;;2;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x503;PS_FuseOn;;3;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x504;PS_FuseOff;;4;../../fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x1a01;TRC_NotEnoughSensors;;1;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a02;TRC_LowestValueOol;;2;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a03;TRC_HighestValueOol;;3;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a04;TRC_BothValuesOol;;4;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a05;TRC_DuplexOol;;5;../../fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x3001;LIM_Unchecked;;1;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3002;LIM_Invalid;;2;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3003;LIM_Unselected;;3;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3004;LIM_BelowLowLimit;;4;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3005;LIM_AboveHighLimit;;5;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3006;LIM_UnexpectedValue;;6;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3007;LIM_OutOfRange;;7;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30a0;LIM_FirstSample;;0xA0;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e0;LIM_InvalidSize;;0xE0;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e1;LIM_WrongType;;0xE1;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e2;LIM_WrongPid;;0xE2;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e3;LIM_WrongLimitId;;0xE3;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30ee;LIM_MonitorNotFound;;0xEE;../../fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x4000;FILS_GenericFileError;;0;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4001;FILS_IsBusy;;1;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4002;FILS_InvalidParameters;;2;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4005;FILS_FileDoesNotExist;;5;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4006;FILS_FileAlreadyExists;;6;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4007;FILS_FileLocked;;7;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400a;FILS_DirectoryDoesNotExist;;10;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400b;FILS_DirectoryAlreadyExists;;11;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400c;FILS_DirectoryNotEmpty;;12;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400f;FILS_SequencePacketMissingWrite;;15;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4010;FILS_SequencePacketMissingRead;;16;../../fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x601;PP_DoItMyself;;1;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x602;PP_PointsToVariable;;2;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x603;PP_PointsToMemory;;3;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x604;PP_ActivityCompleted;;4;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x605;PP_PointsToVectorUint8;;5;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x606;PP_PointsToVectorUint16;;6;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x607;PP_PointsToVectorUint32;;7;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x608;PP_PointsToVectorFloat;;8;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6a0;PP_DumpNotSupported;;0xA0;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e0;PP_InvalidSize;;0xE0;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e1;PP_InvalidAddress;;0xE1;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e2;PP_InvalidContent;;0xE2;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e3;PP_UnalignedAccess;;0xE3;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e4;PP_WriteProtected;;0xE4;../../fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x13e0;MH_UnknownCmd;;0xE0;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x13e1;MH_InvalidAddress;;0xE1;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x13e2;MH_InvalidSize;;0xE2;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x13e3;MH_StateMismatch;;0xE3;../../fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x1201;AB_NeedSecondStep;;0x01;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1202;AB_NeedToReconfigure;;0x02;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1203;AB_ModeFallback;;0x03;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1204;AB_ChildNotCommandable;;0x04;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1205;AB_NeedToChangeHealth;;0x05;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x12a1;AB_NotEnoughChildrenInCorrectState;;0xa1;../../fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x3a0;DHB_InvalidChannel;;0xA0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3b0;DHB_AperiodicReply;;0xB0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3b1;DHB_IgnoreReplyData;;0xB1;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3b2;DHB_IgnoreFullPacket;;0xB2;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3c0;DHB_NothingToSend;;0xC0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3c2;DHB_CommandMapError;;0xC2;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3d0;DHB_NoSwitch;;0xD0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3e0;DHB_ChildTimeout;;0xE0;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3e1;DHB_SwitchFailed;;0xE1;../../fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3301;DC_NoReplyReceived;;0x01;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3302;DC_ProtocolError;;0x02;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3303;DC_Nullpointer;;0x03;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3304;DC_InvalidCookieType;;0x04;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3305;DC_NotActive;;0x05;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3306;DC_TooMuchData;;0x06;../../fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x26a0;DHI_NoCommandData;;0xA0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a1;DHI_CommandNotSupported;;0xA1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a2;DHI_CommandAlreadySent;;0xA2;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a3;DHI_CommandWasNotSent;;0xA3;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a4;DHI_CantSwitchAddress;;0xA4;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a5;DHI_WrongModeForCommand;;0xA5;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a6;DHI_Timeout;;0xA6;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a7;DHI_Busy;;0xA7;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a8;DHI_NoReplyExpected;;0xA8;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a9;DHI_NonOpTemperature;;0xA9;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26aa;DHI_CommandNotImplemented;;0xAA;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b0;DHI_ChecksumError;;0xB0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b1;DHI_LengthMissmatch;;0xB1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b2;DHI_InvalidData;;0xB2;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b3;DHI_ProtocolError;;0xB3;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c0;DHI_DeviceDidNotExecute;;0xC0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c1;DHI_DeviceReportedError;;0xC1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c2;DHI_UnknownDeviceReply;;0xC2;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c3;DHI_DeviceReplyInvalid;;0xC3;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26d0;DHI_InvalidCommandParameter;;0xD0;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26d1;DHI_InvalidNumberOrLengthOfParameters;;0xD1;../../fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x1401;SE_BufferTooShort;;1;../../fsfw/serialize/SerializeIF.h;SERIALIZE_IF
0x1402;SE_StreamTooShort;;2;../../fsfw/serialize/SerializeIF.h;SERIALIZE_IF
0x1403;SE_TooManyElements;;3;../../fsfw/serialize/SerializeIF.h;SERIALIZE_IF
0x4aa1;HEATER_CommandNotSupported;;0xA1;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4aa2;HEATER_InitFailed;;0xA2;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4aa3;HEATER_InvalidSwitchNr;;0xA3;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4aa4;HEATER_MainSwitchSetTimeout;;0xA4;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4aa5;HEATER_CommandAlreadyWaiting;;0xA5;../../linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4ea0;SUSS_ErrorUnlockMutex;;0xA0;../../linux/devices/SusHandler.h;SUS_HANDLER
0x4ea1;SUSS_ErrorLockMutex;;0xA1;../../linux/devices/SusHandler.h;SUS_HANDLER
0x57a0;SADPL_CommandNotSupported;;0xA0;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x57a1;SADPL_DeploymentAlreadyExecuting;;0xA1;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x57a2;SADPL_MainSwitchTimeoutFailure;;0xA2;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x57a3;SADPL_SwitchingDeplSa1Failed;;0xA3;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x57a4;SADPL_SwitchingDeplSa2Failed;;0xA4;../../linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x5e00;GOMS_PacketTooLong;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
0x5e01;GOMS_InvalidTableId;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
0x5e02;GOMS_InvalidAddress;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
0x5e03;GOMS_InvalidParamSize;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
0x5e04;GOMS_InvalidPayloadSize;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
0x5e05;GOMS_UnknownReplyId;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h;GOM_SPACE_HANDLER
0x50a0;IMTQ_InvalidCommandCode;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a1;IMTQ_ParameterMissing;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a2;IMTQ_ParameterInvalid;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a3;IMTQ_CcUnavailable;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a4;IMTQ_InternalProcessingError;;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a5;IMTQ_RejectedWithoutReason;;0xA5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a6;IMTQ_CmdErrUnknown;;0xA6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x50a7;IMTQ_UnexpectedSelfTestReply;The status reply to a self test command was received but no self test command has been sent. This should normally never happen.;0xA7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h;IMTQ_HANDLER
0x53a0;PLMP_CrcFailure;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
0x53a1;PLMP_ReceivedAckFailure;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
0x53a2;PLMP_ReceivedExeFailure;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
0x53a3;PLMP_InvalidApid;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h;PLOC_MPSOC_HANDLER
0x54a0;PLSV_CrcFailure;Space Packet received from PLOC supervisor has invalid CRC;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a1;PLSV_ReceivedAckFailure;Received ACK failure reply from PLOC supervisor;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a2;PLSV_ReceivedExeFailure;Received execution failure reply from PLOC supervisor;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a3;PLSV_InvalidApid;Received space packet with invalid APID from PLOC supervisor;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a4;PLSV_GetTimeFailure;Failed to read current system time;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a5;PLSV_InvalidUartComIf;Invalid communication interface specified;0xA5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a6;PLSV_InvalidWatchdog;Received command with invalid watchdog parameter. Valid watchdogs are 0 for PS, 1 for PL and 2 for INT;0xA6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a7;PLSV_InvalidWatchdogTimeout;Received watchdog timeout config command with invalid timeout. Valid timeouts must be in the range between 1000 and 360000 ms.;0xA7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a8;PLSV_InvalidLatchupId;Received latchup config command with invalid latchup ID;0xA8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54a9;PLSV_SweepPeriodTooSmall;Received set adc sweep period command with invalid sweep period. Must be larger than 21.;0xA9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54aa;PLSV_InvalidTestParam;Receive auto EM test command with invalid test param. Valid params are 1 and 2.;0xAA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54ab;PLSV_MramPacketParsingFailure;Returned when scanning for MRAM dump packets failed.;0xAB;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54ac;PLSV_InvalidMramAddresses;Returned when the start and stop addresses of the MRAM dump or MRAM wipe commands are invalid (e.g. start address bigger than stop address);0xAC;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x54ad;PLSV_NoMramPacket;Expect reception of an MRAM dump packet but received space packet with other apid.;0xAD;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h;PLOC_SUPERVISOR_HANDLER
0x57a0;PLUD_UpdaterBusy;Updater is already performing an update;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h;PLOC_UPDATER
0x57a1;PLUD_NameTooLong;Received update command with invalid path string (too long).;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h;PLOC_UPDATER
0x57a2;PLUD_SdNotMounted;Received command to initiate update but SD card with update image not mounted.;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h;PLOC_UPDATER
0x57a3;PLUD_FileNotExists;Update file received with update command does not exist.;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h;PLOC_UPDATER
0x51b0;RWHA_SpiWriteFailure;;0xB0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51b1;RWHA_SpiReadFailure;Used by the spi send function to tell a failing read call;0xB1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51b2;RWHA_MissingStartSign;Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E;0xB2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51b3;RWHA_InvalidSubstitute;Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination;0xB3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51b4;RWHA_MissingEndSign;HDLC decoding mechanism never receives the end sign 0x7E;0xB4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51b5;RWHA_NoReply;Reaction wheel only responds with empty frames.;0xB5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51a0;RWHA_InvalidSpeed;Action Message with invalid speed was received. Valid speeds must be in the range of [-65000; 1000] or [1000; 65000];0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51a1;RWHA_InvalidRampTime;Action Message with invalid ramp time was received.;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51a2;RWHA_SetSpeedCommandInvalidLength;Received set speed command has invalid length. Should be 6.;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51a3;RWHA_ExecutionFailed;Command execution failed;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x51a4;RWHA_CrcError;Reaction wheel reply has invalid crc;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h;RW_HANDLER
0x52b0;STRH_CrcFailure;Received reply with invalid CRC;0xB0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/StarTrackerHandler.h;STR_HANDLER
0x52a0;STRH_TmReplyError;Result code of tm reply indicates an error;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/StarTrackerHandler.h;STR_HANDLER
0x4fa0;SYRLINKS_CrcFailure;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa1;SYRLINKS_UartFraminOrParityErrorAck;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa2;SYRLINKS_BadCharacterAck;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa3;SYRLINKS_BadParameterValueAck;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa4;SYRLINKS_BadEndOfFrameAck;;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa5;SYRLINKS_UnknownCommandIdAck;;0xA5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa6;SYRLINKS_BadCrcAck;;0xA6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa7;SYRLINKS_ReplyWrongSize;;0xA7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4fa8;SYRLINKS_MissingStartFrameCharacter;;0xA8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h;SYRLINKS_HANDLER
0x4401;HGIO_UnknownGpioId;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
0x4402;HGIO_DriveGpioFailure;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
0x4403;HGIO_GpioTypeFailure;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
0x4404;HGIO_GpioInvalidInstance;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h;HAL_GPIO
0x4100;HSPI_HalTimeoutRetval;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h;HAL_SPI
0x4101;HSPI_HalBusyRetval;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h;HAL_SPI
0x4102;HSPI_HalErrorRetval;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h;HAL_SPI
0x4201;HURT_UartReadFailure;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h;HAL_UART
0x4202;HURT_UartReadSizeMissmatch;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h;HAL_UART
0x4203;HURT_UartRxBufferTooSmall;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h;HAL_UART
0x3101;CF_ObjectHasNoFunctions;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
0x3102;CF_AlreadyCommanding;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/CommandsActionsIF.h;COMMANDS_ACTIONS_IF
0x3201;HF_IsBusy;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x3202;HF_InvalidParameters;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x3203;HF_ExecutionFinished;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x3204;HF_InvalidActionId;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h;HAS_ACTIONS_IF
0x1101;AL_Full;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/ArrayList.h;ARRAY_LIST
0x1801;FF_Full;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FIFOBase.h;FIFO_CLASS
0x1802;FF_Empty;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FIFOBase.h;FIFO_CLASS
0x1501;FM_KeyAlreadyExists;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP
0x1502;FM_MapFull;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP
0x1503;FM_KeyDoesNotExist;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedMap.h;FIXED_MAP
0x1601;FMM_MapFull;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
0x1602;FMM_KeyDoesNotExist;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedOrderedMultimap.h;FIXED_MULTIMAP
0x36a1;SGP4_InvalidEccentricity;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a2;SGP4_InvalidMeanMotion;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a3;SGP4_InvalidPerturbationElements;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a4;SGP4_InvalidSemiLatusRectum;;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a5;SGP4_InvalidEpochElements;;0xA5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36a6;SGP4_SatelliteHasDecayed;;0xA6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36b1;SGP4_TleTooOld;;0xB1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x36b2;SGP4_TleNotInitialized;;0xB2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h;SGP4PROPAGATOR_CLASS
0x2b01;CCS_BcIsSetVrCommand;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2b02;CCS_BcIsUnlockCommand;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bb0;CCS_BcIllegalCommand;;0xB0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bb1;CCS_BoardReadingNotFinished;;0xB1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf0;CCS_NsPositiveW;;0xF0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf1;CCS_NsNegativeW;;0xF1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf2;CCS_NsLockout;;0xF2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf3;CCS_FarmInLockout;;0xF3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bf4;CCS_FarmInWait;;0xF4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be0;CCS_WrongSymbol;;0xE0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be1;CCS_DoubleStart;;0xE1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be2;CCS_StartSymbolMissed;;0xE2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be3;CCS_EndWithoutStart;;0xE3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be4;CCS_TooLarge;;0xE4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be5;CCS_TooShort;;0xE5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be6;CCS_WrongTfVersion;;0xE6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be7;CCS_WrongSpacecraftId;;0xE7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be8;CCS_NoValidFrameType;;0xE8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2be9;CCS_CrcFailed;;0xE9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bea;CCS_VcNotFound;;0xEA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2beb;CCS_ForwardingFailed;;0xEB;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bec;CCS_ContentTooLarge;;0xEC;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bed;CCS_ResidualData;;0xED;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bee;CCS_DataCorrupted;;0xEE;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bef;CCS_IllegalSegmentationFlag;;0xEF;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd0;CCS_IllegalFlagCombination;;0xD0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd1;CCS_ShorterThanHeader;;0xD1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd2;CCS_TooShortBlockedPacket;;0xD2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x2bd3;CCS_TooShortMapExtraction;;0xD3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h;CCSDS_HANDLER_IF
0x801;DPS_InvalidParameterDefinition;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x802;DPS_SetWasAlreadyRead;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x803;DPS_CommitingWithoutReading;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x804;DPS_DataSetUninitialised;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x805;DPS_DataSetFull;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x806;DPS_PoolVarNull;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h;DATA_SET_CLASS
0x3ba0;PVA_InvalidReadWriteMode;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
0x3ba1;PVA_InvalidPoolEntry;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/PoolVariableIF.h;POOL_VARIABLE_IF
0x3c00;HKM_QueueOrDestinationInvalid;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c01;HKM_WrongHkPacketType;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c02;HKM_ReportingStatusUnchanged;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c03;HKM_PeriodicHelperInvalid;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c04;HKM_PoolobjectNotFound;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3c05;HKM_DatasetNotFound;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h;HOUSEKEEPING_MANAGER
0x3a00;LPIF_PoolEntryNotFound;;0x00;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
0x3a01;LPIF_PoolEntryTypeConflict;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h;LOCAL_POOL_OWNER_IF
0x1201;AB_NeedSecondStep;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1202;AB_NeedToReconfigure;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1203;AB_ModeFallback;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1204;AB_ChildNotCommandable;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x1205;AB_NeedToChangeHealth;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x12a1;AB_NotEnoughChildrenInCorrectState;;0xa1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h;ASSEMBLY_BASE
0x3301;DC_NoReplyReceived;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3302;DC_ProtocolError;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3303;DC_Nullpointer;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3304;DC_InvalidCookieType;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3305;DC_NotActive;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3306;DC_TooMuchData;;0x06;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h;DEVICE_COMMUNICATION_IF
0x3a0;DHB_InvalidChannel;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3b0;DHB_AperiodicReply;;0xB0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3b1;DHB_IgnoreReplyData;;0xB1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3b2;DHB_IgnoreFullPacket;;0xB2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3c0;DHB_NothingToSend;;0xC0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3c2;DHB_CommandMapError;;0xC2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3d0;DHB_NoSwitch;;0xD0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3e0;DHB_ChildTimeout;;0xE0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x3e1;DHB_SwitchFailed;;0xE1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h;DEVICE_HANDLER_BASE
0x26a0;DHI_NoCommandData;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a1;DHI_CommandNotSupported;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a2;DHI_CommandAlreadySent;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a3;DHI_CommandWasNotSent;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a4;DHI_CantSwitchAddress;;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a5;DHI_WrongModeForCommand;;0xA5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a6;DHI_Timeout;;0xA6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a7;DHI_Busy;;0xA7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a8;DHI_NoReplyExpected;;0xA8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26a9;DHI_NonOpTemperature;;0xA9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26aa;DHI_CommandNotImplemented;;0xAA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b0;DHI_ChecksumError;;0xB0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b1;DHI_LengthMissmatch;;0xB1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b2;DHI_InvalidData;;0xB2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26b3;DHI_ProtocolError;;0xB3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c0;DHI_DeviceDidNotExecute;;0xC0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c1;DHI_DeviceReportedError;;0xC1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c2;DHI_UnknownDeviceReply;;0xC2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26c3;DHI_DeviceReplyInvalid;;0xC3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26d0;DHI_InvalidCommandParameter;;0xD0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x26d1;DHI_InvalidNumberOrLengthOfParameters;;0xD1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h;DEVICE_HANDLER_IF
0x2401;EV_ListenerNotFound;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/events/EventManagerIF.h;EVENT_MANAGER_IF
0x2500;FDI_YourFault;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
0x2501;FDI_MyFault;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
0x2502;FDI_ConfirmLater;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h;HANDLES_FAILURES_IF
0x2301;MT_TooDetailedRequest;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2302;MT_TooGeneralRequest;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2303;MT_NoMatch;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2304;MT_Full;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2305;MT_NewNodeCreated;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h;MATCH_TREE_CLASS
0x2e01;ASC_TooLongForTargetType;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
0x2e02;ASC_InvalidCharacters;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
0x2e03;ASC_BufferTooSmall;;0x3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h;ASCII_CONVERTER
0x3d01;DLEE_StreamTooShort;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
0x3d02;DLEE_DecodingError;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/DleEncoder.h;DLE_ENCODER
0x1701;HHI_ObjectNotHealthy;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
0x1702;HHI_InvalidHealthState;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h;HAS_HEALTH_IF
0xf01;CM_UnknownCommand;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/CommandMessageIF.h;COMMAND_MESSAGE
0x3801;MQI_Empty;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3802;MQI_Full;No space left for more messages;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3803;MQI_NoReplyPartner;Returned if a reply method was called without partner;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3804;MQI_DestinationInvalid;Returned if the target destination is invalid.;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h;MESSAGE_QUEUE_IF
0x3701;MUX_NotEnoughResources;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3702;MUX_InsufficientMemory;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3703;MUX_NoPrivilege;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3704;MUX_WrongAttributeSetting;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3705;MUX_MutexAlreadyLocked;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3706;MUX_MutexNotFound;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3707;MUX_MutexMaxLocks;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3708;MUX_CurrThreadAlreadyOwnsMutex;;8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x3709;MUX_CurrThreadDoesNotOwnMutex;;9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x370a;MUX_MutexTimeout;;10;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x370b;MUX_MutexInvalidId;;11;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x370c;MUX_MutexDestroyedWhileWaiting;;12;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h;MUTEX_IF
0x4000;FILS_GenericFileError;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4001;FILS_IsBusy;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4002;FILS_InvalidParameters;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4005;FILS_FileDoesNotExist;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4006;FILS_FileAlreadyExists;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4007;FILS_FileLocked;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400a;FILS_DirectoryDoesNotExist;;10;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400b;FILS_DirectoryAlreadyExists;;11;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400c;FILS_DirectoryNotEmpty;;12;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x400f;FILS_SequencePacketMissingWrite;;15;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x4010;FILS_SequencePacketMissingRead;;16;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h;FILE_SYSTEM
0x601;PP_DoItMyself;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x602;PP_PointsToVariable;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x603;PP_PointsToMemory;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x604;PP_ActivityCompleted;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x605;PP_PointsToVectorUint8;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x606;PP_PointsToVectorUint16;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x607;PP_PointsToVectorUint32;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x608;PP_PointsToVectorFloat;;8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6a0;PP_DumpNotSupported;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e0;PP_InvalidSize;;0xE0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e1;PP_InvalidAddress;;0xE1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e2;PP_InvalidContent;;0xE2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e3;PP_UnalignedAccess;;0xE3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x6e4;PP_WriteProtected;;0xE4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h;HAS_MEMORY_IF
0x13e0;MH_UnknownCmd;;0xE0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x13e1;MH_InvalidAddress;;0xE1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x13e2;MH_InvalidSize;;0xE2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0x13e3;MH_StateMismatch;;0xE3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h;MEMORY_HELPER
0xe01;HM_InvalidMode;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
0xe02;HM_TransNotAllowed;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
0xe03;HM_InTransition;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
0xe04;HM_InvalidSubmode;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h;HAS_MODES_IF
0x3001;LIM_Unchecked;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3002;LIM_Invalid;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3003;LIM_Unselected;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3004;LIM_BelowLowLimit;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3005;LIM_AboveHighLimit;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3006;LIM_UnexpectedValue;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x3007;LIM_OutOfRange;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30a0;LIM_FirstSample;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e0;LIM_InvalidSize;;0xE0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e1;LIM_WrongType;;0xE1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e2;LIM_WrongPid;;0xE2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30e3;LIM_WrongLimitId;;0xE3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x30ee;LIM_MonitorNotFound;;0xEE;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h;LIMITS_IF
0x1a01;TRC_NotEnoughSensors;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a02;TRC_LowestValueOol;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a03;TRC_HighestValueOol;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a04;TRC_BothValuesOol;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x1a05;TRC_DuplexOol;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h;TRIPLE_REDUNDACY_CHECK
0x201;OM_InsertionFailed;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x202;OM_NotFound;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x203;OM_ChildInitFailed;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x204;OM_InternalErrReporterUninit;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h;OBJECT_MANAGER_IF
0x2901;IEC_NoConfigurationTable;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2902;IEC_NoCpuTable;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2903;IEC_InvalidWorkspaceAddress;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2904;IEC_TooLittleWorkspace;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2905;IEC_WorkspaceAllocation;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2906;IEC_InterruptStackTooSmall;;0x06;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2907;IEC_ThreadExitted;;0x07;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2908;IEC_InconsistentMpInformation;;0x08;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2909;IEC_InvalidNode;;0x09;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290a;IEC_NoMpci;;0x0a;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290b;IEC_BadPacket;;0x0b;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290c;IEC_OutOfPackets;;0x0c;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290d;IEC_OutOfGlobalObjects;;0x0d;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290e;IEC_OutOfProxies;;0x0e;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x290f;IEC_InvalidGlobalId;;0x0f;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2910;IEC_BadStackHook;;0x10;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2911;IEC_BadAttributes;;0x11;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2912;IEC_ImplementationKeyCreateInconsistency;;0x12;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2913;IEC_ImplementationBlockingOperationCancel;;0x13;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2914;IEC_MutexObtainFromBadState;;0x14;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2915;IEC_UnlimitedAndMaximumIs0;;0x15;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h;INTERNAL_ERROR_CODES
0x2d01;HPA_InvalidIdentifierId;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2d02;HPA_InvalidDomainId;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2d03;HPA_InvalidValue;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2d05;HPA_ReadOnly;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h;HAS_PARAMETERS_IF
0x2c01;PAW_UnknownDatatype;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c02;PAW_DatatypeMissmatch;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c03;PAW_Readonly;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c04;PAW_TooBig;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c05;PAW_SourceNotSet;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c06;PAW_OutOfBounds;;0x06;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c07;PAW_NotSet;;0x07;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2c08;PAW_ColumnOrRowsZero;;0x08;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h;PARAMETER_WRAPPER
0x2f01;POS_InPowerTransition;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitcher.h;POWER_SWITCHER
0x2f02;POS_SwitchStateMismatch;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitcher.h;POWER_SWITCHER
0x501;PS_SwitchOn;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x500;PS_SwitchOff;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x502;PS_SwitchTimeout;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x503;PS_FuseOn;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x504;PS_FuseOff;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h;POWER_SWITCH_IF
0x4e1;RMP_CommandNoDescriptorsAvailable;;0xE1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e2;RMP_CommandBufferFull;;0xE2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e3;RMP_CommandChannelOutOfRange;;0xE3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e6;RMP_CommandChannelDeactivated;;0xE6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e7;RMP_CommandPortOutOfRange;;0xE7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e8;RMP_CommandPortInUse;;0xE8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4e9;RMP_CommandNoChannel;;0xE9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4ea;RMP_NoHwCrc;;0xEA;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d0;RMP_ReplyNoReply;;0xD0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d1;RMP_ReplyNotSent;;0xD1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d2;RMP_ReplyNotYetSent;;0xD2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d3;RMP_ReplyMissmatch;;0xD3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4d4;RMP_ReplyTimeout;;0xD4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c0;RMP_ReplyInterfaceBusy;;0xC0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c1;RMP_ReplyTransmissionError;;0xC1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c2;RMP_ReplyInvalidData;;0xC2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4c3;RMP_ReplyNotSupported;;0xC3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f0;RMP_LinkDown;;0xF0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f1;RMP_SpwCredit;;0xF1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f2;RMP_SpwEscape;;0xF2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f3;RMP_SpwDisconnect;;0xF3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f4;RMP_SpwParity;;0xF4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f5;RMP_SpwWriteSync;;0xF5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f6;RMP_SpwInvalidAddress;;0xF6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f7;RMP_SpwEarlyEop;;0xF7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f8;RMP_SpwDma;;0xF8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x4f9;RMP_SpwLinkError;;0xF9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x400;RMP_ReplyOk;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x401;RMP_ReplyGeneralErrorCode;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x402;RMP_ReplyUnusedPacketTypeOrCommandCode;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x403;RMP_ReplyInvalidKey;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x404;RMP_ReplyInvalidDataCrc;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x405;RMP_ReplyEarlyEop;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x406;RMP_ReplyTooMuchData;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x407;RMP_ReplyEep;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x408;RMP_ReplyReserved;;8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x409;RMP_ReplyVerifyBufferOverrun;;9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x40a;RMP_ReplyCommandNotImplementedOrNotAuthorised;;10;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x40b;RMP_ReplyRmwDataLengthError;;11;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x40c;RMP_ReplyInvalidTargetLogicalAddress;;12;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h;RMAP_CHANNEL
0x1401;SE_BufferTooShort;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF
0x1402;SE_StreamTooShort;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF
0x1403;SE_TooManyElements;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/serialize/SerializeIF.h;SERIALIZE_IF
0x2701;SM_DataTooLarge;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2702;SM_DataStorageFull;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2703;SM_IllegalStorageId;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2704;SM_DataDoesNotExist;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2705;SM_IllegalAddress;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0x2706;SM_PoolTooLarge;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h;STORAGE_MANAGER_IF
0xc02;MS_InvalidEntry;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
0xc03;MS_TooManyElements;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
0xc04;MS_CantStoreEmpty;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h;MODE_STORE_IF
0xd01;SS_SequenceAlreadyExists;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd02;SS_TableAlreadyExists;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd03;SS_TableDoesNotExist;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd04;SS_TableOrSequenceLengthInvalid;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd05;SS_SequenceDoesNotExist;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd06;SS_TableContainsInvalidObjectId;;0x06;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd07;SS_FallbackSequenceDoesNotExist;;0x07;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd08;SS_NoTargetTable;;0x08;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd09;SS_SequenceOrTableTooLong;;0x09;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd0b;SS_IsFallbackSequence;;0x0B;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd0c;SS_AccessDenied;;0x0C;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xd0e;SS_TableInUse;;0x0E;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xda1;SS_TargetTableNotReached;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xda2;SS_TableCheckFailed;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h;SUBSYSTEM
0xb01;SB_ChildNotFound;;0x01;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb02;SB_ChildInfoUpdated;;0x02;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb03;SB_ChildDoesntHaveModes;;0x03;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb04;SB_CouldNotInsertChild;;0x04;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0xb05;SB_TableContainsInvalidObjectId;;0x05;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h;SUBSYSTEM_BASE
0x3901;SPH_SemaphoreTimeout;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
0x3902;SPH_SemaphoreNotOwned;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
0x3903;SPH_SemaphoreInvalid;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h;SEMAPHORE_IF
0x1c01;TCD_PacketLost;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
0x1c02;TCD_DestinationNotFound;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
0x1c03;TCD_ServiceIdAlreadyExists;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h;PACKET_DISTRIBUTION
0x1b00;TCC_IllegalApid;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b01;TCC_IncompletePacket;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b02;TCC_IncorrectChecksum;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b03;TCC_IllegalPacketType;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b04;TCC_IllegalPacketSubtype;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b05;TCC_IncorrectPrimaryHeader;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x1b06;TCC_IncorrectSecondaryHeader;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h;TC_PACKET_CHECK
0x2801;TC_InvalidTargetState;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
0x28f1;TC_AboveOperationalLimit;;0xF1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
0x28f2;TC_BelowOperationalLimit;;0xF2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h;THERMAL_COMPONENT_IF
0x1000;TIM_UnsupportedTimeFormat;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1001;TIM_NotEnoughInformationForTargetFormat;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1002;TIM_LengthMismatch;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1003;TIM_InvalidTimeFormat;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1004;TIM_InvalidDayOfYear;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x1005;TIM_TimeDoesNotFitFormat;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h;CCSDS_TIME_HELPER_CLASS
0x3501;TSI_BadTimestamp;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/TimeStamperIF.h;TIME_STAMPER_IF
0x2001;TMB_Busy;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2002;TMB_Full;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2003;TMB_Empty;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2004;TMB_NullRequested;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2005;TMB_TooLarge;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2006;TMB_NotReady;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2007;TMB_DumpError;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2008;TMB_CrcError;;8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2009;TMB_Timeout;;9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200a;TMB_IdlePacketFound;;10;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200b;TMB_TelecommandFound;;11;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200c;TMB_NoPusATm;;12;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200d;TMB_TooSmall;;13;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200e;TMB_BlockNotFound;;14;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x200f;TMB_InvalidRequest;;15;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h;TM_STORE_BACKEND_IF
0x2101;TMF_Busy;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2102;TMF_LastPacketFound;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2103;TMF_StopFetch;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2104;TMF_Timeout;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2105;TMF_TmChannelFull;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2106;TMF_NotStored;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2107;TMF_AllDeleted;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2108;TMF_InvalidData;;8;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x2109;TMF_NotReady;;9;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h;TM_STORE_FRONTEND_IF
0x1d01;PUS_ActivityStarted;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d02;PUS_InvalidSubservice;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d03;PUS_IllegalApplicationData;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d04;PUS_SendTmFailed;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1d05;PUS_Timeout;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h;ACCEPTS_TELECOMMANDS_IF
0x1f01;CSB_ExecutionComplete;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f02;CSB_NoStepMessage;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f03;CSB_ObjectBusy;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f04;CSB_Busy;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f05;CSB_InvalidTc;;5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f06;CSB_InvalidObject;;6;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x1f07;CSB_InvalidReply;;7;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h;COMMAND_SERVICE_BASE
0x6100;SCBU_KeyNotFound;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/scratchApi.h;SCRATCH_BUFFER
0x6000;SDMA_AlreadyOn;;0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
0x6001;SDMA_UnknownGpioId;;1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h;SD_CARD_MANAGER
0x6002;SDMA_DriveGpioFailure;;2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h;SD_CARD_MANAGER
0x600a;SDMA_StatusFileNexists;;10;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
0x600b;SDMA_StatusFileFormatInvalid;;11;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
0x600c;SDMA_MountError;;12;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
0x600d;SDMA_UnmountError;;13;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
0x600e;SDMA_SystemCallError;;14;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h;SD_CARD_MANAGER
0x6003;SDMA_GpioTypeFailure;;3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h;SD_CARD_MANAGER
0x6004;SDMA_GpioInvalidInstance;;4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h;SD_CARD_MANAGER
0x4ea1;HEATER_CommandNotSupported;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4ea2;HEATER_InitFailed;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4ea3;HEATER_InvalidSwitchNr;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4ea4;HEATER_MainSwitchSetTimeout;;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
0x4ea5;HEATER_CommandAlreadyWaiting;;0xA5;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h;HEATER_HANDLER
0x5fa0;SADPL_CommandNotSupported;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x5fa1;SADPL_DeploymentAlreadyExecuting;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x5fa2;SADPL_MainSwitchTimeoutFailure;;0xA2;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x5fa3;SADPL_SwitchingDeplSa1Failed;;0xA3;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x5fa4;SADPL_SwitchingDeplSa2Failed;;0xA4;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h;SA_DEPL_HANDLER
0x55a0;SUSS_ErrorUnlockMutex;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SusHandler.h;SUS_HANDLER
0x55a1;SUSS_ErrorLockMutex;;0xA1;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SusHandler.h;SUS_HANDLER
0x56a0;IPCI_PapbBusy;;0xA0;C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/obc/CCSDSIPCoreBridge.h;CCSDS_IP_CORE_BRIDGE
1 0x0 OK System-wide code for ok. RETURN_OK HasReturnvaluesIF.h HasReturnvaluesIF
2 0x1 Failed Unspecified system-wide code for failed. RETURN_FAILED HasReturnvaluesIF.h HasReturnvaluesIF
3 0xe0 0x5e00 _PacketTooLong GOMS_PacketTooLong 0xE0 0 ../../mission/devices/GomspaceDeviceHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h GOM_SPACE_HANDLER
4 0xe1 0x5e01 _InvalidTableId GOMS_InvalidTableId 0xE1 1 ../../mission/devices/GomspaceDeviceHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h GOM_SPACE_HANDLER
5 0xe2 0x5e02 _InvalidAddress GOMS_InvalidAddress 0xE2 2 ../../mission/devices/GomspaceDeviceHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h GOM_SPACE_HANDLER
6 0xe3 0x5e03 _InvalidParamSize GOMS_InvalidParamSize 0xE3 3 ../../mission/devices/GomspaceDeviceHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h GOM_SPACE_HANDLER
7 0xe4 0x5e04 _InvalidPayloadSize GOMS_InvalidPayloadSize 0xE4 4 ../../mission/devices/GomspaceDeviceHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h GOM_SPACE_HANDLER
8 0xe5 0x5e05 _UnknownReplyId GOMS_UnknownReplyId 0xE5 5 ../../mission/devices/GomspaceDeviceHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/GomspaceDeviceHandler.h GOM_SPACE_HANDLER
9 0x4da0 0x50a0 PLOC_CrcFailure IMTQ_InvalidCommandCode 0xA0 ../../mission/devices/PlocHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h PLOC_HANDLER IMTQ_HANDLER
10 0x4da1 0x50a1 PLOC_ReceivedAckFailure IMTQ_ParameterMissing 0xA1 ../../mission/devices/PlocHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h PLOC_HANDLER IMTQ_HANDLER
11 0x4da2 0x50a2 PLOC_ReceivedExeFailure IMTQ_ParameterInvalid 0xA2 ../../mission/devices/PlocHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h PLOC_HANDLER IMTQ_HANDLER
12 0x4da3 0x50a3 PLOC_InvalidApid IMTQ_CcUnavailable 0xA3 ../../mission/devices/PlocHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h PLOC_HANDLER IMTQ_HANDLER
13 0x4ca0 0x50a4 IMTQ_InvalidCommandCode IMTQ_InternalProcessingError 0xA0 0xA4 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h IMTQ_HANDLER
14 0x4ca1 0x50a5 IMTQ_ParameterMissing IMTQ_RejectedWithoutReason 0xA1 0xA5 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h IMTQ_HANDLER
15 0x4ca2 0x50a6 IMTQ_ParameterInvalid IMTQ_CmdErrUnknown 0xA2 0xA6 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h IMTQ_HANDLER
16 0x4ca3 0x50a7 IMTQ_CcUnavailable IMTQ_UnexpectedSelfTestReply The status reply to a self test command was received but no self test command has been sent. This should normally never happen. 0xA3 0xA7 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/IMTQHandler.h IMTQ_HANDLER
17 0x4ca4 0x53a0 IMTQ_InternalProcessingError PLMP_CrcFailure 0xA4 0xA0 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h IMTQ_HANDLER PLOC_MPSOC_HANDLER
18 0x4ca5 0x53a1 IMTQ_RejectedWithoutReason PLMP_ReceivedAckFailure 0xA5 0xA1 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h IMTQ_HANDLER PLOC_MPSOC_HANDLER
19 0x4ca6 0x53a2 IMTQ_CmdErrUnknown PLMP_ReceivedExeFailure 0xA6 0xA2 ../../mission/devices/IMTQHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h IMTQ_HANDLER PLOC_MPSOC_HANDLER
20 0x4ba0 0x53a3 SYRLINKS_CrcFailure PLMP_InvalidApid 0xA0 0xA3 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocMPSoCHandler.h SYRLINKS_HANDLER PLOC_MPSOC_HANDLER
21 0x4ba1 0x54a0 SYRLINKS_UartFraminOrParityErrorAck PLSV_CrcFailure Space Packet received from PLOC supervisor has invalid CRC 0xA1 0xA0 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
22 0x4ba2 0x54a1 SYRLINKS_BadCharacterAck PLSV_ReceivedAckFailure Received ACK failure reply from PLOC supervisor 0xA2 0xA1 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
23 0x4ba3 0x54a2 SYRLINKS_BadParameterValueAck PLSV_ReceivedExeFailure Received execution failure reply from PLOC supervisor 0xA3 0xA2 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
24 0x4ba4 0x54a3 SYRLINKS_BadEndOfFrameAck PLSV_InvalidApid Received space packet with invalid APID from PLOC supervisor 0xA4 0xA3 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
25 0x4ba5 0x54a4 SYRLINKS_UnknownCommandIdAck PLSV_GetTimeFailure Failed to read current system time 0xA5 0xA4 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
26 0x4ba6 0x54a5 SYRLINKS_BadCrcAck PLSV_InvalidUartComIf Invalid communication interface specified 0xA6 0xA5 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
27 0x4ba7 0x54a6 SYRLINKS_ReplyWrongSize PLSV_InvalidWatchdog Received command with invalid watchdog parameter. Valid watchdogs are 0 for PS, 1 for PL and 2 for INT 0xA7 0xA6 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
28 0x4ba8 0x54a7 SYRLINKS_MissingStartFrameCharacter PLSV_InvalidWatchdogTimeout Received watchdog timeout config command with invalid timeout. Valid timeouts must be in the range between 1000 and 360000 ms. 0xA8 0xA7 ../../mission/devices/SyrlinksHkHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h SYRLINKS_HANDLER PLOC_SUPERVISOR_HANDLER
29 0x2b01 0x54a8 CCS_BcIsSetVrCommand PLSV_InvalidLatchupId Received latchup config command with invalid latchup ID 0x01 0xA8 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h CCSDS_HANDLER_IF PLOC_SUPERVISOR_HANDLER
30 0x2b02 0x54a9 CCS_BcIsUnlockCommand PLSV_SweepPeriodTooSmall Received set adc sweep period command with invalid sweep period. Must be larger than 21. 0x02 0xA9 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h CCSDS_HANDLER_IF PLOC_SUPERVISOR_HANDLER
31 0x2bb0 0x54aa CCS_BcIllegalCommand PLSV_InvalidTestParam Receive auto EM test command with invalid test param. Valid params are 1 and 2. 0xB0 0xAA ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h CCSDS_HANDLER_IF PLOC_SUPERVISOR_HANDLER
32 0x2bb1 0x54ab CCS_BoardReadingNotFinished PLSV_MramPacketParsingFailure Returned when scanning for MRAM dump packets failed. 0xB1 0xAB ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h CCSDS_HANDLER_IF PLOC_SUPERVISOR_HANDLER
33 0x2bf0 0x54ac CCS_NsPositiveW PLSV_InvalidMramAddresses Returned when the start and stop addresses of the MRAM dump or MRAM wipe commands are invalid (e.g. start address bigger than stop address) 0xF0 0xAC ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h CCSDS_HANDLER_IF PLOC_SUPERVISOR_HANDLER
34 0x2bf1 0x54ad CCS_NsNegativeW PLSV_NoMramPacket Expect reception of an MRAM dump packet but received space packet with other apid. 0xF1 0xAD ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocSupervisorHandler.h CCSDS_HANDLER_IF PLOC_SUPERVISOR_HANDLER
35 0x2bf2 0x57a0 CCS_NsLockout PLUD_UpdaterBusy Updater is already performing an update 0xF2 0xA0 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h CCSDS_HANDLER_IF PLOC_UPDATER
36 0x2bf3 0x57a1 CCS_FarmInLockout PLUD_NameTooLong Received update command with invalid path string (too long). 0xF3 0xA1 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h CCSDS_HANDLER_IF PLOC_UPDATER
37 0x2bf4 0x57a2 CCS_FarmInWait PLUD_SdNotMounted Received command to initiate update but SD card with update image not mounted. 0xF4 0xA2 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h CCSDS_HANDLER_IF PLOC_UPDATER
38 0x2be0 0x57a3 CCS_WrongSymbol PLUD_FileNotExists Update file received with update command does not exist. 0xE0 0xA3 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/PlocUpdater.h CCSDS_HANDLER_IF PLOC_UPDATER
39 0x2be1 0x51b0 CCS_DoubleStart RWHA_SpiWriteFailure 0xE1 0xB0 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
40 0x2be2 0x51b1 CCS_StartSymbolMissed RWHA_SpiReadFailure Used by the spi send function to tell a failing read call 0xE2 0xB1 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
41 0x2be3 0x51b2 CCS_EndWithoutStart RWHA_MissingStartSign Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E 0xE3 0xB2 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
42 0x2be4 0x51b3 CCS_TooLarge RWHA_InvalidSubstitute Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination 0xE4 0xB3 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
43 0x2be5 0x51b4 CCS_TooShort RWHA_MissingEndSign HDLC decoding mechanism never receives the end sign 0x7E 0xE5 0xB4 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
44 0x2be6 0x51b5 CCS_WrongTfVersion RWHA_NoReply Reaction wheel only responds with empty frames. 0xE6 0xB5 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
45 0x2be7 0x51a0 CCS_WrongSpacecraftId RWHA_InvalidSpeed Action Message with invalid speed was received. Valid speeds must be in the range of [-65000 0xE7 1000] or [1000 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h 65000] CCSDS_HANDLER_IF 0xA0
46 0x2be8 0x51a1 CCS_NoValidFrameType RWHA_InvalidRampTime Action Message with invalid ramp time was received. 0xE8 0xA1 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
47 0x2be9 0x51a2 CCS_CrcFailed RWHA_SetSpeedCommandInvalidLength Received set speed command has invalid length. Should be 6. 0xE9 0xA2 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
48 0x2bea 0x51a3 CCS_VcNotFound RWHA_ExecutionFailed Command execution failed 0xEA 0xA3 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
49 0x2beb 0x51a4 CCS_ForwardingFailed RWHA_CrcError Reaction wheel reply has invalid crc 0xEB 0xA4 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/RwHandler.h CCSDS_HANDLER_IF RW_HANDLER
50 0x2bec 0x52b0 CCS_ContentTooLarge STRH_CrcFailure Received reply with invalid CRC 0xEC 0xB0 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/StarTrackerHandler.h CCSDS_HANDLER_IF STR_HANDLER
51 0x2bed 0x52a0 CCS_ResidualData STRH_TmReplyError Result code of tm reply indicates an error 0xED 0xA0 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/StarTrackerHandler.h CCSDS_HANDLER_IF STR_HANDLER
52 0x2bee 0x4fa0 CCS_DataCorrupted SYRLINKS_CrcFailure 0xEE 0xA0 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h CCSDS_HANDLER_IF SYRLINKS_HANDLER
53 0x2bef 0x4fa1 CCS_IllegalSegmentationFlag SYRLINKS_UartFraminOrParityErrorAck 0xEF 0xA1 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h CCSDS_HANDLER_IF SYRLINKS_HANDLER
54 0x2bd0 0x4fa2 CCS_IllegalFlagCombination SYRLINKS_BadCharacterAck 0xD0 0xA2 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h CCSDS_HANDLER_IF SYRLINKS_HANDLER
55 0x2bd1 0x4fa3 CCS_ShorterThanHeader SYRLINKS_BadParameterValueAck 0xD1 0xA3 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h CCSDS_HANDLER_IF SYRLINKS_HANDLER
56 0x2bd2 0x4fa4 CCS_TooShortBlockedPacket SYRLINKS_BadEndOfFrameAck 0xD2 0xA4 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h CCSDS_HANDLER_IF SYRLINKS_HANDLER
57 0x2bd3 0x4fa5 CCS_TooShortMapExtraction SYRLINKS_UnknownCommandIdAck 0xD3 0xA5 ../../fsfw/datalinklayer/CCSDSReturnValuesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h CCSDS_HANDLER_IF SYRLINKS_HANDLER
58 0x2901 0x4fa6 IEC_NoConfigurationTable SYRLINKS_BadCrcAck 0x01 0xA6 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h INTERNAL_ERROR_CODES SYRLINKS_HANDLER
59 0x2902 0x4fa7 IEC_NoCpuTable SYRLINKS_ReplyWrongSize 0x02 0xA7 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h INTERNAL_ERROR_CODES SYRLINKS_HANDLER
60 0x2903 0x4fa8 IEC_InvalidWorkspaceAddress SYRLINKS_MissingStartFrameCharacter 0x03 0xA8 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/mission/devices/SyrlinksHkHandler.h INTERNAL_ERROR_CODES SYRLINKS_HANDLER
61 0x2904 0x4401 IEC_TooLittleWorkspace HGIO_UnknownGpioId 0x04 1 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h INTERNAL_ERROR_CODES HAL_GPIO
62 0x2905 0x4402 IEC_WorkspaceAllocation HGIO_DriveGpioFailure 0x05 2 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h INTERNAL_ERROR_CODES HAL_GPIO
63 0x2906 0x4403 IEC_InterruptStackTooSmall HGIO_GpioTypeFailure 0x06 3 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h INTERNAL_ERROR_CODES HAL_GPIO
64 0x2907 0x4404 IEC_ThreadExitted HGIO_GpioInvalidInstance 0x07 4 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h INTERNAL_ERROR_CODES HAL_GPIO
65 0x2908 0x4100 IEC_InconsistentMpInformation HSPI_HalTimeoutRetval 0x08 0 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h INTERNAL_ERROR_CODES HAL_SPI
66 0x2909 0x4101 IEC_InvalidNode HSPI_HalBusyRetval 0x09 1 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h INTERNAL_ERROR_CODES HAL_SPI
67 0x290a 0x4102 IEC_NoMpci HSPI_HalErrorRetval 0x0a 2 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h INTERNAL_ERROR_CODES HAL_SPI
68 0x290b 0x4201 IEC_BadPacket HURT_UartReadFailure 0x0b 1 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h INTERNAL_ERROR_CODES HAL_UART
69 0x290c 0x4202 IEC_OutOfPackets HURT_UartReadSizeMissmatch 0x0c 2 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h INTERNAL_ERROR_CODES HAL_UART
70 0x290d 0x4203 IEC_OutOfGlobalObjects HURT_UartRxBufferTooSmall 0x0d 3 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/hal/src/fsfw_hal/linux/uart/UartComIF.h INTERNAL_ERROR_CODES HAL_UART
71 0x290e 0x3101 IEC_OutOfProxies CF_ObjectHasNoFunctions 0x0e 1 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/CommandsActionsIF.h INTERNAL_ERROR_CODES COMMANDS_ACTIONS_IF
72 0x290f 0x3102 IEC_InvalidGlobalId CF_AlreadyCommanding 0x0f 2 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/CommandsActionsIF.h INTERNAL_ERROR_CODES COMMANDS_ACTIONS_IF
73 0x2910 0x3201 IEC_BadStackHook HF_IsBusy 0x10 1 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h INTERNAL_ERROR_CODES HAS_ACTIONS_IF
74 0x2911 0x3202 IEC_BadAttributes HF_InvalidParameters 0x11 2 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h INTERNAL_ERROR_CODES HAS_ACTIONS_IF
75 0x2912 0x3203 IEC_ImplementationKeyCreateInconsistency HF_ExecutionFinished 0x12 3 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h INTERNAL_ERROR_CODES HAS_ACTIONS_IF
76 0x2913 0x3204 IEC_ImplementationBlockingOperationCancel HF_InvalidActionId 0x13 4 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/action/HasActionsIF.h INTERNAL_ERROR_CODES HAS_ACTIONS_IF
77 0x2914 0x1101 IEC_MutexObtainFromBadState AL_Full 0x14 0x01 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/ArrayList.h INTERNAL_ERROR_CODES ARRAY_LIST
78 0x2915 0x1801 IEC_UnlimitedAndMaximumIs0 FF_Full 0x15 1 ../../fsfw/osal/InternalErrorCodes.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FIFOBase.h INTERNAL_ERROR_CODES FIFO_CLASS
79 0xe01 0x1802 HM_InvalidMode FF_Empty 0x01 2 ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FIFOBase.h HAS_MODES_IF FIFO_CLASS
80 0xe02 0x1501 HM_TransNotAllowed FM_KeyAlreadyExists 0x02 0x01 ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedMap.h HAS_MODES_IF FIXED_MAP
81 0xe03 0x1502 HM_InTransition FM_MapFull 0x03 0x02 ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedMap.h HAS_MODES_IF FIXED_MAP
82 0xe04 0x1503 HM_InvalidSubmode FM_KeyDoesNotExist 0x04 0x03 ../../fsfw/modes/HasModesIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedMap.h HAS_MODES_IF FIXED_MAP
83 0x2d01 0x1601 HPA_InvalidIdentifierId FMM_MapFull 0x01 ../../fsfw/parameters/HasParametersIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedOrderedMultimap.h HAS_PARAMETERS_IF FIXED_MULTIMAP
84 0x2d02 0x1602 HPA_InvalidDomainId FMM_KeyDoesNotExist 0x02 ../../fsfw/parameters/HasParametersIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/container/FixedOrderedMultimap.h HAS_PARAMETERS_IF FIXED_MULTIMAP
85 0x2d03 0x36a1 HPA_InvalidValue SGP4_InvalidEccentricity 0x03 0xA1 ../../fsfw/parameters/HasParametersIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h HAS_PARAMETERS_IF SGP4PROPAGATOR_CLASS
86 0x2d05 0x36a2 HPA_ReadOnly SGP4_InvalidMeanMotion 0x05 0xA2 ../../fsfw/parameters/HasParametersIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h HAS_PARAMETERS_IF SGP4PROPAGATOR_CLASS
87 0x2c01 0x36a3 PAW_UnknownDatatype SGP4_InvalidPerturbationElements 0x01 0xA3 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h PARAMETER_WRAPPER SGP4PROPAGATOR_CLASS
88 0x2c02 0x36a4 PAW_DatatypeMissmatch SGP4_InvalidSemiLatusRectum 0x02 0xA4 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h PARAMETER_WRAPPER SGP4PROPAGATOR_CLASS
89 0x2c03 0x36a5 PAW_Readonly SGP4_InvalidEpochElements 0x03 0xA5 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h PARAMETER_WRAPPER SGP4PROPAGATOR_CLASS
90 0x2c04 0x36a6 PAW_TooBig SGP4_SatelliteHasDecayed 0x04 0xA6 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h PARAMETER_WRAPPER SGP4PROPAGATOR_CLASS
91 0x2c05 0x36b1 PAW_SourceNotSet SGP4_TleTooOld 0x05 0xB1 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h PARAMETER_WRAPPER SGP4PROPAGATOR_CLASS
92 0x2c06 0x36b2 PAW_OutOfBounds SGP4_TleNotInitialized 0x06 0xB2 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/coordinates/Sgp4Propagator.h PARAMETER_WRAPPER SGP4PROPAGATOR_CLASS
93 0x2c07 0x2b01 PAW_NotSet CCS_BcIsSetVrCommand 0x07 0x01 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h PARAMETER_WRAPPER CCSDS_HANDLER_IF
94 0x2c08 0x2b02 PAW_ColumnOrRowsZero CCS_BcIsUnlockCommand 0x08 0x02 ../../fsfw/parameters/ParameterWrapper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h PARAMETER_WRAPPER CCSDS_HANDLER_IF
95 0x3101 0x2bb0 CF_ObjectHasNoFunctions CCS_BcIllegalCommand 1 0xB0 ../../fsfw/action/CommandsActionsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h COMMANDS_ACTIONS_IF CCSDS_HANDLER_IF
96 0x3102 0x2bb1 CF_AlreadyCommanding CCS_BoardReadingNotFinished 2 0xB1 ../../fsfw/action/CommandsActionsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h COMMANDS_ACTIONS_IF CCSDS_HANDLER_IF
97 0x3201 0x2bf0 HF_IsBusy CCS_NsPositiveW 1 0xF0 ../../fsfw/action/HasActionsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HAS_ACTIONS_IF CCSDS_HANDLER_IF
98 0x3202 0x2bf1 HF_InvalidParameters CCS_NsNegativeW 2 0xF1 ../../fsfw/action/HasActionsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HAS_ACTIONS_IF CCSDS_HANDLER_IF
99 0x3203 0x2bf2 HF_ExecutionFinished CCS_NsLockout 3 0xF2 ../../fsfw/action/HasActionsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HAS_ACTIONS_IF CCSDS_HANDLER_IF
100 0x3204 0x2bf3 HF_InvalidActionId CCS_FarmInLockout 4 0xF3 ../../fsfw/action/HasActionsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HAS_ACTIONS_IF CCSDS_HANDLER_IF
101 0x201 0x2bf4 OM_InsertionFailed CCS_FarmInWait 1 0xF4 ../../fsfw/objectmanager/ObjectManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h OBJECT_MANAGER_IF CCSDS_HANDLER_IF
102 0x202 0x2be0 OM_NotFound CCS_WrongSymbol 2 0xE0 ../../fsfw/objectmanager/ObjectManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h OBJECT_MANAGER_IF CCSDS_HANDLER_IF
103 0x203 0x2be1 OM_ChildInitFailed CCS_DoubleStart 3 0xE1 ../../fsfw/objectmanager/ObjectManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h OBJECT_MANAGER_IF CCSDS_HANDLER_IF
104 0x204 0x2be2 OM_InternalErrReporterUninit CCS_StartSymbolMissed 4 0xE2 ../../fsfw/objectmanager/ObjectManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h OBJECT_MANAGER_IF CCSDS_HANDLER_IF
105 0x2500 0x2be3 FDI_YourFault CCS_EndWithoutStart 0 0xE3 ../../fsfw/fdir/ConfirmsFailuresIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HANDLES_FAILURES_IF CCSDS_HANDLER_IF
106 0x2501 0x2be4 FDI_MyFault CCS_TooLarge 1 0xE4 ../../fsfw/fdir/ConfirmsFailuresIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HANDLES_FAILURES_IF CCSDS_HANDLER_IF
107 0x2502 0x2be5 FDI_ConfirmLater CCS_TooShort 2 0xE5 ../../fsfw/fdir/ConfirmsFailuresIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h HANDLES_FAILURES_IF CCSDS_HANDLER_IF
108 0x2101 0x2be6 TMF_Busy CCS_WrongTfVersion 1 0xE6 ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
109 0x2102 0x2be7 TMF_LastPacketFound CCS_WrongSpacecraftId 2 0xE7 ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
110 0x2103 0x2be8 TMF_StopFetch CCS_NoValidFrameType 3 0xE8 ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
111 0x2104 0x2be9 TMF_Timeout CCS_CrcFailed 4 0xE9 ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
112 0x2105 0x2bea TMF_TmChannelFull CCS_VcNotFound 5 0xEA ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
113 0x2106 0x2beb TMF_NotStored CCS_ForwardingFailed 6 0xEB ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
114 0x2107 0x2bec TMF_AllDeleted CCS_ContentTooLarge 7 0xEC ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
115 0x2108 0x2bed TMF_InvalidData CCS_ResidualData 8 0xED ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
116 0x2109 0x2bee TMF_NotReady CCS_DataCorrupted 9 0xEE ../../fsfw/tmstorage/TmStoreFrontendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_FRONTEND_IF CCSDS_HANDLER_IF
117 0x2001 0x2bef TMB_Busy CCS_IllegalSegmentationFlag 1 0xEF ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_BACKEND_IF CCSDS_HANDLER_IF
118 0x2002 0x2bd0 TMB_Full CCS_IllegalFlagCombination 2 0xD0 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_BACKEND_IF CCSDS_HANDLER_IF
119 0x2003 0x2bd1 TMB_Empty CCS_ShorterThanHeader 3 0xD1 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_BACKEND_IF CCSDS_HANDLER_IF
120 0x2004 0x2bd2 TMB_NullRequested CCS_TooShortBlockedPacket 4 0xD2 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_BACKEND_IF CCSDS_HANDLER_IF
121 0x2005 0x2bd3 TMB_TooLarge CCS_TooShortMapExtraction 5 0xD3 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h TM_STORE_BACKEND_IF CCSDS_HANDLER_IF
122 0x2006 0x801 TMB_NotReady DPS_InvalidParameterDefinition 6 1 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h TM_STORE_BACKEND_IF DATA_SET_CLASS
123 0x2007 0x802 TMB_DumpError DPS_SetWasAlreadyRead 7 2 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h TM_STORE_BACKEND_IF DATA_SET_CLASS
124 0x2008 0x803 TMB_CrcError DPS_CommitingWithoutReading 8 3 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h TM_STORE_BACKEND_IF DATA_SET_CLASS
125 0x2009 0x804 TMB_Timeout DPS_DataSetUninitialised 9 4 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h TM_STORE_BACKEND_IF DATA_SET_CLASS
126 0x200a 0x805 TMB_IdlePacketFound DPS_DataSetFull 10 5 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h TM_STORE_BACKEND_IF DATA_SET_CLASS
127 0x200b 0x806 TMB_TelecommandFound DPS_PoolVarNull 11 6 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/DataSetIF.h TM_STORE_BACKEND_IF DATA_SET_CLASS
128 0x200c 0x3ba0 TMB_NoPusATm PVA_InvalidReadWriteMode 12 0xA0 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/PoolVariableIF.h TM_STORE_BACKEND_IF POOL_VARIABLE_IF
129 0x200d 0x3ba1 TMB_TooSmall PVA_InvalidPoolEntry 13 0xA1 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapool/PoolVariableIF.h TM_STORE_BACKEND_IF POOL_VARIABLE_IF
130 0x200e 0x3c00 TMB_BlockNotFound HKM_QueueOrDestinationInvalid 14 0 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h TM_STORE_BACKEND_IF HOUSEKEEPING_MANAGER
131 0x200f 0x3c01 TMB_InvalidRequest HKM_WrongHkPacketType 15 1 ../../fsfw/tmstorage/TmStoreBackendIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h TM_STORE_BACKEND_IF HOUSEKEEPING_MANAGER
132 0x1c01 0x3c02 TCD_PacketLost HKM_ReportingStatusUnchanged 1 2 ../../fsfw/tcdistribution/TcDistributor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h PACKET_DISTRIBUTION HOUSEKEEPING_MANAGER
133 0x1c02 0x3c03 TCD_DestinationNotFound HKM_PeriodicHelperInvalid 2 3 ../../fsfw/tcdistribution/TcDistributor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h PACKET_DISTRIBUTION HOUSEKEEPING_MANAGER
134 0x1c03 0x3c04 TCD_ServiceIdAlreadyExists HKM_PoolobjectNotFound 3 4 ../../fsfw/tcdistribution/TcDistributor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h PACKET_DISTRIBUTION HOUSEKEEPING_MANAGER
135 0x1b00 0x3c05 TCC_IllegalApid HKM_DatasetNotFound 0 5 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h TC_PACKET_CHECK HOUSEKEEPING_MANAGER
136 0x1b01 0x3a00 TCC_IncompletePacket LPIF_PoolEntryNotFound 1 0x00 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h TC_PACKET_CHECK LOCAL_POOL_OWNER_IF
137 0x1b02 0x3a01 TCC_IncorrectChecksum LPIF_PoolEntryTypeConflict 2 0x01 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h TC_PACKET_CHECK LOCAL_POOL_OWNER_IF
138 0x1b03 0x1201 TCC_IllegalPacketType AB_NeedSecondStep 3 0x01 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h TC_PACKET_CHECK ASSEMBLY_BASE
139 0x1b04 0x1202 TCC_IllegalPacketSubtype AB_NeedToReconfigure 4 0x02 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h TC_PACKET_CHECK ASSEMBLY_BASE
140 0x1b05 0x1203 TCC_IncorrectPrimaryHeader AB_ModeFallback 5 0x03 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h TC_PACKET_CHECK ASSEMBLY_BASE
141 0x1b06 0x1204 TCC_IncorrectSecondaryHeader AB_ChildNotCommandable 6 0x04 ../../fsfw/tcdistribution/TcPacketCheck.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h TC_PACKET_CHECK ASSEMBLY_BASE
142 0x4e1 0x1205 RMP_CommandNoDescriptorsAvailable AB_NeedToChangeHealth 0xE1 0x05 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h RMAP_CHANNEL ASSEMBLY_BASE
143 0x4e2 0x12a1 RMP_CommandBufferFull AB_NotEnoughChildrenInCorrectState 0xE2 0xa1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/AssemblyBase.h RMAP_CHANNEL ASSEMBLY_BASE
144 0x4e3 0x3301 RMP_CommandChannelOutOfRange DC_NoReplyReceived 0xE3 0x01 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h RMAP_CHANNEL DEVICE_COMMUNICATION_IF
145 0x4e6 0x3302 RMP_CommandChannelDeactivated DC_ProtocolError 0xE6 0x02 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h RMAP_CHANNEL DEVICE_COMMUNICATION_IF
146 0x4e7 0x3303 RMP_CommandPortOutOfRange DC_Nullpointer 0xE7 0x03 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h RMAP_CHANNEL DEVICE_COMMUNICATION_IF
147 0x4e8 0x3304 RMP_CommandPortInUse DC_InvalidCookieType 0xE8 0x04 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h RMAP_CHANNEL DEVICE_COMMUNICATION_IF
148 0x4e9 0x3305 RMP_CommandNoChannel DC_NotActive 0xE9 0x05 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h RMAP_CHANNEL DEVICE_COMMUNICATION_IF
149 0x4ea 0x3306 RMP_NoHwCrc DC_TooMuchData 0xEA 0x06 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h RMAP_CHANNEL DEVICE_COMMUNICATION_IF
150 0x4d0 0x3a0 RMP_ReplyNoReply DHB_InvalidChannel 0xD0 0xA0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
151 0x4d1 0x3b0 RMP_ReplyNotSent DHB_AperiodicReply 0xD1 0xB0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
152 0x4d2 0x3b1 RMP_ReplyNotYetSent DHB_IgnoreReplyData 0xD2 0xB1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
153 0x4d3 0x3b2 RMP_ReplyMissmatch DHB_IgnoreFullPacket 0xD3 0xB2 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
154 0x4d4 0x3c0 RMP_ReplyTimeout DHB_NothingToSend 0xD4 0xC0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
155 0x4c0 0x3c2 RMP_ReplyInterfaceBusy DHB_CommandMapError 0xC0 0xC2 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
156 0x4c1 0x3d0 RMP_ReplyTransmissionError DHB_NoSwitch 0xC1 0xD0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
157 0x4c2 0x3e0 RMP_ReplyInvalidData DHB_ChildTimeout 0xC2 0xE0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
158 0x4c3 0x3e1 RMP_ReplyNotSupported DHB_SwitchFailed 0xC3 0xE1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerBase.h RMAP_CHANNEL DEVICE_HANDLER_BASE
159 0x4f0 0x26a0 RMP_LinkDown DHI_NoCommandData 0xF0 0xA0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
160 0x4f1 0x26a1 RMP_SpwCredit DHI_CommandNotSupported 0xF1 0xA1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
161 0x4f2 0x26a2 RMP_SpwEscape DHI_CommandAlreadySent 0xF2 0xA2 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
162 0x4f3 0x26a3 RMP_SpwDisconnect DHI_CommandWasNotSent 0xF3 0xA3 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
163 0x4f4 0x26a4 RMP_SpwParity DHI_CantSwitchAddress 0xF4 0xA4 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
164 0x4f5 0x26a5 RMP_SpwWriteSync DHI_WrongModeForCommand 0xF5 0xA5 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
165 0x4f6 0x26a6 RMP_SpwInvalidAddress DHI_Timeout 0xF6 0xA6 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
166 0x4f7 0x26a7 RMP_SpwEarlyEop DHI_Busy 0xF7 0xA7 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
167 0x4f8 0x26a8 RMP_SpwDma DHI_NoReplyExpected 0xF8 0xA8 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
168 0x4f9 0x26a9 RMP_SpwLinkError DHI_NonOpTemperature 0xF9 0xA9 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
169 0x400 0x26aa RMP_ReplyOk DHI_CommandNotImplemented 0 0xAA ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
170 0x401 0x26b0 RMP_ReplyGeneralErrorCode DHI_ChecksumError 1 0xB0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
171 0x402 0x26b1 RMP_ReplyUnusedPacketTypeOrCommandCode DHI_LengthMissmatch 2 0xB1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
172 0x403 0x26b2 RMP_ReplyInvalidKey DHI_InvalidData 3 0xB2 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
173 0x404 0x26b3 RMP_ReplyInvalidDataCrc DHI_ProtocolError 4 0xB3 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
174 0x405 0x26c0 RMP_ReplyEarlyEop DHI_DeviceDidNotExecute 5 0xC0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
175 0x406 0x26c1 RMP_ReplyTooMuchData DHI_DeviceReportedError 6 0xC1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
176 0x407 0x26c2 RMP_ReplyEep DHI_UnknownDeviceReply 7 0xC2 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
177 0x408 0x26c3 RMP_ReplyReserved DHI_DeviceReplyInvalid 8 0xC3 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
178 0x409 0x26d0 RMP_ReplyVerifyBufferOverrun DHI_InvalidCommandParameter 9 0xD0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
179 0x40a 0x26d1 RMP_ReplyCommandNotImplementedOrNotAuthorised DHI_InvalidNumberOrLengthOfParameters 10 0xD1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h RMAP_CHANNEL DEVICE_HANDLER_IF
180 0x40b 0x2401 RMP_ReplyRmwDataLengthError EV_ListenerNotFound 11 1 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/events/EventManagerIF.h RMAP_CHANNEL EVENT_MANAGER_IF
181 0x40c 0x2500 RMP_ReplyInvalidTargetLogicalAddress FDI_YourFault 12 0 ../../fsfw/rmap/RMAP.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h RMAP_CHANNEL HANDLES_FAILURES_IF
182 0x2701 0x2501 SM_DataTooLarge FDI_MyFault 1 ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h STORAGE_MANAGER_IF HANDLES_FAILURES_IF
183 0x2702 0x2502 SM_DataStorageFull FDI_ConfirmLater 2 ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/fdir/ConfirmsFailuresIF.h STORAGE_MANAGER_IF HANDLES_FAILURES_IF
184 0x2703 0x2301 SM_IllegalStorageId MT_TooDetailedRequest 3 1 ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h STORAGE_MANAGER_IF MATCH_TREE_CLASS
185 0x2704 0x2302 SM_DataDoesNotExist MT_TooGeneralRequest 4 2 ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h STORAGE_MANAGER_IF MATCH_TREE_CLASS
186 0x2705 0x2303 SM_IllegalAddress MT_NoMatch 5 3 ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h STORAGE_MANAGER_IF MATCH_TREE_CLASS
187 0x2706 0x2304 SM_PoolTooLarge MT_Full 6 4 ../../fsfw/storagemanager/StorageManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h STORAGE_MANAGER_IF MATCH_TREE_CLASS
188 0x36a1 0x2305 SGP4_InvalidEccentricity MT_NewNodeCreated 0xA1 5 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/matching/MatchTree.h SGP4PROPAGATOR_CLASS MATCH_TREE_CLASS
189 0x36a2 0x2e01 SGP4_InvalidMeanMotion ASC_TooLongForTargetType 0xA2 1 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h SGP4PROPAGATOR_CLASS ASCII_CONVERTER
190 0x36a3 0x2e02 SGP4_InvalidPerturbationElements ASC_InvalidCharacters 0xA3 2 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h SGP4PROPAGATOR_CLASS ASCII_CONVERTER
191 0x36a4 0x2e03 SGP4_InvalidSemiLatusRectum ASC_BufferTooSmall 0xA4 0x3 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/AsciiConverter.h SGP4PROPAGATOR_CLASS ASCII_CONVERTER
192 0x36a5 0x3d01 SGP4_InvalidEpochElements DLEE_StreamTooShort 0xA5 0x01 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/DleEncoder.h SGP4PROPAGATOR_CLASS DLE_ENCODER
193 0x36a6 0x3d02 SGP4_SatelliteHasDecayed DLEE_DecodingError 0xA6 0x02 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/globalfunctions/DleEncoder.h SGP4PROPAGATOR_CLASS DLE_ENCODER
194 0x36b1 0x1701 SGP4_TleTooOld HHI_ObjectNotHealthy 0xB1 1 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h SGP4PROPAGATOR_CLASS HAS_HEALTH_IF
195 0x36b2 0x1702 SGP4_TleNotInitialized HHI_InvalidHealthState 0xB2 2 ../../fsfw/coordinates/Sgp4Propagator.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/health/HasHealthIF.h SGP4PROPAGATOR_CLASS HAS_HEALTH_IF
196 0x2301 0xf01 MT_TooDetailedRequest CM_UnknownCommand 1 ../../fsfw/globalfunctions/matching/MatchTree.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/CommandMessageIF.h MATCH_TREE_CLASS COMMAND_MESSAGE
197 0x2302 0x3801 MT_TooGeneralRequest MQI_Empty 2 1 ../../fsfw/globalfunctions/matching/MatchTree.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h MATCH_TREE_CLASS MESSAGE_QUEUE_IF
198 0x2303 0x3802 MT_NoMatch MQI_Full No space left for more messages 3 2 ../../fsfw/globalfunctions/matching/MatchTree.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h MATCH_TREE_CLASS MESSAGE_QUEUE_IF
199 0x2304 0x3803 MT_Full MQI_NoReplyPartner Returned if a reply method was called without partner 4 3 ../../fsfw/globalfunctions/matching/MatchTree.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h MATCH_TREE_CLASS MESSAGE_QUEUE_IF
200 0x2305 0x3804 MT_NewNodeCreated MQI_DestinationInvalid Returned if the target destination is invalid. 5 4 ../../fsfw/globalfunctions/matching/MatchTree.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MessageQueueIF.h MATCH_TREE_CLASS MESSAGE_QUEUE_IF
201 0x3d01 0x3701 DLEE_StreamTooShort MUX_NotEnoughResources 0x01 1 ../../fsfw/globalfunctions/DleEncoder.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h DLE_ENCODER MUTEX_IF
202 0x3d02 0x3702 DLEE_DecodingError MUX_InsufficientMemory 0x02 2 ../../fsfw/globalfunctions/DleEncoder.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h DLE_ENCODER MUTEX_IF
203 0x2e01 0x3703 ASC_TooLongForTargetType MUX_NoPrivilege 1 3 ../../fsfw/globalfunctions/AsciiConverter.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h ASCII_CONVERTER MUTEX_IF
204 0x2e02 0x3704 ASC_InvalidCharacters MUX_WrongAttributeSetting 2 4 ../../fsfw/globalfunctions/AsciiConverter.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h ASCII_CONVERTER MUTEX_IF
205 0x2e03 0x3705 ASC_BufferTooSmall MUX_MutexAlreadyLocked 0x3 5 ../../fsfw/globalfunctions/AsciiConverter.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h ASCII_CONVERTER MUTEX_IF
206 0xf01 0x3706 CM_UnknownCommand MUX_MutexNotFound 1 6 ../../fsfw/ipc/CommandMessageIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h COMMAND_MESSAGE MUTEX_IF
207 0x3801 0x3707 MQI_Empty MUX_MutexMaxLocks 1 7 ../../fsfw/ipc/MessageQueueIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h MESSAGE_QUEUE_IF MUTEX_IF
208 0x3802 0x3708 MQI_Full MUX_CurrThreadAlreadyOwnsMutex No space left for more messages 2 8 ../../fsfw/ipc/MessageQueueIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h MESSAGE_QUEUE_IF MUTEX_IF
209 0x3803 0x3709 MQI_NoReplyPartner MUX_CurrThreadDoesNotOwnMutex Returned if a reply method was called without partner 3 9 ../../fsfw/ipc/MessageQueueIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h MESSAGE_QUEUE_IF MUTEX_IF
210 0x3804 0x370a MQI_DestinationInvalid MUX_MutexTimeout Returned if the target destination is invalid. 4 10 ../../fsfw/ipc/MessageQueueIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h MESSAGE_QUEUE_IF MUTEX_IF
211 0x3701 0x370b MUX_NotEnoughResources MUX_MutexInvalidId 1 11 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h MUTEX_IF
212 0x3702 0x370c MUX_InsufficientMemory MUX_MutexDestroyedWhileWaiting 2 12 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/ipc/MutexIF.h MUTEX_IF
213 0x3703 0x4000 MUX_NoPrivilege FILS_GenericFileError 3 0 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
214 0x3704 0x4001 MUX_WrongAttributeSetting FILS_IsBusy 4 1 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
215 0x3705 0x4002 MUX_MutexAlreadyLocked FILS_InvalidParameters 5 2 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
216 0x3706 0x4005 MUX_MutexNotFound FILS_FileDoesNotExist 6 5 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
217 0x3707 0x4006 MUX_MutexMaxLocks FILS_FileAlreadyExists 7 6 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
218 0x3708 0x4007 MUX_CurrThreadAlreadyOwnsMutex FILS_FileLocked 8 7 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
219 0x3709 0x400a MUX_CurrThreadDoesNotOwnMutex FILS_DirectoryDoesNotExist 9 10 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
220 0x370a 0x400b MUX_MutexTimeout FILS_DirectoryAlreadyExists 10 11 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
221 0x370b 0x400c MUX_MutexInvalidId FILS_DirectoryNotEmpty 11 12 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
222 0x370c 0x400f MUX_MutexDestroyedWhileWaiting FILS_SequencePacketMissingWrite 12 15 ../../fsfw/ipc/MutexIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h MUTEX_IF FILE_SYSTEM
223 0x3901 0x4010 SPH_SemaphoreTimeout FILS_SequencePacketMissingRead 1 16 ../../fsfw/tasks/SemaphoreIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasFileSystemIF.h SEMAPHORE_IF FILE_SYSTEM
224 0x3902 0x601 SPH_SemaphoreNotOwned PP_DoItMyself 2 1 ../../fsfw/tasks/SemaphoreIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SEMAPHORE_IF HAS_MEMORY_IF
225 0x3903 0x602 SPH_SemaphoreInvalid PP_PointsToVariable 3 2 ../../fsfw/tasks/SemaphoreIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SEMAPHORE_IF HAS_MEMORY_IF
226 0x2801 0x603 TC_InvalidTargetState PP_PointsToMemory 1 3 ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h THERMAL_COMPONENT_IF HAS_MEMORY_IF
227 0x28f1 0x604 TC_AboveOperationalLimit PP_ActivityCompleted 0xF1 4 ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h THERMAL_COMPONENT_IF HAS_MEMORY_IF
228 0x28f2 0x605 TC_BelowOperationalLimit PP_PointsToVectorUint8 0xF2 5 ../../fsfw/thermal/ThermalComponentIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h THERMAL_COMPONENT_IF HAS_MEMORY_IF
229 0xc02 0x606 MS_InvalidEntry PP_PointsToVectorUint16 0x02 6 ../../fsfw/subsystem/modes/ModeStoreIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h MODE_STORE_IF HAS_MEMORY_IF
230 0xc03 0x607 MS_TooManyElements PP_PointsToVectorUint32 0x03 7 ../../fsfw/subsystem/modes/ModeStoreIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h MODE_STORE_IF HAS_MEMORY_IF
231 0xc04 0x608 MS_CantStoreEmpty PP_PointsToVectorFloat 0x04 8 ../../fsfw/subsystem/modes/ModeStoreIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h MODE_STORE_IF HAS_MEMORY_IF
232 0xd01 0x6a0 SS_SequenceAlreadyExists PP_DumpNotSupported 0x01 0xA0 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SUBSYSTEM HAS_MEMORY_IF
233 0xd02 0x6e0 SS_TableAlreadyExists PP_InvalidSize 0x02 0xE0 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SUBSYSTEM HAS_MEMORY_IF
234 0xd03 0x6e1 SS_TableDoesNotExist PP_InvalidAddress 0x03 0xE1 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SUBSYSTEM HAS_MEMORY_IF
235 0xd04 0x6e2 SS_TableOrSequenceLengthInvalid PP_InvalidContent 0x04 0xE2 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SUBSYSTEM HAS_MEMORY_IF
236 0xd05 0x6e3 SS_SequenceDoesNotExist PP_UnalignedAccess 0x05 0xE3 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SUBSYSTEM HAS_MEMORY_IF
237 0xd06 0x6e4 SS_TableContainsInvalidObjectId PP_WriteProtected 0x06 0xE4 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/HasMemoryIF.h SUBSYSTEM HAS_MEMORY_IF
238 0xd07 0x13e0 SS_FallbackSequenceDoesNotExist MH_UnknownCmd 0x07 0xE0 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h SUBSYSTEM MEMORY_HELPER
239 0xd08 0x13e1 SS_NoTargetTable MH_InvalidAddress 0x08 0xE1 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h SUBSYSTEM MEMORY_HELPER
240 0xd09 0x13e2 SS_SequenceOrTableTooLong MH_InvalidSize 0x09 0xE2 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h SUBSYSTEM MEMORY_HELPER
241 0xd0b 0x13e3 SS_IsFallbackSequence MH_StateMismatch 0x0B 0xE3 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/memory/MemoryHelper.h SUBSYSTEM MEMORY_HELPER
242 0xd0c 0xe01 SS_AccessDenied HM_InvalidMode 0x0C 0x01 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h SUBSYSTEM HAS_MODES_IF
243 0xd0e 0xe02 SS_TableInUse HM_TransNotAllowed 0x0E 0x02 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h SUBSYSTEM HAS_MODES_IF
244 0xda1 0xe03 SS_TargetTableNotReached HM_InTransition 0xA1 0x03 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h SUBSYSTEM HAS_MODES_IF
245 0xda2 0xe04 SS_TableCheckFailed HM_InvalidSubmode 0xA2 0x04 ../../fsfw/subsystem/Subsystem.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/modes/HasModesIF.h SUBSYSTEM HAS_MODES_IF
246 0xb01 0x3001 SB_ChildNotFound LIM_Unchecked 0x01 1 ../../fsfw/subsystem/SubsystemBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h SUBSYSTEM_BASE LIMITS_IF
247 0xb02 0x3002 SB_ChildInfoUpdated LIM_Invalid 0x02 2 ../../fsfw/subsystem/SubsystemBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h SUBSYSTEM_BASE LIMITS_IF
248 0xb03 0x3003 SB_ChildDoesntHaveModes LIM_Unselected 0x03 3 ../../fsfw/subsystem/SubsystemBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h SUBSYSTEM_BASE LIMITS_IF
249 0xb04 0x3004 SB_CouldNotInsertChild LIM_BelowLowLimit 0x04 4 ../../fsfw/subsystem/SubsystemBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h SUBSYSTEM_BASE LIMITS_IF
250 0xb05 0x3005 SB_TableContainsInvalidObjectId LIM_AboveHighLimit 0x05 5 ../../fsfw/subsystem/SubsystemBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h SUBSYSTEM_BASE LIMITS_IF
251 0x3c00 0x3006 HKM_QueueOrDestinationInvalid LIM_UnexpectedValue 0 6 ../../fsfw/datapoollocal/LocalDataPoolManager.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h HOUSEKEEPING_MANAGER LIMITS_IF
252 0x3c01 0x3007 HKM_WrongHkPacketType LIM_OutOfRange 1 7 ../../fsfw/datapoollocal/LocalDataPoolManager.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h HOUSEKEEPING_MANAGER LIMITS_IF
253 0x3c02 0x30a0 HKM_ReportingStatusUnchanged LIM_FirstSample 2 0xA0 ../../fsfw/datapoollocal/LocalDataPoolManager.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h HOUSEKEEPING_MANAGER LIMITS_IF
254 0x3c03 0x30e0 HKM_PeriodicHelperInvalid LIM_InvalidSize 3 0xE0 ../../fsfw/datapoollocal/LocalDataPoolManager.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h HOUSEKEEPING_MANAGER LIMITS_IF
255 0x3c04 0x30e1 HKM_PoolobjectNotFound LIM_WrongType 4 0xE1 ../../fsfw/datapoollocal/LocalDataPoolManager.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h HOUSEKEEPING_MANAGER LIMITS_IF
256 0x3c05 0x30e2 HKM_DatasetNotFound LIM_WrongPid 5 0xE2 ../../fsfw/datapoollocal/LocalDataPoolManager.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h HOUSEKEEPING_MANAGER LIMITS_IF
257 0x3a00 0x30e3 LPIF_PoolEntryNotFound LIM_WrongLimitId 0x00 0xE3 ../../fsfw/datapoollocal/localPoolDefinitions.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h LOCAL_POOL_OWNER_IF LIMITS_IF
258 0x3a01 0x30ee LPIF_PoolEntryTypeConflict LIM_MonitorNotFound 0x01 0xEE ../../fsfw/datapoollocal/localPoolDefinitions.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/MonitoringIF.h LOCAL_POOL_OWNER_IF LIMITS_IF
259 0x3ba0 0x1a01 PVA_InvalidReadWriteMode TRC_NotEnoughSensors 0xA0 1 ../../fsfw/datapool/PoolVariableIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h POOL_VARIABLE_IF TRIPLE_REDUNDACY_CHECK
260 0x3ba1 0x1a02 PVA_InvalidPoolEntry TRC_LowestValueOol 0xA1 2 ../../fsfw/datapool/PoolVariableIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h POOL_VARIABLE_IF TRIPLE_REDUNDACY_CHECK
261 0x801 0x1a03 DPS_InvalidParameterDefinition TRC_HighestValueOol 1 3 ../../fsfw/datapool/DataSetIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h DATA_SET_CLASS TRIPLE_REDUNDACY_CHECK
262 0x802 0x1a04 DPS_SetWasAlreadyRead TRC_BothValuesOol 2 4 ../../fsfw/datapool/DataSetIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h DATA_SET_CLASS TRIPLE_REDUNDACY_CHECK
263 0x803 0x1a05 DPS_CommitingWithoutReading TRC_DuplexOol 3 5 ../../fsfw/datapool/DataSetIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/monitoring/TriplexMonitor.h DATA_SET_CLASS TRIPLE_REDUNDACY_CHECK
264 0x804 0x201 DPS_DataSetUninitialised OM_InsertionFailed 4 1 ../../fsfw/datapool/DataSetIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h DATA_SET_CLASS OBJECT_MANAGER_IF
265 0x805 0x202 DPS_DataSetFull OM_NotFound 5 2 ../../fsfw/datapool/DataSetIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h DATA_SET_CLASS OBJECT_MANAGER_IF
266 0x806 0x203 DPS_PoolVarNull OM_ChildInitFailed 6 3 ../../fsfw/datapool/DataSetIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h DATA_SET_CLASS OBJECT_MANAGER_IF
267 0x1000 0x204 TIM_UnsupportedTimeFormat OM_InternalErrReporterUninit 0 4 ../../fsfw/timemanager/CCSDSTime.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/objectmanager/ObjectManagerIF.h CCSDS_TIME_HELPER_CLASS OBJECT_MANAGER_IF
268 0x1001 0x2901 TIM_NotEnoughInformationForTargetFormat IEC_NoConfigurationTable 1 0x01 ../../fsfw/timemanager/CCSDSTime.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h CCSDS_TIME_HELPER_CLASS INTERNAL_ERROR_CODES
269 0x1002 0x2902 TIM_LengthMismatch IEC_NoCpuTable 2 0x02 ../../fsfw/timemanager/CCSDSTime.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h CCSDS_TIME_HELPER_CLASS INTERNAL_ERROR_CODES
270 0x1003 0x2903 TIM_InvalidTimeFormat IEC_InvalidWorkspaceAddress 3 0x03 ../../fsfw/timemanager/CCSDSTime.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h CCSDS_TIME_HELPER_CLASS INTERNAL_ERROR_CODES
271 0x1004 0x2904 TIM_InvalidDayOfYear IEC_TooLittleWorkspace 4 0x04 ../../fsfw/timemanager/CCSDSTime.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h CCSDS_TIME_HELPER_CLASS INTERNAL_ERROR_CODES
272 0x1005 0x2905 TIM_TimeDoesNotFitFormat IEC_WorkspaceAllocation 5 0x05 ../../fsfw/timemanager/CCSDSTime.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h CCSDS_TIME_HELPER_CLASS INTERNAL_ERROR_CODES
273 0x3501 0x2906 TSI_BadTimestamp IEC_InterruptStackTooSmall 1 0x06 ../../fsfw/timemanager/TimeStamperIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h TIME_STAMPER_IF INTERNAL_ERROR_CODES
274 0x1d01 0x2907 PUS_ActivityStarted IEC_ThreadExitted 1 0x07 ../../fsfw/tmtcservices/AcceptsTelecommandsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h ACCEPTS_TELECOMMANDS_IF INTERNAL_ERROR_CODES
275 0x1d02 0x2908 PUS_InvalidSubservice IEC_InconsistentMpInformation 2 0x08 ../../fsfw/tmtcservices/AcceptsTelecommandsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h ACCEPTS_TELECOMMANDS_IF INTERNAL_ERROR_CODES
276 0x1d03 0x2909 PUS_IllegalApplicationData IEC_InvalidNode 3 0x09 ../../fsfw/tmtcservices/AcceptsTelecommandsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h ACCEPTS_TELECOMMANDS_IF INTERNAL_ERROR_CODES
277 0x1d04 0x290a PUS_SendTmFailed IEC_NoMpci 4 0x0a ../../fsfw/tmtcservices/AcceptsTelecommandsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h ACCEPTS_TELECOMMANDS_IF INTERNAL_ERROR_CODES
278 0x1d05 0x290b PUS_Timeout IEC_BadPacket 5 0x0b ../../fsfw/tmtcservices/AcceptsTelecommandsIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h ACCEPTS_TELECOMMANDS_IF INTERNAL_ERROR_CODES
279 0x1f01 0x290c CSB_ExecutionComplete IEC_OutOfPackets 1 0x0c ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
280 0x1f02 0x290d CSB_NoStepMessage IEC_OutOfGlobalObjects 2 0x0d ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
281 0x1f03 0x290e CSB_ObjectBusy IEC_OutOfProxies 3 0x0e ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
282 0x1f04 0x290f CSB_Busy IEC_InvalidGlobalId 4 0x0f ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
283 0x1f05 0x2910 CSB_InvalidTc IEC_BadStackHook 5 0x10 ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
284 0x1f06 0x2911 CSB_InvalidObject IEC_BadAttributes 6 0x11 ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
285 0x1f07 0x2912 CSB_InvalidReply IEC_ImplementationKeyCreateInconsistency 7 0x12 ../../fsfw/tmtcservices/CommandingServiceBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h COMMAND_SERVICE_BASE INTERNAL_ERROR_CODES
286 0x1101 0x2913 AL_Full IEC_ImplementationBlockingOperationCancel 0x01 0x13 ../../fsfw/container/ArrayList.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h ARRAY_LIST INTERNAL_ERROR_CODES
287 0x1801 0x2914 FF_Full IEC_MutexObtainFromBadState 1 0x14 ../../fsfw/container/FIFOBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h FIFO_CLASS INTERNAL_ERROR_CODES
288 0x1802 0x2915 FF_Empty IEC_UnlimitedAndMaximumIs0 2 0x15 ../../fsfw/container/FIFOBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/osal/InternalErrorCodes.h FIFO_CLASS INTERNAL_ERROR_CODES
289 0x1601 0x2d01 FMM_MapFull HPA_InvalidIdentifierId 0x01 ../../fsfw/container/FixedOrderedMultimap.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h FIXED_MULTIMAP HAS_PARAMETERS_IF
290 0x1602 0x2d02 FMM_KeyDoesNotExist HPA_InvalidDomainId 0x02 ../../fsfw/container/FixedOrderedMultimap.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h FIXED_MULTIMAP HAS_PARAMETERS_IF
291 0x1501 0x2d03 FM_KeyAlreadyExists HPA_InvalidValue 0x01 0x03 ../../fsfw/container/FixedMap.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h FIXED_MAP HAS_PARAMETERS_IF
292 0x1502 0x2d05 FM_MapFull HPA_ReadOnly 0x02 0x05 ../../fsfw/container/FixedMap.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/HasParametersIF.h FIXED_MAP HAS_PARAMETERS_IF
293 0x1503 0x2c01 FM_KeyDoesNotExist PAW_UnknownDatatype 0x03 0x01 ../../fsfw/container/FixedMap.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h FIXED_MAP PARAMETER_WRAPPER
294 0x2401 0x2c02 EV_ListenerNotFound PAW_DatatypeMissmatch 1 0x02 ../../fsfw/events/EventManagerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h EVENT_MANAGER_IF PARAMETER_WRAPPER
295 0x1701 0x2c03 HHI_ObjectNotHealthy PAW_Readonly 1 0x03 ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h HAS_HEALTH_IF PARAMETER_WRAPPER
296 0x1702 0x2c04 HHI_InvalidHealthState PAW_TooBig 2 0x04 ../../fsfw/health/HasHealthIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h HAS_HEALTH_IF PARAMETER_WRAPPER
297 0x2f01 0x2c05 POS_InPowerTransition PAW_SourceNotSet 1 0x05 ../../fsfw/power/PowerSwitcher.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h POWER_SWITCHER PARAMETER_WRAPPER
298 0x2f02 0x2c06 POS_SwitchStateMismatch PAW_OutOfBounds 2 0x06 ../../fsfw/power/PowerSwitcher.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h POWER_SWITCHER PARAMETER_WRAPPER
299 0x501 0x2c07 PS_SwitchOn PAW_NotSet 1 0x07 ../../fsfw/power/PowerSwitchIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h POWER_SWITCH_IF PARAMETER_WRAPPER
300 0x500 0x2c08 PS_SwitchOff PAW_ColumnOrRowsZero 0 0x08 ../../fsfw/power/PowerSwitchIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/parameters/ParameterWrapper.h POWER_SWITCH_IF PARAMETER_WRAPPER
301 0x502 0x2f01 PS_SwitchTimeout POS_InPowerTransition 2 1 ../../fsfw/power/PowerSwitchIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitcher.h POWER_SWITCH_IF POWER_SWITCHER
302 0x503 0x2f02 PS_FuseOn POS_SwitchStateMismatch 3 2 ../../fsfw/power/PowerSwitchIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitcher.h POWER_SWITCH_IF POWER_SWITCHER
303 0x504 0x501 PS_FuseOff PS_SwitchOn 4 1 ../../fsfw/power/PowerSwitchIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h POWER_SWITCH_IF
304 0x1a01 0x500 TRC_NotEnoughSensors PS_SwitchOff 1 0 ../../fsfw/monitoring/TriplexMonitor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h TRIPLE_REDUNDACY_CHECK POWER_SWITCH_IF
305 0x1a02 0x502 TRC_LowestValueOol PS_SwitchTimeout 2 ../../fsfw/monitoring/TriplexMonitor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h TRIPLE_REDUNDACY_CHECK POWER_SWITCH_IF
306 0x1a03 0x503 TRC_HighestValueOol PS_FuseOn 3 ../../fsfw/monitoring/TriplexMonitor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h TRIPLE_REDUNDACY_CHECK POWER_SWITCH_IF
307 0x1a04 0x504 TRC_BothValuesOol PS_FuseOff 4 ../../fsfw/monitoring/TriplexMonitor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/power/PowerSwitchIF.h TRIPLE_REDUNDACY_CHECK POWER_SWITCH_IF
308 0x1a05 0x4e1 TRC_DuplexOol RMP_CommandNoDescriptorsAvailable 5 0xE1 ../../fsfw/monitoring/TriplexMonitor.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h TRIPLE_REDUNDACY_CHECK RMAP_CHANNEL
309 0x3001 0x4e2 LIM_Unchecked RMP_CommandBufferFull 1 0xE2 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
310 0x3002 0x4e3 LIM_Invalid RMP_CommandChannelOutOfRange 2 0xE3 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
311 0x3003 0x4e6 LIM_Unselected RMP_CommandChannelDeactivated 3 0xE6 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
312 0x3004 0x4e7 LIM_BelowLowLimit RMP_CommandPortOutOfRange 4 0xE7 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
313 0x3005 0x4e8 LIM_AboveHighLimit RMP_CommandPortInUse 5 0xE8 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
314 0x3006 0x4e9 LIM_UnexpectedValue RMP_CommandNoChannel 6 0xE9 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
315 0x3007 0x4ea LIM_OutOfRange RMP_NoHwCrc 7 0xEA ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
316 0x30a0 0x4d0 LIM_FirstSample RMP_ReplyNoReply 0xA0 0xD0 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
317 0x30e0 0x4d1 LIM_InvalidSize RMP_ReplyNotSent 0xE0 0xD1 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
318 0x30e1 0x4d2 LIM_WrongType RMP_ReplyNotYetSent 0xE1 0xD2 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
319 0x30e2 0x4d3 LIM_WrongPid RMP_ReplyMissmatch 0xE2 0xD3 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
320 0x30e3 0x4d4 LIM_WrongLimitId RMP_ReplyTimeout 0xE3 0xD4 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
321 0x30ee 0x4c0 LIM_MonitorNotFound RMP_ReplyInterfaceBusy 0xEE 0xC0 ../../fsfw/monitoring/MonitoringIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h LIMITS_IF RMAP_CHANNEL
322 0x4000 0x4c1 FILS_GenericFileError RMP_ReplyTransmissionError 0 0xC1 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
323 0x4001 0x4c2 FILS_IsBusy RMP_ReplyInvalidData 1 0xC2 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
324 0x4002 0x4c3 FILS_InvalidParameters RMP_ReplyNotSupported 2 0xC3 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
325 0x4005 0x4f0 FILS_FileDoesNotExist RMP_LinkDown 5 0xF0 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
326 0x4006 0x4f1 FILS_FileAlreadyExists RMP_SpwCredit 6 0xF1 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
327 0x4007 0x4f2 FILS_FileLocked RMP_SpwEscape 7 0xF2 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
328 0x400a 0x4f3 FILS_DirectoryDoesNotExist RMP_SpwDisconnect 10 0xF3 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
329 0x400b 0x4f4 FILS_DirectoryAlreadyExists RMP_SpwParity 11 0xF4 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
330 0x400c 0x4f5 FILS_DirectoryNotEmpty RMP_SpwWriteSync 12 0xF5 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
331 0x400f 0x4f6 FILS_SequencePacketMissingWrite RMP_SpwInvalidAddress 15 0xF6 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
332 0x4010 0x4f7 FILS_SequencePacketMissingRead RMP_SpwEarlyEop 16 0xF7 ../../fsfw/memory/HasFileSystemIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h FILE_SYSTEM RMAP_CHANNEL
333 0x601 0x4f8 PP_DoItMyself RMP_SpwDma 1 0xF8 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
334 0x602 0x4f9 PP_PointsToVariable RMP_SpwLinkError 2 0xF9 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
335 0x603 0x400 PP_PointsToMemory RMP_ReplyOk 3 0 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
336 0x604 0x401 PP_ActivityCompleted RMP_ReplyGeneralErrorCode 4 1 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
337 0x605 0x402 PP_PointsToVectorUint8 RMP_ReplyUnusedPacketTypeOrCommandCode 5 2 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
338 0x606 0x403 PP_PointsToVectorUint16 RMP_ReplyInvalidKey 6 3 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
339 0x607 0x404 PP_PointsToVectorUint32 RMP_ReplyInvalidDataCrc 7 4 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
340 0x608 0x405 PP_PointsToVectorFloat RMP_ReplyEarlyEop 8 5 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
341 0x6a0 0x406 PP_DumpNotSupported RMP_ReplyTooMuchData 0xA0 6 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
342 0x6e0 0x407 PP_InvalidSize RMP_ReplyEep 0xE0 7 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
343 0x6e1 0x408 PP_InvalidAddress RMP_ReplyReserved 0xE1 8 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
344 0x6e2 0x409 PP_InvalidContent RMP_ReplyVerifyBufferOverrun 0xE2 9 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
345 0x6e3 0x40a PP_UnalignedAccess RMP_ReplyCommandNotImplementedOrNotAuthorised 0xE3 10 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
346 0x6e4 0x40b PP_WriteProtected RMP_ReplyRmwDataLengthError 0xE4 11 ../../fsfw/memory/HasMemoryIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h HAS_MEMORY_IF RMAP_CHANNEL
347 0x13e0 0x40c MH_UnknownCmd RMP_ReplyInvalidTargetLogicalAddress 0xE0 12 ../../fsfw/memory/MemoryHelper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/rmap/RMAP.h MEMORY_HELPER RMAP_CHANNEL
348 0x13e1 0x1401 MH_InvalidAddress SE_BufferTooShort 0xE1 1 ../../fsfw/memory/MemoryHelper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/serialize/SerializeIF.h MEMORY_HELPER SERIALIZE_IF
349 0x13e2 0x1402 MH_InvalidSize SE_StreamTooShort 0xE2 2 ../../fsfw/memory/MemoryHelper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/serialize/SerializeIF.h MEMORY_HELPER SERIALIZE_IF
350 0x13e3 0x1403 MH_StateMismatch SE_TooManyElements 0xE3 3 ../../fsfw/memory/MemoryHelper.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/serialize/SerializeIF.h MEMORY_HELPER SERIALIZE_IF
351 0x1201 0x2701 AB_NeedSecondStep SM_DataTooLarge 0x01 1 ../../fsfw/devicehandlers/AssemblyBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h ASSEMBLY_BASE STORAGE_MANAGER_IF
352 0x1202 0x2702 AB_NeedToReconfigure SM_DataStorageFull 0x02 2 ../../fsfw/devicehandlers/AssemblyBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h ASSEMBLY_BASE STORAGE_MANAGER_IF
353 0x1203 0x2703 AB_ModeFallback SM_IllegalStorageId 0x03 3 ../../fsfw/devicehandlers/AssemblyBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h ASSEMBLY_BASE STORAGE_MANAGER_IF
354 0x1204 0x2704 AB_ChildNotCommandable SM_DataDoesNotExist 0x04 4 ../../fsfw/devicehandlers/AssemblyBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h ASSEMBLY_BASE STORAGE_MANAGER_IF
355 0x1205 0x2705 AB_NeedToChangeHealth SM_IllegalAddress 0x05 5 ../../fsfw/devicehandlers/AssemblyBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h ASSEMBLY_BASE STORAGE_MANAGER_IF
356 0x12a1 0x2706 AB_NotEnoughChildrenInCorrectState SM_PoolTooLarge 0xa1 6 ../../fsfw/devicehandlers/AssemblyBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/storagemanager/StorageManagerIF.h ASSEMBLY_BASE STORAGE_MANAGER_IF
357 0x3a0 0xc02 DHB_InvalidChannel MS_InvalidEntry 0xA0 0x02 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h DEVICE_HANDLER_BASE MODE_STORE_IF
358 0x3b0 0xc03 DHB_AperiodicReply MS_TooManyElements 0xB0 0x03 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h DEVICE_HANDLER_BASE MODE_STORE_IF
359 0x3b1 0xc04 DHB_IgnoreReplyData MS_CantStoreEmpty 0xB1 0x04 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/modes/ModeStoreIF.h DEVICE_HANDLER_BASE MODE_STORE_IF
360 0x3b2 0xd01 DHB_IgnoreFullPacket SS_SequenceAlreadyExists 0xB2 0x01 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_BASE SUBSYSTEM
361 0x3c0 0xd02 DHB_NothingToSend SS_TableAlreadyExists 0xC0 0x02 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_BASE SUBSYSTEM
362 0x3c2 0xd03 DHB_CommandMapError SS_TableDoesNotExist 0xC2 0x03 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_BASE SUBSYSTEM
363 0x3d0 0xd04 DHB_NoSwitch SS_TableOrSequenceLengthInvalid 0xD0 0x04 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_BASE SUBSYSTEM
364 0x3e0 0xd05 DHB_ChildTimeout SS_SequenceDoesNotExist 0xE0 0x05 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_BASE SUBSYSTEM
365 0x3e1 0xd06 DHB_SwitchFailed SS_TableContainsInvalidObjectId 0xE1 0x06 ../../fsfw/devicehandlers/DeviceHandlerBase.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_BASE SUBSYSTEM
366 0x3301 0xd07 DC_NoReplyReceived SS_FallbackSequenceDoesNotExist 0x01 0x07 ../../fsfw/devicehandlers/DeviceCommunicationIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_COMMUNICATION_IF SUBSYSTEM
367 0x3302 0xd08 DC_ProtocolError SS_NoTargetTable 0x02 0x08 ../../fsfw/devicehandlers/DeviceCommunicationIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_COMMUNICATION_IF SUBSYSTEM
368 0x3303 0xd09 DC_Nullpointer SS_SequenceOrTableTooLong 0x03 0x09 ../../fsfw/devicehandlers/DeviceCommunicationIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_COMMUNICATION_IF SUBSYSTEM
369 0x3304 0xd0b DC_InvalidCookieType SS_IsFallbackSequence 0x04 0x0B ../../fsfw/devicehandlers/DeviceCommunicationIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_COMMUNICATION_IF SUBSYSTEM
370 0x3305 0xd0c DC_NotActive SS_AccessDenied 0x05 0x0C ../../fsfw/devicehandlers/DeviceCommunicationIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_COMMUNICATION_IF SUBSYSTEM
371 0x3306 0xd0e DC_TooMuchData SS_TableInUse 0x06 0x0E ../../fsfw/devicehandlers/DeviceCommunicationIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_COMMUNICATION_IF SUBSYSTEM
372 0x26a0 0xda1 DHI_NoCommandData SS_TargetTableNotReached 0xA0 0xA1 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_IF SUBSYSTEM
373 0x26a1 0xda2 DHI_CommandNotSupported SS_TableCheckFailed 0xA1 0xA2 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/Subsystem.h DEVICE_HANDLER_IF SUBSYSTEM
374 0x26a2 0xb01 DHI_CommandAlreadySent SB_ChildNotFound 0xA2 0x01 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h DEVICE_HANDLER_IF SUBSYSTEM_BASE
375 0x26a3 0xb02 DHI_CommandWasNotSent SB_ChildInfoUpdated 0xA3 0x02 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h DEVICE_HANDLER_IF SUBSYSTEM_BASE
376 0x26a4 0xb03 DHI_CantSwitchAddress SB_ChildDoesntHaveModes 0xA4 0x03 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h DEVICE_HANDLER_IF SUBSYSTEM_BASE
377 0x26a5 0xb04 DHI_WrongModeForCommand SB_CouldNotInsertChild 0xA5 0x04 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h DEVICE_HANDLER_IF SUBSYSTEM_BASE
378 0x26a6 0xb05 DHI_Timeout SB_TableContainsInvalidObjectId 0xA6 0x05 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/subsystem/SubsystemBase.h DEVICE_HANDLER_IF SUBSYSTEM_BASE
379 0x26a7 0x3901 DHI_Busy SPH_SemaphoreTimeout 0xA7 1 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h DEVICE_HANDLER_IF SEMAPHORE_IF
380 0x26a8 0x3902 DHI_NoReplyExpected SPH_SemaphoreNotOwned 0xA8 2 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h DEVICE_HANDLER_IF SEMAPHORE_IF
381 0x26a9 0x3903 DHI_NonOpTemperature SPH_SemaphoreInvalid 0xA9 3 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tasks/SemaphoreIF.h DEVICE_HANDLER_IF SEMAPHORE_IF
382 0x26aa 0x1c01 DHI_CommandNotImplemented TCD_PacketLost 0xAA 1 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h DEVICE_HANDLER_IF PACKET_DISTRIBUTION
383 0x26b0 0x1c02 DHI_ChecksumError TCD_DestinationNotFound 0xB0 2 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h DEVICE_HANDLER_IF PACKET_DISTRIBUTION
384 0x26b1 0x1c03 DHI_LengthMissmatch TCD_ServiceIdAlreadyExists 0xB1 3 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcDistributor.h DEVICE_HANDLER_IF PACKET_DISTRIBUTION
385 0x26b2 0x1b00 DHI_InvalidData TCC_IllegalApid 0xB2 0 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
386 0x26b3 0x1b01 DHI_ProtocolError TCC_IncompletePacket 0xB3 1 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
387 0x26c0 0x1b02 DHI_DeviceDidNotExecute TCC_IncorrectChecksum 0xC0 2 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
388 0x26c1 0x1b03 DHI_DeviceReportedError TCC_IllegalPacketType 0xC1 3 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
389 0x26c2 0x1b04 DHI_UnknownDeviceReply TCC_IllegalPacketSubtype 0xC2 4 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
390 0x26c3 0x1b05 DHI_DeviceReplyInvalid TCC_IncorrectPrimaryHeader 0xC3 5 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
391 0x26d0 0x1b06 DHI_InvalidCommandParameter TCC_IncorrectSecondaryHeader 0xD0 6 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tcdistribution/TcPacketCheck.h DEVICE_HANDLER_IF TC_PACKET_CHECK
392 0x26d1 0x2801 DHI_InvalidNumberOrLengthOfParameters TC_InvalidTargetState 0xD1 1 ../../fsfw/devicehandlers/DeviceHandlerIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h DEVICE_HANDLER_IF THERMAL_COMPONENT_IF
393 0x1401 0x28f1 SE_BufferTooShort TC_AboveOperationalLimit 1 0xF1 ../../fsfw/serialize/SerializeIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h SERIALIZE_IF THERMAL_COMPONENT_IF
394 0x1402 0x28f2 SE_StreamTooShort TC_BelowOperationalLimit 2 0xF2 ../../fsfw/serialize/SerializeIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/thermal/ThermalComponentIF.h SERIALIZE_IF THERMAL_COMPONENT_IF
395 0x1403 0x1000 SE_TooManyElements TIM_UnsupportedTimeFormat 3 0 ../../fsfw/serialize/SerializeIF.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h SERIALIZE_IF CCSDS_TIME_HELPER_CLASS
396 0x4aa1 0x1001 HEATER_CommandNotSupported TIM_NotEnoughInformationForTargetFormat 0xA1 1 ../../linux/devices/HeaterHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h HEATER_HANDLER CCSDS_TIME_HELPER_CLASS
397 0x4aa2 0x1002 HEATER_InitFailed TIM_LengthMismatch 0xA2 2 ../../linux/devices/HeaterHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h HEATER_HANDLER CCSDS_TIME_HELPER_CLASS
398 0x4aa3 0x1003 HEATER_InvalidSwitchNr TIM_InvalidTimeFormat 0xA3 3 ../../linux/devices/HeaterHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h HEATER_HANDLER CCSDS_TIME_HELPER_CLASS
399 0x4aa4 0x1004 HEATER_MainSwitchSetTimeout TIM_InvalidDayOfYear 0xA4 4 ../../linux/devices/HeaterHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h HEATER_HANDLER CCSDS_TIME_HELPER_CLASS
400 0x4aa5 0x1005 HEATER_CommandAlreadyWaiting TIM_TimeDoesNotFitFormat 0xA5 5 ../../linux/devices/HeaterHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/CCSDSTime.h HEATER_HANDLER CCSDS_TIME_HELPER_CLASS
401 0x4ea0 0x3501 SUSS_ErrorUnlockMutex TSI_BadTimestamp 0xA0 1 ../../linux/devices/SusHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/timemanager/TimeStamperIF.h SUS_HANDLER TIME_STAMPER_IF
402 0x4ea1 0x2001 SUSS_ErrorLockMutex TMB_Busy 0xA1 1 ../../linux/devices/SusHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h SUS_HANDLER TM_STORE_BACKEND_IF
403 0x57a0 0x2002 SADPL_CommandNotSupported TMB_Full 0xA0 2 ../../linux/devices/SolarArrayDeploymentHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h SA_DEPL_HANDLER TM_STORE_BACKEND_IF
404 0x57a1 0x2003 SADPL_DeploymentAlreadyExecuting TMB_Empty 0xA1 3 ../../linux/devices/SolarArrayDeploymentHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h SA_DEPL_HANDLER TM_STORE_BACKEND_IF
405 0x57a2 0x2004 SADPL_MainSwitchTimeoutFailure TMB_NullRequested 0xA2 4 ../../linux/devices/SolarArrayDeploymentHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h SA_DEPL_HANDLER TM_STORE_BACKEND_IF
406 0x57a3 0x2005 SADPL_SwitchingDeplSa1Failed TMB_TooLarge 0xA3 5 ../../linux/devices/SolarArrayDeploymentHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h SA_DEPL_HANDLER TM_STORE_BACKEND_IF
407 0x57a4 0x2006 SADPL_SwitchingDeplSa2Failed TMB_NotReady 0xA4 6 ../../linux/devices/SolarArrayDeploymentHandler.h C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h SA_DEPL_HANDLER TM_STORE_BACKEND_IF
408 0x2007 TMB_DumpError 7 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
409 0x2008 TMB_CrcError 8 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
410 0x2009 TMB_Timeout 9 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
411 0x200a TMB_IdlePacketFound 10 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
412 0x200b TMB_TelecommandFound 11 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
413 0x200c TMB_NoPusATm 12 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
414 0x200d TMB_TooSmall 13 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
415 0x200e TMB_BlockNotFound 14 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
416 0x200f TMB_InvalidRequest 15 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreBackendIF.h TM_STORE_BACKEND_IF
417 0x2101 TMF_Busy 1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
418 0x2102 TMF_LastPacketFound 2 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
419 0x2103 TMF_StopFetch 3 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
420 0x2104 TMF_Timeout 4 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
421 0x2105 TMF_TmChannelFull 5 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
422 0x2106 TMF_NotStored 6 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
423 0x2107 TMF_AllDeleted 7 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
424 0x2108 TMF_InvalidData 8 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
425 0x2109 TMF_NotReady 9 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h TM_STORE_FRONTEND_IF
426 0x1d01 PUS_ActivityStarted 1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h ACCEPTS_TELECOMMANDS_IF
427 0x1d02 PUS_InvalidSubservice 2 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h ACCEPTS_TELECOMMANDS_IF
428 0x1d03 PUS_IllegalApplicationData 3 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h ACCEPTS_TELECOMMANDS_IF
429 0x1d04 PUS_SendTmFailed 4 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h ACCEPTS_TELECOMMANDS_IF
430 0x1d05 PUS_Timeout 5 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h ACCEPTS_TELECOMMANDS_IF
431 0x1f01 CSB_ExecutionComplete 1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
432 0x1f02 CSB_NoStepMessage 2 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
433 0x1f03 CSB_ObjectBusy 3 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
434 0x1f04 CSB_Busy 4 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
435 0x1f05 CSB_InvalidTc 5 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
436 0x1f06 CSB_InvalidObject 6 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
437 0x1f07 CSB_InvalidReply 7 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/fsfw/src/fsfw/tmtcservices/CommandingServiceBase.h COMMAND_SERVICE_BASE
438 0x6100 SCBU_KeyNotFound 0 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/scratchApi.h SCRATCH_BUFFER
439 0x6000 SDMA_AlreadyOn 0 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h SD_CARD_MANAGER
440 0x6001 SDMA_UnknownGpioId 1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h SD_CARD_MANAGER
441 0x6002 SDMA_DriveGpioFailure 2 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h SD_CARD_MANAGER
442 0x600a SDMA_StatusFileNexists 10 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h SD_CARD_MANAGER
443 0x600b SDMA_StatusFileFormatInvalid 11 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h SD_CARD_MANAGER
444 0x600c SDMA_MountError 12 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h SD_CARD_MANAGER
445 0x600d SDMA_UnmountError 13 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h SD_CARD_MANAGER
446 0x600e SDMA_SystemCallError 14 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/bsp_q7s/memory/SdCardManager.h SD_CARD_MANAGER
447 0x6003 SDMA_GpioTypeFailure 3 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h SD_CARD_MANAGER
448 0x6004 SDMA_GpioInvalidInstance 4 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/archive/gpio/LinuxLibgpioIF.h SD_CARD_MANAGER
449 0x4ea1 HEATER_CommandNotSupported 0xA1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h HEATER_HANDLER
450 0x4ea2 HEATER_InitFailed 0xA2 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h HEATER_HANDLER
451 0x4ea3 HEATER_InvalidSwitchNr 0xA3 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h HEATER_HANDLER
452 0x4ea4 HEATER_MainSwitchSetTimeout 0xA4 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h HEATER_HANDLER
453 0x4ea5 HEATER_CommandAlreadyWaiting 0xA5 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/HeaterHandler.h HEATER_HANDLER
454 0x5fa0 SADPL_CommandNotSupported 0xA0 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h SA_DEPL_HANDLER
455 0x5fa1 SADPL_DeploymentAlreadyExecuting 0xA1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h SA_DEPL_HANDLER
456 0x5fa2 SADPL_MainSwitchTimeoutFailure 0xA2 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h SA_DEPL_HANDLER
457 0x5fa3 SADPL_SwitchingDeplSa1Failed 0xA3 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h SA_DEPL_HANDLER
458 0x5fa4 SADPL_SwitchingDeplSa2Failed 0xA4 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SolarArrayDeploymentHandler.h SA_DEPL_HANDLER
459 0x55a0 SUSS_ErrorUnlockMutex 0xA0 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SusHandler.h SUS_HANDLER
460 0x55a1 SUSS_ErrorLockMutex 0xA1 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/devices/SusHandler.h SUS_HANDLER
461 0x56a0 IPCI_PapbBusy 0xA0 C:\Users\jakob\Work\EIVE\Q7S\Software\eive_obsw/linux/obc/CCSDSIPCoreBridge.h CCSDS_IP_CORE_BRIDGE

View File

@@ -1,5 +1,10 @@
import os
import enum
from pathlib import Path
PATH_VAR_ROOT = Path(os.path.abspath(os.curdir))
ROOT_DIR = PATH_VAR_ROOT.absolute()
OBSW_ROOT_DIR = PATH_VAR_ROOT.parent.absolute()
DATABASE_NAME = "eive_mod.db"

View File

@@ -1,23 +1,18 @@
#! /usr/bin/python3
"""
@file event_parser.py
@brief Part of the Mission Information Base Exporter for the SOURCE project by KSat.
@details
"""Part of the Mission Operation Database Exporter for the EVIE project.
Event exporter.
To use MySQLdb, run pip install mysqlclient or install in IDE.
On Windows, Build Tools installation might be necessary
@data 21.11.2019
"""
import datetime
import time
from fsfwgen.events.event_parser import handle_csv_export, handle_cpp_export, SubsystemDefinitionParser, EventParser
from fsfwgen.events.event_parser import handle_csv_export, handle_cpp_export, \
SubsystemDefinitionParser, EventParser
from fsfwgen.parserbase.file_list_parser import FileListParser
from fsfwgen.utility.printer import PrettyPrinter
from fsfwgen.utility.file_management import copy_file, move_file
from fsfwgen.core import get_console_logger
from definitions import BspType, ROOT_DIR, OBSW_ROOT_DIR
from definitions import BspType
LOGGER = get_console_logger()
DATE_TODAY = datetime.datetime.now()
DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S")
@@ -30,56 +25,67 @@ MOVE_CSV_FILE = True
PARSE_HOST_BSP = True
CPP_FILENAME = "translateEvents.cpp"
CPP_H_FILENAME = "translateEvents.h"
CPP_FILENAME = f'{__package__}/translateEvents.cpp'
CPP_H_FILENAME = f'{__package__}/translateEvents.h'
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
CSV_FILENAME = f"{BSP_SELECT.value}_events.csv"
CSV_MOVE_DESTINATION = "../"
CSV_MOVE_DESTINATION = f'{ROOT_DIR}'
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
else:
FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig"
CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/events/"
FILE_SEPARATOR = ";"
SUBSYSTEM_DEFINITION_DESTINATIONS = [
f"{FSFW_CONFIG_ROOT}/events/subsystemIdRanges.h",
"../../fsfw/events/fwSubsystemIdRanges.h",
f"../../common/config/commonSubsystemIds.h"
f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/events/fwSubsystemIdRanges.h",
f"{OBSW_ROOT_DIR}/common/config/commonSubsystemIds.h"
]
HEADER_DEFINITION_DESTINATIONS = [
f"{OBSW_ROOT_DIR}/mission/", f"{OBSW_ROOT_DIR}/fsfw/", f"{FSFW_CONFIG_ROOT}",
f"{OBSW_ROOT_DIR}/test/"
]
HEADER_DEFINITION_DESTINATIONS = ["../../mission/", "../../fsfw/", f"{FSFW_CONFIG_ROOT}", "../../test/"]
def main():
print("EventParser: Parsing events: ")
event_list = parse_events()
if GENERATE_CSV:
handle_csv_export(file_name=CSV_FILENAME, event_list=event_list, file_separator=FILE_SEPARATOR)
if MOVE_CSV_FILE:
move_file(file_name=CSV_FILENAME, destination=CSV_MOVE_DESTINATION)
if GENERATE_CPP:
def parse_events(
generate_csv: bool = True, generate_cpp: bool = True, print_events: bool = True
):
LOGGER.info("EventParser: Parsing events: ")
# Small delay for clean printout
time.sleep(0.01)
event_list = generate_event_list()
if print_events:
PrettyPrinter.pprint(event_list)
# Delay for clean printout
time.sleep(0.1)
# xml_test()
if generate_csv:
handle_csv_export(
file_name=CSV_FILENAME, event_list=event_list, file_separator=FILE_SEPARATOR
)
if generate_cpp:
handle_cpp_export(
event_list=event_list, date_string=DATE_STRING_FULL, file_name=CPP_FILENAME,
generate_header=GENERATE_CPP_H, header_file_name=CPP_H_FILENAME
)
if COPY_CPP_FILE:
print(f"EventParser: Copying file to {CPP_COPY_DESTINATION}")
LOGGER.info(f'EventParser: Copying file to {CPP_COPY_DESTINATION}')
copy_file(CPP_FILENAME, CPP_COPY_DESTINATION)
copy_file(CPP_H_FILENAME, CPP_COPY_DESTINATION)
print("")
def parse_events():
def generate_event_list() -> list:
subsystem_parser = SubsystemDefinitionParser(SUBSYSTEM_DEFINITION_DESTINATIONS)
subsystem_table = subsystem_parser.parse_files()
print(f"Found {len(subsystem_table)} subsystem definitions.")
LOGGER.info(f'Found {len(subsystem_table)} subsystem definitions.')
PrettyPrinter.pprint(subsystem_table)
event_header_parser = FileListParser(HEADER_DEFINITION_DESTINATIONS)
event_headers = event_header_parser.parse_header_files(
@@ -90,11 +96,6 @@ def parse_events():
event_parser = EventParser(event_headers, subsystem_table)
event_parser.set_moving_window_mode(moving_window_size=7)
event_table = event_parser.parse_files()
list_items = sorted(event_table.items())
print(f"Found {len(list_items)} entries:")
PrettyPrinter.pprint(list_items)
return list_items
if __name__ == "__main__":
main()
event_list = sorted(event_table.items())
LOGGER.info(f'Found {len(event_list)} entries')
return event_list

View File

@@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 96 translations.
* @brief Auto-generated event translation file. Contains 102 translations.
* @details
* Generated on: 2021-07-12 15:20:38
* Generated on: 2021-08-07 18:11:16
*/
#include "translateEvents.h"
@@ -101,6 +101,12 @@ const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_
const char *SUPV_ACK_FAILURE_STRING = "SUPV_ACK_FAILURE";
const char *SUPV_EXE_FAILURE_STRING = "SUPV_EXE_FAILURE";
const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT";
const char *UPDATE_FILE_NOT_EXISTS_STRING = "UPDATE_FILE_NOT_EXISTS";
const char *ACTION_COMMANDING_FAILED_STRING = "ACTION_COMMANDING_FAILED";
const char *UPDATE_AVAILABLE_FAILED_STRING = "UPDATE_AVAILABLE_FAILED";
const char *UPDATE_TRANSFER_FAILED_STRING = "UPDATE_TRANSFER_FAILED";
const char *UPDATE_VERIFY_FAILED_STRING = "UPDATE_VERIFY_FAILED";
const char *UPDATE_FINISHED_STRING = "UPDATE_FINISHED";
const char * translateEvents(Event event) {
switch( (event & 0xffff) ) {
@@ -296,6 +302,18 @@ const char * translateEvents(Event event) {
return SUPV_EXE_FAILURE_STRING;
case(11504):
return SUPV_CRC_FAILURE_EVENT_STRING;
case(11700):
return UPDATE_FILE_NOT_EXISTS_STRING;
case(11701):
return ACTION_COMMANDING_FAILED_STRING;
case(11702):
return UPDATE_AVAILABLE_FAILED_STRING;
case(11703):
return UPDATE_TRANSFER_FAILED_STRING;
case(11704):
return UPDATE_VERIFY_FAILED_STRING;
case(11705):
return UPDATE_FINISHED_STRING;
default:
return "UNKNOWN_EVENT";
}

View File

@@ -1,7 +1,7 @@
#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
#include <fsfw/events/Event.h>
#include "fsfw/events/Event.h"
const char * translateEvents(Event event);

33
generators/fsfwgen.py Executable file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env python3
import time
from objects.objects import parse_objects
from events.event_parser import parse_events
from returnvalues.returnvalues_parser import parse_returnvalues
from fsfwgen.core import return_generic_args_parser, init_printout, get_console_logger, ParserTypes
LOGGER = get_console_logger()
def main():
init_printout(project_string='EIVE')
parser = return_generic_args_parser()
args = parser.parse_args()
if args.type == 'objects':
LOGGER.info(f'Generating objects data..')
time.sleep(0.05)
parse_objects()
elif args.type == 'events':
LOGGER.info(f'Generating event data')
time.sleep(0.05)
parse_events()
elif args.type == 'returnvalues':
LOGGER.info('Generating returnvalue data')
time.sleep(0.05)
parse_returnvalues()
pass
if __name__ == "__main__":
main()

View File

@@ -1,22 +1,18 @@
#! /usr/bin/env python3
"""
@file objects.py
@brief Part of the Mission Information Base Exporter for the SOURCE project by KSat.
@details
"""Part of the Mission Information Base Exporter for the SOURCE project by KSat.
Object exporter.
To use MySQLdb, run pip install mysqlclient or install in IDE.
On Windows, Build Tools installation might be necessary
@data 21.11.2019
"""
import datetime
from fsfwgen.objects.objects import sql_object_exporter, ObjectDefinitionParser, write_translation_file, \
from fsfwgen.core import get_console_logger
from fsfwgen.objects.objects import sql_object_exporter, ObjectDefinitionParser, \
write_translation_file, \
export_object_file, write_translation_header_file
from fsfwgen.utility.printer import PrettyPrinter
from fsfwgen.utility.file_management import copy_file, move_file
from definitions import BspType, DATABASE_NAME
from definitions import BspType, DATABASE_NAME, OBSW_ROOT_DIR, ROOT_DIR
LOGGER = get_console_logger()
DATE_TODAY = datetime.datetime.now()
DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S")
@@ -31,23 +27,23 @@ GENERATE_HEADER = True
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
else:
FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig"
EXPORT_TO_SQL = True
CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/objects/"
CSV_MOVE_DESTINATION = "../"
CPP_FILENAME = "translateObjects.cpp"
CPP_H_FILENAME = "translateObjects.h"
CSV_MOVE_DESTINATION = f"{ROOT_DIR}"
CPP_FILENAME = f'{__package__}/translateObjects.cpp'
CPP_H_FILENAME = f'{__package__}/translateObjects.h'
CSV_OBJECT_FILENAME = f"{BSP_SELECT.value}_objects.csv"
FILE_SEPARATOR = ";"
OBJECTS_PATH = f"{FSFW_CONFIG_ROOT}/objects/systemObjectList.h"
FRAMEWORK_OBJECT_PATH = "../../fsfw/objectmanager/frameworkObjects.h"
COMMON_OBJECTS_PATH = "../../common/config/commonObjects.h"
FRAMEWORK_OBJECT_PATH = f'{OBSW_ROOT_DIR}/fsfw/src/fsfw/objectmanager/frameworkObjects.h'
COMMON_OBJECTS_PATH = f'{OBSW_ROOT_DIR}/common/config/commonObjects.h'
OBJECTS_DEFINITIONS = [OBJECTS_PATH, FRAMEWORK_OBJECT_PATH, COMMON_OBJECTS_PATH]
SQL_DELETE_OBJECTS_CMD = """
@@ -68,33 +64,33 @@ VALUES(?,?)
"""
def main():
print("Parsing objects: ")
list_items = parse_objects()
handle_file_export(list_items)
if EXPORT_TO_SQL:
print("ObjectParser: Exporting to SQL")
sql_object_exporter(
object_table=list_items, delete_cmd=SQL_DELETE_OBJECTS_CMD, insert_cmd=SQL_INSERT_INTO_OBJECTS_CMD,
create_cmd=SQL_CREATE_OBJECTS_CMD, db_filename=f"../{DATABASE_NAME}"
)
def parse_objects():
def parse_objects(print_object_list: bool = True):
# fetch objects
object_parser = ObjectDefinitionParser(OBJECTS_DEFINITIONS)
subsystem_definitions = object_parser.parse_files()
# id_subsystem_definitions.update(framework_subsystem_definitions)
list_items = sorted(subsystem_definitions.items())
PrettyPrinter.pprint(list_items)
print("ObjectParser: Number of objects: ", len(list_items))
return list_items
LOGGER.info(f'ObjectParser: Number of objects: {len(list_items)}')
if print_object_list:
PrettyPrinter.pprint(list_items)
handle_file_export(list_items)
if EXPORT_TO_SQL:
LOGGER.info('ObjectParser: Exporting to SQL')
sql_object_exporter(
object_table=list_items, delete_cmd=SQL_DELETE_OBJECTS_CMD,
insert_cmd=SQL_INSERT_INTO_OBJECTS_CMD,
create_cmd=SQL_CREATE_OBJECTS_CMD, db_filename=f"{ROOT_DIR}/{DATABASE_NAME}"
)
def handle_file_export(list_items):
if GENERATE_CPP:
print("ObjectParser: Generating translation C++ file.")
write_translation_file(filename=CPP_FILENAME, list_of_entries=list_items, date_string_full=DATE_STRING_FULL)
LOGGER.info('ObjectParser: Generating translation C++ file')
write_translation_file(
filename=CPP_FILENAME, list_of_entries=list_items, date_string_full=DATE_STRING_FULL
)
if COPY_CPP:
print("ObjectParser: Copying object file to " + CPP_COPY_DESTINATION)
copy_file(CPP_FILENAME, CPP_COPY_DESTINATION)
@@ -103,10 +99,6 @@ def handle_file_export(list_items):
copy_file(filename=CPP_H_FILENAME, destination=CPP_COPY_DESTINATION)
if GENERATE_CSV:
print("ObjectParser: Generating text export.")
export_object_file(filename=CSV_OBJECT_FILENAME, object_list=list_items, file_separator=FILE_SEPARATOR)
if MOVE_CSV:
move_file(file_name=CSV_OBJECT_FILENAME, destination=CSV_MOVE_DESTINATION)
if __name__ == "__main__":
main()
export_object_file(
filename=CSV_OBJECT_FILENAME, object_list=list_items, file_separator=FILE_SEPARATOR
)

View File

@@ -1,8 +1,8 @@
/**
* @brief Auto-generated object translation file.
* @details
* Contains 102 translations.
* Generated on: 2021-07-10 16:22:55
* Contains 104 translations.
* Generated on: 2021-08-07 18:08:35
*/
#include "translateObjects.h"
@@ -45,6 +45,7 @@ const char *PDU1_HANDLER_STRING = "PDU1_HANDLER";
const char *PDU2_HANDLER_STRING = "PDU2_HANDLER";
const char *ACU_HANDLER_STRING = "ACU_HANDLER";
const char *RAD_SENSOR_STRING = "RAD_SENSOR";
const char *PLOC_UPDATER_STRING = "PLOC_UPDATER";
const char *PLOC_MPSOC_HANDLER_STRING = "PLOC_MPSOC_HANDLER";
const char *PLOC_SUPERVISOR_HANDLER_STRING = "PLOC_SUPERVISOR_HANDLER";
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
@@ -76,8 +77,9 @@ const char *I2C_COM_IF_STRING = "I2C_COM_IF";
const char *CSP_COM_IF_STRING = "CSP_COM_IF";
const char *CCSDS_PACKET_DISTRIBUTOR_STRING = "CCSDS_PACKET_DISTRIBUTOR";
const char *PUS_PACKET_DISTRIBUTOR_STRING = "PUS_PACKET_DISTRIBUTOR";
const char *UDP_BRIDGE_STRING = "UDP_BRIDGE";
const char *UDP_POLLING_TASK_STRING = "UDP_POLLING_TASK";
const char *TMTC_BRIDGE_STRING = "TMTC_BRIDGE";
const char *TMTC_POLLING_TASK_STRING = "TMTC_POLLING_TASK";
const char *FILE_SYSTEM_HANDLER_STRING = "FILE_SYSTEM_HANDLER";
const char *PUS_SERVICE_6_STRING = "PUS_SERVICE_6";
const char *FSFW_OBJECTS_START_STRING = "FSFW_OBJECTS_START";
const char *PUS_SERVICE_1_VERIFICATION_STRING = "PUS_SERVICE_1_VERIFICATION";
@@ -189,6 +191,8 @@ const char* translateObject(object_id_t object) {
return ACU_HANDLER_STRING;
case 0x443200A5:
return RAD_SENSOR_STRING;
case 0x44330000:
return PLOC_UPDATER_STRING;
case 0x44330015:
return PLOC_MPSOC_HANDLER_STRING;
case 0x44330016:
@@ -252,9 +256,11 @@ const char* translateObject(object_id_t object) {
case 0x50000200:
return PUS_PACKET_DISTRIBUTOR_STRING;
case 0x50000300:
return UDP_BRIDGE_STRING;
return TMTC_BRIDGE_STRING;
case 0x50000400:
return UDP_POLLING_TASK_STRING;
return TMTC_POLLING_TASK_STRING;
case 0x50000500:
return FILE_SYSTEM_HANDLER_STRING;
case 0x51000500:
return PUS_SERVICE_6_STRING;
case 0x53000000:

View File

@@ -9,13 +9,15 @@ Returnvalue exporter.
To use MySQLdb, run pip install mysqlclient or install in IDE. On Windows, Build Tools installation might be necessary.
:data: 21.11.2019
"""
from fsfwgen.core import get_console_logger
from fsfwgen.parserbase.file_list_parser import FileListParser
from fsfwgen.returnvalues.returnvalues_parser import InterfaceParser, ReturnValueParser
from fsfwgen.utility.sql_writer import SqlWriter
from fsfwgen.utility.file_management import move_file
from fsfwgen.utility.printer import PrettyPrinter
from definitions import BspType, DATABASE_NAME
from definitions import BspType, DATABASE_NAME, ROOT_DIR, OBSW_ROOT_DIR
LOGGER = get_console_logger()
EXPORT_TO_FILE = True
MOVE_CSV_FILE = True
EXPORT_TO_SQL = True
@@ -27,28 +29,28 @@ MAX_STRING_LENGTH = 32
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
CSV_RETVAL_FILENAME = f"{BSP_SELECT.value}_returnvalues.csv"
CSV_MOVE_DESTINATION = "../"
CSV_RETVAL_FILENAME = f'{BSP_SELECT.value}_returnvalues.csv'
CSV_MOVE_DESTINATION = f'{ROOT_DIR}'
ADD_LINUX_FOLDER = False
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
FSFW_CONFIG_ROOT = f'{OBSW_ROOT_DIR}/linux/fsfwconfig'
ADD_LINUX_FOLDER = True
else:
FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
BSP_PATH = f"../../{BSP_DIR_NAME}"
FSFW_CONFIG_ROOT = f'{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig'
BSP_PATH = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}"
INTERFACE_DEFINITION_FILES = [
"../../fsfw/returnvalues/FwClassIds.h",
"../../common/config/commonClassIds.h",
f"{FSFW_CONFIG_ROOT}/returnvalues/classIds.h"
f'{OBSW_ROOT_DIR}/fsfw/src/fsfw/returnvalues/FwClassIds.h',
f'{OBSW_ROOT_DIR}/common/config/commonClassIds.h',
f'{FSFW_CONFIG_ROOT}/returnvalues/classIds.h'
]
RETURNVALUE_DESTINATIONS = [
"../../mission/", "../../fsfw/", f"{BSP_PATH}"
RETURNVALUE_SOURCES = [
f'{OBSW_ROOT_DIR}/mission/', f'{OBSW_ROOT_DIR}/fsfw/', f'{BSP_PATH}'
]
if ADD_LINUX_FOLDER:
RETURNVALUE_DESTINATIONS.append("../../linux")
RETURNVALUE_SOURCES.append(f'{OBSW_ROOT_DIR}/linux')
SQL_DELETE_RETURNVALUES_CMD = """
DROP TABLE IF EXISTS Returnvalues
@@ -71,42 +73,41 @@ VALUES(?,?,?,?,?)
"""
def main():
returnvalue_table = parse_returnvalues()
print("")
def parse_returnvalues():
returnvalue_table = generate_returnvalue_table()
if EXPORT_TO_FILE:
ReturnValueParser.export_to_file(CSV_RETVAL_FILENAME, returnvalue_table, FILE_SEPARATOR)
if MOVE_CSV_FILE:
move_file(file_name=CSV_RETVAL_FILENAME, destination=CSV_MOVE_DESTINATION)
# if MOVE_CSV_FILE:
# move_file(file_name=CSV_RETVAL_FILENAME, destination=CSV_MOVE_DESTINATION)
if EXPORT_TO_SQL:
print("ReturnvalueParser: Exporting to SQL")
sql_retval_exporter(returnvalue_table=returnvalue_table, db_file_dest=f"../{DATABASE_NAME}")
LOGGER.info('ReturnvalueParser: Exporting to SQL')
sql_retval_exporter(returnvalue_table, db_filename=f"{ROOT_DIR}/{DATABASE_NAME}")
def parse_returnvalues():
def generate_returnvalue_table():
""" Core function to parse for the return values """
interface_parser = InterfaceParser(file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES)
interface_parser = InterfaceParser(
file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES
)
interfaces = interface_parser.parse_files()
header_parser = FileListParser(RETURNVALUE_DESTINATIONS)
header_parser = FileListParser(RETURNVALUE_SOURCES)
header_list = header_parser.parse_header_files(True, "Parsing header file list: ")
print("")
returnvalue_parser = ReturnValueParser(interfaces, header_list, PRINT_TABLES)
returnvalue_parser.set_moving_window_mode(moving_window_size=7)
returnvalue_table = returnvalue_parser.parse_files(True)
print(f"ReturnvalueParser: Found {len(returnvalue_table)} returnvalues.")
LOGGER.info(f"ReturnvalueParser: Found {len(returnvalue_table)} returnvalues")
return returnvalue_table
def sql_retval_exporter(returnvalue_table, db_file_dest: str):
sql_writer = SqlWriter(db_filename=db_file_dest)
def sql_retval_exporter(returnvalue_table, db_filename: str):
sql_writer = SqlWriter(db_filename=db_filename)
sql_writer.open(SQL_CREATE_RETURNVALUES_CMD)
for entry in returnvalue_table.items():
sql_writer.write_entries(
SQL_INSERT_RETURNVALUES_CMD,
(entry[0], entry[1][2], entry[1][4], entry[1][3], entry[1][1]))
SQL_INSERT_RETURNVALUES_CMD, (entry[0],
entry[1][2],
entry[1][4],
entry[1][3],
entry[1][1]))
sql_writer.commit()
sql_writer.close()
if __name__ == "__main__":
main()

View File

@@ -2,8 +2,8 @@
#define TEST_TESTTASKS_LIBGPIODTEST_H_
#include "TestTask.h"
#include <fsfw/hal/common/gpio/GpioIF.h>
#include <fsfw/hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/common/gpio/GpioIF.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
#include <fsfw/objectmanager/SystemObject.h>
/**

View File

@@ -1,4 +1,5 @@
#include "SpiTestClass.h"
#include "OBSWConfig.h"
#include "devices/gpioIds.h"
@@ -7,10 +8,10 @@
#include <fsfw/tasks/TaskFactory.h>
#include <fsfw/timemanager/Stopwatch.h>
#include <fsfw/hal/linux/utility.h>
#include <fsfw/hal/linux/UnixFileGuard.h>
#include <fsfw/hal/common/gpio/gpioDefinitions.h>
#include <fsfw/hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/linux/utility.h>
#include <fsfw_hal/linux/UnixFileGuard.h>
#include <fsfw_hal/common/gpio/gpioDefinitions.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
#include <linux/spi/spidev.h>
#include <fcntl.h>

View File

@@ -1,8 +1,8 @@
#ifndef LINUX_BOARDTEST_SPITESTCLASS_H_
#define LINUX_BOARDTEST_SPITESTCLASS_H_
#include <fsfw/hal/common/gpio/GpioIF.h>
#include <fsfw/hal/linux/spi/SpiCookie.h>
#include <fsfw_hal/common/gpio/GpioIF.h>
#include <fsfw_hal/linux/spi/SpiCookie.h>
#include <test/testtasks/TestTask.h>
#include <vector>

View File

@@ -4,7 +4,7 @@
#include <fsfw/objectmanager/ObjectManager.h>
#include <fsfw/ipc/QueueFactory.h>
#include <fsfw/hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
HeaterHandler::HeaterHandler(object_id_t setObjectId_, object_id_t gpioDriverId_,
CookieIF * gpioCookie_, object_id_t mainLineSwitcherObjectId_, uint8_t mainLineSwitch_) :

View File

@@ -11,7 +11,7 @@
#include <fsfw/devicehandlers/DeviceHandlerIF.h>
#include <fsfw/devicehandlers/CookieIF.h>
#include <fsfw/timemanager/Countdown.h>
#include <fsfw/hal/common/gpio/GpioIF.h>
#include <fsfw_hal/common/gpio/GpioIF.h>
#include <unordered_map>
/**
@@ -24,6 +24,13 @@ class HeaterHandler: public ExecutableObjectIF,
public SystemObject,
public HasActionsIF {
public:
static const uint8_t INTERFACE_ID = CLASS_ID::HEATER_HANDLER;
static const ReturnValue_t COMMAND_NOT_SUPPORTED = MAKE_RETURN_CODE(0xA1);
static const ReturnValue_t INIT_FAILED = MAKE_RETURN_CODE(0xA2);
static const ReturnValue_t INVALID_SWITCH_NR = MAKE_RETURN_CODE(0xA3);
static const ReturnValue_t MAIN_SWITCH_SET_TIMEOUT = MAKE_RETURN_CODE(0xA4);
static const ReturnValue_t COMMAND_ALREADY_WAITING = MAKE_RETURN_CODE(0xA5);
/** Device command IDs */
static const DeviceCommandId_t SWITCH_HEATER = 0x0;
@@ -52,14 +59,6 @@ public:
private:
static const uint8_t INTERFACE_ID = CLASS_ID::HEATER_HANDLER;
static const ReturnValue_t COMMAND_NOT_SUPPORTED = MAKE_RETURN_CODE(0xA1);
static const ReturnValue_t INIT_FAILED = MAKE_RETURN_CODE(0xA2);
static const ReturnValue_t INVALID_SWITCH_NR = MAKE_RETURN_CODE(0xA3);
static const ReturnValue_t MAIN_SWITCH_SET_TIMEOUT = MAKE_RETURN_CODE(0xA4);
static const ReturnValue_t COMMAND_ALREADY_WAITING = MAKE_RETURN_CODE(0xA5);
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::HEATER_HANDLER;
static const Event GPIO_PULL_HIGH_FAILED = MAKE_EVENT(0, severity::LOW);
static const Event GPIO_PULL_LOW_FAILED = MAKE_EVENT(1, severity::LOW);

View File

@@ -3,7 +3,7 @@
#include <devices/powerSwitcherList.h>
#include <devices/gpioIds.h>
#include <fsfw/hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
#include <fsfw/ipc/QueueFactory.h>
#include <fsfw/objectmanager/ObjectManager.h>

View File

@@ -9,7 +9,7 @@
#include <fsfw/devicehandlers/CookieIF.h>
#include <fsfw/devicehandlers/DeviceHandlerIF.h>
#include <fsfw/timemanager/Countdown.h>
#include <fsfw/hal/common/gpio/GpioIF.h>
#include <fsfw_hal/common/gpio/GpioIF.h>
#include <unordered_map>
/**

View File

@@ -2,7 +2,7 @@
#include "OBSWConfig.h"
#include <fsfw/datapool/PoolReadGuard.h>
#include <fsfw/hal/linux/spi/SpiComIF.h>
#include <fsfw_hal/linux/spi/SpiComIF.h>
SusHandler::SusHandler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie,
LinuxLibgpioIF* gpioComIF, gpioId_t chipSelectId) :

View File

@@ -3,7 +3,7 @@
#include "devicedefinitions/SusDefinitions.h"
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <fsfw/hal/linux/gpio/LinuxLibgpioIF.h>
#include <fsfw_hal/linux/gpio/LinuxLibgpioIF.h>
/**
* @brief This is the device handler class for the SUS sensor. The sensor is

View File

@@ -6,6 +6,10 @@
#ifndef FSFWCONFIG_OBSWCONFIG_H_
#define FSFWCONFIG_OBSWCONFIG_H_
#cmakedefine RASPBERRY_Pi
#cmakedefine XIPHOS_Q7S
#cmakedefine BEAGLEBONEBLACK
#ifdef RASPBERRY_PI
#include "rpiConfig.h"
#elif defined(XIPHOS_Q7S)
@@ -17,6 +21,11 @@
/* These defines should be disabled for mission code but are useful for
debugging. */
#define OBSW_VERBOSE_LEVEL 1
//! Timers can mess up the code when debugging
//! TODO: Enable for mission code, disable for debug code
#define OBSW_ENABLE_TIMERS 0
#define OBSW_PRINT_MISSED_DEADLINES 1
#define OBSW_ADD_TEST_CODE 1
#define OBSW_ADD_TEST_PST 1
@@ -71,6 +80,7 @@ namespace config {
/* Add mission configuration flags here */
static constexpr uint32_t OBSW_FILESYSTEM_HANDLER_QUEUE_SIZE = 50;
static constexpr uint32_t PLOC_UPDATER_QUEUE_SIZE = 50;
#ifdef __cplusplus
}

View File

@@ -1,7 +1,7 @@
#ifndef FSFWCONFIG_DEVICES_GPIOIDS_H_
#define FSFWCONFIG_DEVICES_GPIOIDS_H_
#include <fsfw/hal/common/gpio/GpioIF.h>
#include <fsfw_hal/common/gpio/GpioIF.h>
namespace gpioIds {
enum gpioId_t {

View File

@@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 96 translations.
* @brief Auto-generated event translation file. Contains 102 translations.
* @details
* Generated on: 2021-07-12 15:20:38
* Generated on: 2021-08-07 18:11:16
*/
#include "translateEvents.h"
@@ -101,6 +101,12 @@ const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_
const char *SUPV_ACK_FAILURE_STRING = "SUPV_ACK_FAILURE";
const char *SUPV_EXE_FAILURE_STRING = "SUPV_EXE_FAILURE";
const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT";
const char *UPDATE_FILE_NOT_EXISTS_STRING = "UPDATE_FILE_NOT_EXISTS";
const char *ACTION_COMMANDING_FAILED_STRING = "ACTION_COMMANDING_FAILED";
const char *UPDATE_AVAILABLE_FAILED_STRING = "UPDATE_AVAILABLE_FAILED";
const char *UPDATE_TRANSFER_FAILED_STRING = "UPDATE_TRANSFER_FAILED";
const char *UPDATE_VERIFY_FAILED_STRING = "UPDATE_VERIFY_FAILED";
const char *UPDATE_FINISHED_STRING = "UPDATE_FINISHED";
const char * translateEvents(Event event) {
switch( (event & 0xffff) ) {
@@ -296,6 +302,18 @@ const char * translateEvents(Event event) {
return SUPV_EXE_FAILURE_STRING;
case(11504):
return SUPV_CRC_FAILURE_EVENT_STRING;
case(11700):
return UPDATE_FILE_NOT_EXISTS_STRING;
case(11701):
return ACTION_COMMANDING_FAILED_STRING;
case(11702):
return UPDATE_AVAILABLE_FAILED_STRING;
case(11703):
return UPDATE_TRANSFER_FAILED_STRING;
case(11704):
return UPDATE_VERIFY_FAILED_STRING;
case(11705):
return UPDATE_FINISHED_STRING;
default:
return "UNKNOWN_EVENT";
}

View File

@@ -1,7 +1,7 @@
#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
#include <fsfw/events/Event.h>
#include "fsfw/events/Event.h"
const char * translateEvents(Event event);

View File

@@ -62,7 +62,7 @@ enum sourceObjects: uint32_t {
UART_TEST = 0x54000020,
DUMMY_INTERFACE = 0x5400CAFE,
DUMMY_HANDLER = 0x5400AFFE,
P60DOCK_TEST_TASK = 0x00005060
P60DOCK_TEST_TASK = 0x00005060,
};
}

Some files were not shown because too many files have changed in this diff Show More