Merge pull request 'Release v1.2.0' (#47) from develop into master
Reviewed-on: #47 Reviewed-by: Jakob.Meier <meierj@irs.uni-stuttgart.de>
This commit is contained in:
commit
0c1b00bb8b
6
.dockerignore
Normal file
6
.dockerignore
Normal file
@ -0,0 +1,6 @@
|
||||
/build*
|
||||
generators
|
||||
misc
|
||||
tmtc
|
||||
doc
|
||||
|
13
.gitignore
vendored
13
.gitignore
vendored
@ -1,15 +1,9 @@
|
||||
_obj
|
||||
_bin
|
||||
_dep
|
||||
/build*
|
||||
|
||||
Debug
|
||||
Debug*
|
||||
Release
|
||||
Release*
|
||||
MinSizeRel
|
||||
MinSizeRel*
|
||||
RelWithDebInfo
|
||||
RelWithDebInfo*
|
||||
|
||||
.settings
|
||||
.metadata
|
||||
@ -17,6 +11,9 @@ RelWithDebInfo*
|
||||
.cproject
|
||||
__pycache__
|
||||
|
||||
.idea
|
||||
|
||||
!misc/eclipse/**/.cproject
|
||||
!misc/eclipse/**/.project
|
||||
/eive_obsw cmake debug/
|
||||
|
||||
generators/*.db
|
||||
|
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -15,7 +15,7 @@
|
||||
url = https://github.com/rmspacefish/lwgps.git
|
||||
[submodule "fsfw_hal"]
|
||||
path = fsfw_hal
|
||||
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw_hal.git
|
||||
[submodule "generators/modgen"]
|
||||
path = generators/modgen
|
||||
url = https://git.ksat-stuttgart.de/source/modgen.git
|
||||
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw-hal.git
|
||||
[submodule "generators/fsfwgen"]
|
||||
path = generators/fsfwgen
|
||||
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw-generators.git
|
||||
|
@ -20,6 +20,10 @@ if(NOT OS_FSFW)
|
||||
set(OS_FSFW host CACHE STRING "OS for the FSFW.")
|
||||
endif()
|
||||
|
||||
if(TGT_BSP MATCHES "arm/raspberrypi" OR TGT_BSP MATCHES "arm/beagleboneblack")
|
||||
option(LINUX_CROSS_COMPILE ON)
|
||||
endif()
|
||||
|
||||
# Perform steps like loading toolchain files where applicable.
|
||||
include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake)
|
||||
pre_project_config()
|
||||
@ -50,6 +54,7 @@ set(MISSION_PATH mission)
|
||||
set(TEST_PATH test/testtasks)
|
||||
set(LINUX_PATH linux)
|
||||
set(COMMON_PATH common)
|
||||
set(COMMON_CONFIG_PATH ${COMMON_PATH}/config)
|
||||
|
||||
set(FSFW_HAL_LIB_PATH fsfw_hal)
|
||||
set(CSP_LIB_PATH ${THIRD_PARTY_FOLDER}/libcsp)
|
||||
@ -57,7 +62,7 @@ set(ETL_LIB_PATH ${THIRD_PARTY_FOLDER}/etl)
|
||||
set(LWGPS_LIB_PATH ${THIRD_PARTY_FOLDER}/lwgps)
|
||||
|
||||
set(FSFW_WARNING_SHADOW_LOCAL_GCC OFF)
|
||||
set(ADD_LINUX_FILES TRUE)
|
||||
set(ADD_LINUX_FILES False)
|
||||
|
||||
# Analyse different OS and architecture/target options, determine BSP_PATH,
|
||||
# display information about compiler etc.
|
||||
@ -65,9 +70,10 @@ include (${CMAKE_SCRIPT_PATH}/HardwareOsPreConfig.cmake)
|
||||
pre_source_hw_os_config()
|
||||
|
||||
if(TGT_BSP)
|
||||
if(${TGT_BSP} MATCHES "arm/q7s" OR ${TGT_BSP} MATCHES "arm/raspberrypi")
|
||||
set(ROOT_CONFIG_FOLDER TRUE)
|
||||
set(FSFW_CONFIG_PATH "fsfwconfig")
|
||||
if(${TGT_BSP} MATCHES "arm/q7s" OR ${TGT_BSP} MATCHES "arm/raspberrypi"
|
||||
OR ${TGT_BSP} MATCHES "arm/beagleboneblack"
|
||||
)
|
||||
set(FSFW_CONFIG_PATH "linux/fsfwconfig")
|
||||
set(ADD_LINUX_FILES TRUE)
|
||||
set(ADD_CSP_LIB TRUE)
|
||||
set(FSFW_HAL_ADD_LINUX ON)
|
||||
@ -78,6 +84,10 @@ if(TGT_BSP)
|
||||
set(FSFW_HAL_ADD_RASPBERRY_PI ON)
|
||||
endif()
|
||||
|
||||
if(${TGT_BSP} MATCHES "arm/beagleboneblack")
|
||||
add_definitions(-DBEAGLEBONEBLACK)
|
||||
endif()
|
||||
|
||||
if(${TGT_BSP} MATCHES "arm/q7s")
|
||||
add_definitions(-DXIPHOS_Q7S)
|
||||
endif()
|
||||
@ -85,6 +95,22 @@ else()
|
||||
# Required by FSFW library
|
||||
set(FSFW_CONFIG_PATH "${BSP_PATH}/fsfwconfig")
|
||||
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)
|
||||
endif()
|
||||
|
||||
# Set common config path for FSFW
|
||||
set(FSFW_ADDITIONAL_INC_PATHS
|
||||
"${COMMON_PATH}/config"
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
# Set for lwgps library
|
||||
set(LWGPS_CONFIG_PATH "${COMMON_PATH}/config")
|
||||
|
||||
@ -95,11 +121,6 @@ set(LWGPS_CONFIG_PATH "${COMMON_PATH}/config")
|
||||
# Add executable
|
||||
add_executable(${TARGET_NAME})
|
||||
|
||||
# Add subdirectories
|
||||
if(ROOT_CONFIG_FOLDER)
|
||||
add_subdirectory(${FSFW_CONFIG_PATH})
|
||||
endif()
|
||||
|
||||
if(ADD_CSP_LIB)
|
||||
add_subdirectory(${CSP_LIB_PATH})
|
||||
endif()
|
||||
@ -150,6 +171,7 @@ endif()
|
||||
target_include_directories(${TARGET_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${FSFW_CONFIG_PATH}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
|
||||
|
109
README.md
109
README.md
@ -33,9 +33,7 @@ The CMake build system can be used to generate build systems as well (see helper
|
||||
### Installing Vivado the the Xilinx development tools
|
||||
|
||||
It's also possible to perform debugging with a normal Eclipse installation by installing
|
||||
the TCF plugin. Still, it is necessary to install Vivado to get the toolchain for generating
|
||||
C++ applications. Alternatively you can download the toolchain
|
||||
[from the cloud](https://eive-cloud.irs.uni-stuttgart.de/index.php/apps/files/?dir=/EIVE_IRS/Arbeitsdaten/08_Used%20Components/Q7S/Toolchain&fileid=422486).
|
||||
the TCF plugin and downloading the cross-compiler as specified in the section below.
|
||||
|
||||
* Install Vivado 2018.2 and Xilinx SDK from https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive.html.
|
||||
Install the Vivado Design Suite - HLx Editions - 2018.2 Full Product Installation instead of the updates. It is recommended to use the installer.
|
||||
@ -53,6 +51,24 @@ C++ applications. Alternatively you can download the toolchain
|
||||
`<XilinxInstallation>\SDK\2018.2\gnu\aarch32\nt\gcc-arm-linux-gnueabi\bin`
|
||||
or set up path each time before debugging.
|
||||
|
||||
### Installing toolchain without Vivado
|
||||
|
||||
You can download the toolchains for Windows and Linux
|
||||
[from the EIVE cloud](https://eive-cloud.irs.uni-stuttgart.de/index.php/apps/files?dir=/EIVE_IRS/Software/tools&fileid=831898).
|
||||
|
||||
If `wget` is available (e.g. MinGW64), you can use the following command to download the
|
||||
toolchain for Windows
|
||||
|
||||
```sh
|
||||
wget https://eive-cloud.irs.uni-stuttgart.de/index.php/s/rfoaistRd67yBbH/download/gcc-arm-linux-gnueabi-win.zip
|
||||
```
|
||||
|
||||
or the following command for Linux (could be useful for CI/CD)
|
||||
|
||||
```sh
|
||||
wget https://eive-cloud.irs.uni-stuttgart.de/index.php/s/2Fp2ag6NGnbtAsK/download/gcc-arm-linux-gnueabi.tar.gz
|
||||
```
|
||||
|
||||
### Installing CMake and MSYS2 on Windows
|
||||
|
||||
1. Install [MSYS2](https://www.msys2.org/) and [CMake](https://cmake.org/download/) first.
|
||||
@ -89,7 +105,15 @@ C++ applications. Alternatively you can download the toolchain
|
||||
## Getting the Q7S system root
|
||||
|
||||
It is necessary to copy the Q7S system root to your local development machine for libraries
|
||||
like `libgpio`. You can find the system root [here](https://eive-cloud.irs.uni-stuttgart.de/index.php/apps/files/?dir=/EIVE_IRS/Arbeitsdaten/08_Used%20Components/Q7S/Toolchain&fileid=422486). Download it and unzip it somewhere in the Xilinx installation folder.
|
||||
like `libgpio`. You can find the system root for the Q7S, the Raspberry Pi and the
|
||||
Beagle Bone Black for download here
|
||||
[here](https://eive-cloud.irs.uni-stuttgart.de/index.php/apps/files/?dir=/EIVE_IRS/Software/rootfs&fileid=831849).
|
||||
Download it and unzip it somewhere in the Xilinx installation folder.
|
||||
You can use the following command if `wget` can be used or for CI/CD:
|
||||
|
||||
```
|
||||
wget https://eive-cloud.irs.uni-stuttgart.de/index.php/s/agnJGYeRf6fw2ci/download/cortexa9hf-neon-xiphos-linux-gnueabi.tar.gz
|
||||
```
|
||||
|
||||
Then, create a new environmental variables `Q7S_SYSROOT` and set it to the local system root path.
|
||||
|
||||
@ -116,18 +140,30 @@ When using Windows, run theses steps in MSYS2.
|
||||
or to set up the [PATH and the CROSS_COMPILE variable permanently](https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path)
|
||||
in the `.profile` file.
|
||||
|
||||
4. Run the CMake configuration to create the build system in a `Debug` folder.
|
||||
Navigate into the `eive_obsw` folder first.
|
||||
|
||||
4. Run the CMake configuration to create the build system in a `build-Debug-Q7S` folder.
|
||||
Add `-G "MinGW Makefiles` in MinGW64 on Windows.
|
||||
|
||||
```sh
|
||||
mkdir build-Debug-Q7S && cd build-Debug-Q7S
|
||||
cmake -DTGT_BSP="arm/q7s" -DCMAKE_BUILD_TYPE=Debug -DOS_FSFW=linux ..
|
||||
cmake --build . -j
|
||||
```
|
||||
|
||||
You can also use provided shell scripts to perform these commands
|
||||
|
||||
```sh
|
||||
cd cmake/scripts/Q7S
|
||||
./create_cmake_debug.sh
|
||||
cd ../../..
|
||||
```
|
||||
|
||||
|
||||
This will invoke a Python script which in turn invokes CMake with the correct
|
||||
arguments to configure CMake for Q7S cross-compilation.
|
||||
|
||||
You can build the hosted variant of the OBSW by replacing `-DOS_FSFW=linux` with
|
||||
`-DOS_FSFW=host`. There are also different values for `-DTGT_BSP` to build for the Raspberry Pi
|
||||
or the Beagle Bone Black: `arm/raspberrypi` and `arm/beagleboneblack`.
|
||||
|
||||
5. Build the software with
|
||||
```sh
|
||||
cd Debug
|
||||
@ -266,7 +302,7 @@ To transfer files from the local machine to the Q7S, use port forwarding
|
||||
ssh -L 1535:192.168.133.10:22 eive@2001:7c0:2018:1099:babe:0:e1fe:f1a5
|
||||
```
|
||||
|
||||
Then you can copy an `example` file like this
|
||||
An `example` file can be copied like this
|
||||
|
||||
```sh
|
||||
scp -P 1535 example root@localhost:/tmp
|
||||
@ -277,7 +313,7 @@ Copying a file from Q7S to flatsat PC
|
||||
scp -P 22 root@192.168.133.10:/tmp/kernel-config /tmp
|
||||
````
|
||||
|
||||
From a windows machine files can be copied with putty tools
|
||||
From a windows machine files can be copied with putty tools (note: use IPv4 address)
|
||||
````
|
||||
pscp -scp -P 22 eive@192.168.199.227:</directory-to-example-file/>/example-file </windows-machine-path/>
|
||||
````
|
||||
@ -529,6 +565,38 @@ GET out_en[0] = 1
|
||||
* Local File Path: Path to eiveobsw-linux.elf (in _bin\linux\devel)
|
||||
* Remote File Path: /tmp/eive_obsw.elf
|
||||
|
||||
## Running cppcheck on the Software
|
||||
|
||||
Static code analysis can be useful to find bugs.
|
||||
`cppcheck` can be used for this purpose. On Windows you can use MinGW64 to do this.
|
||||
|
||||
```sh
|
||||
pacman -S mingw-w64-x86_64-cppcheck
|
||||
```
|
||||
|
||||
On Ubuntu, install with
|
||||
|
||||
```sh
|
||||
sudo apt-get install cppcheck
|
||||
```
|
||||
|
||||
You can use the Eclipse integration or you can perform the scanning manually from the command line.
|
||||
CMake will be used for this.
|
||||
|
||||
Run the CMake build generation commands specified above but supply
|
||||
`-DCMAKE_EXPORT_COMPILE_COMMANDS=ON` to the build generation. Invoking the build command will
|
||||
generate a `compile_commands.json` file which can be used by cppcheck.
|
||||
|
||||
```sh
|
||||
cppcheck --project=compile_commands.json --xml 2> report.xml
|
||||
```
|
||||
|
||||
Finally, you can convert the generated `.xml` file to HTML with the following command
|
||||
|
||||
```sh
|
||||
cppcheck-htmlreport --file=report.xml --report-dir=cppcheck --source-dir=..
|
||||
```
|
||||
|
||||
## Libgpiod
|
||||
|
||||
Detect all gpio device files:
|
||||
@ -579,4 +647,23 @@ to install the required GPIO libraries before cloning the system root folder.
|
||||
When using Eclipse, there are two special build variables in the project properties
|
||||
→ C/C++ Build → Build Variables called `Q7S_SYSROOT` or `RPI_SYSROOT`. You can set
|
||||
the sysroot path in those variables to get any additional includes like `gpiod.h` in the
|
||||
Eclipse indexer.
|
||||
Eclipse indexer.
|
||||
|
||||
## Xilinx UARTLIE
|
||||
Get info about ttyUL* devices
|
||||
````
|
||||
cat /proc/tty/driver
|
||||
````
|
||||
|
||||
## I2C
|
||||
Getting information about I2C device
|
||||
````
|
||||
ls /sys/class/i2c-dev/i2c-0/device/device/driver
|
||||
````
|
||||
This shows the memory mapping of /dev/i2c-0
|
||||
|
||||
## Useful Q7S Linux Commands
|
||||
Rebooting currently running image:
|
||||
````
|
||||
xsc_boot_copy -r
|
||||
````
|
||||
|
21
bsp_hosted/Dockerfile
Normal file
21
bsp_hosted/Dockerfile
Normal file
@ -0,0 +1,21 @@
|
||||
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 cmake g++
|
||||
# RUN apk add cmake make g++
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY . .
|
||||
|
||||
RUN set -ex; \
|
||||
rm -rf build-hosted; \
|
||||
mkdir build-hosted; \
|
||||
cd build-hosted; \
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DOS_FSFW=linux ..;
|
||||
|
||||
ENTRYPOINT ["cmake", "--build", "build-hosted"]
|
||||
CMD ["-j"]
|
||||
# CMD ["bash"]
|
@ -32,9 +32,9 @@ ObjectManagerIF *objectManager = nullptr;
|
||||
void initmission::initMission() {
|
||||
sif::info << "Building global objects.." << std::endl;
|
||||
/* Instantiate global object manager and also create all objects */
|
||||
objectManager = new ObjectManager(ObjectFactory::produce);
|
||||
ObjectManager::instance()->setObjectFactoryFunction(ObjectFactory::produce, nullptr);
|
||||
sif::info << "Initializing all objects.." << std::endl;
|
||||
objectManager->initialize();
|
||||
ObjectManager::instance()->initialize();
|
||||
|
||||
/* This function creates and starts all tasks */
|
||||
initTasks();
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <fsfw/osal/common/UdpTcPollingTask.h>
|
||||
#include <fsfw/osal/common/UdpTmTcBridge.h>
|
||||
|
||||
#include <fsfw/tmtcpacket/pus/TmPacketStored.h>
|
||||
#include <fsfw/tmtcpacket/pus/tm.h>
|
||||
|
||||
|
||||
#if OBSW_ADD_TEST_CODE == 1
|
||||
@ -33,16 +33,14 @@ void Factory::setStaticFrameworkObjectIds(){
|
||||
TmFunnel::storageDestination = objects::NO_OBJECT;
|
||||
|
||||
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
||||
TmPacketStored::timeStamperId = objects::TIME_STAMPER;
|
||||
TmPacketBase::timeStamperId = objects::TIME_STAMPER;
|
||||
}
|
||||
|
||||
void ObjectFactory::produce(){
|
||||
void ObjectFactory::produce(void* args){
|
||||
Factory::setStaticFrameworkObjectIds();
|
||||
ObjectFactory::produceGenericObjects();
|
||||
|
||||
new UdpTmTcBridge(objects::UDP_BRIDGE,
|
||||
objects::CCSDS_PACKET_DISTRIBUTOR,
|
||||
objects::TM_STORE, objects::TC_STORE);
|
||||
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
|
||||
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
|
||||
|
||||
}
|
||||
|
@ -1,17 +1,10 @@
|
||||
/*
|
||||
* ObjectFactory.h
|
||||
*
|
||||
* Created on: Sep 22, 2020
|
||||
* Author: steffen
|
||||
*/
|
||||
|
||||
#ifndef BSP_LINUX_OBJECTFACTORY_H_
|
||||
#define BSP_LINUX_OBJECTFACTORY_H_
|
||||
|
||||
|
||||
namespace ObjectFactory {
|
||||
void setStatics();
|
||||
void produce();
|
||||
void produce(void* args);
|
||||
};
|
||||
|
||||
#endif /* BSP_LINUX_OBJECTFACTORY_H_ */
|
||||
|
@ -6,5 +6,16 @@ target_include_directories(${TARGET_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# If a special translation file for object IDs exists, compile it.
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/objects/translateObjects.cpp")
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
objects/translateObjects.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
# If a special translation file for events exists, compile it.
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/objects/translateObjects.cpp")
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
events/translateEvents.cpp
|
||||
)
|
||||
endif()
|
||||
|
@ -7,18 +7,18 @@
|
||||
//! Used to determine whether C++ ostreams are used which can increase
|
||||
//! the binary size significantly. If this is disabled,
|
||||
//! the C stdio functions can be used alternatively
|
||||
#define FSFW_CPP_OSTREAM_ENABLED 1
|
||||
#define FSFW_CPP_OSTREAM_ENABLED 1
|
||||
|
||||
//! More FSFW related printouts depending on level. Useful for development.
|
||||
#define FSFW_VERBOSE_LEVEL 1
|
||||
#define FSFW_VERBOSE_LEVEL 1
|
||||
|
||||
//! Can be used to completely disable printouts, even the C stdio ones.
|
||||
#if FSFW_CPP_OSTREAM_ENABLED == 0 && FSFW_VERBOSE_LEVEL == 0
|
||||
#define FSFW_DISABLE_PRINTOUT 0
|
||||
#define FSFW_DISABLE_PRINTOUT 0
|
||||
#endif
|
||||
|
||||
//! Can be used to disable the ANSI color sequences for C stdio.
|
||||
#define FSFW_COLORED_OUTPUT 1
|
||||
#define FSFW_USE_PUS_C_TELEMETRY 1
|
||||
#define FSFW_USE_PUS_C_TELECOMMANDS 1
|
||||
|
||||
//! Can be used to disable the ANSI color sequences for C stdio.
|
||||
#define FSFW_COLORED_OUTPUT 1
|
||||
@ -26,7 +26,7 @@
|
||||
//! If FSFW_OBJ_EVENT_TRANSLATION is set to one,
|
||||
//! additional output which requires the translation files translateObjects
|
||||
//! and translateEvents (and their compiled source files)
|
||||
#define FSFW_OBJ_EVENT_TRANSLATION 0
|
||||
#define FSFW_OBJ_EVENT_TRANSLATION 1
|
||||
|
||||
#if FSFW_OBJ_EVENT_TRANSLATION == 1
|
||||
//! Specify whether info events are printed too.
|
||||
@ -43,10 +43,17 @@
|
||||
//! Specify whether a special mode store is used for Subsystem components.
|
||||
#define FSFW_USE_MODESTORE 0
|
||||
|
||||
//! Defines if the real time scheduler for linux should be used.
|
||||
//! If set to 0, this will also disable priority settings for linux
|
||||
//! as most systems will not allow to set nice values without privileges
|
||||
//! For embedded linux system set this to 1.
|
||||
//! If set to 1 the binary needs "cap_sys_nice=eip" privileges to run
|
||||
#define FSFW_USE_REALTIME_FOR_LINUX 0
|
||||
|
||||
namespace fsfwconfig {
|
||||
//! Default timestamp size. The default timestamp will be an eight byte CDC
|
||||
//! short timestamp.
|
||||
static constexpr uint8_t FSFW_MISSION_TIMESTAMP_SIZE = 8;
|
||||
|
||||
//! Default timestamp size. The default timestamp will be an seven byte CDC short timestamp.
|
||||
static constexpr uint8_t FSFW_MISSION_TIMESTAMP_SIZE = 7;
|
||||
|
||||
//! Configure the allocated pool sizes for the event manager.
|
||||
static constexpr size_t FSFW_EVENTMGMR_MATCHTREE_NODES = 240;
|
||||
@ -55,11 +62,14 @@ static constexpr size_t FSFW_EVENTMGMR_RANGEMATCHERS = 120;
|
||||
|
||||
//! Defines the FIFO depth of each commanding service base which
|
||||
//! also determines how many commands a CSB service can handle in one cycle
|
||||
//! simulataneously. This will increase the required RAM for
|
||||
//! simultaneously. This will increase the required RAM for
|
||||
//! each CSB service !
|
||||
static constexpr uint8_t FSFW_CSB_FIFO_DEPTH = 6;
|
||||
|
||||
static constexpr size_t FSFW_PRINT_BUFFER_SIZE = 124;
|
||||
|
||||
static constexpr size_t FSFW_MAX_TM_PACKET_SIZE = 2048;
|
||||
|
||||
}
|
||||
|
||||
#endif /* CONFIG_FSFWCONFIG_H_ */
|
@ -1,12 +0,0 @@
|
||||
#ifndef FSFWCONFIG_OBSWVERSION_H_
|
||||
#define FSFWCONFIG_OBSWVERSION_H_
|
||||
|
||||
const char* const SW_NAME = "eive";
|
||||
|
||||
#define SW_VERSION 1
|
||||
#define SW_SUBVERSION 0
|
||||
#define SW_SUBSUBVERSION 0
|
||||
|
||||
|
||||
|
||||
#endif /* FSFWCONFIG_OBSWVERSION_H_ */
|
@ -1,7 +1,7 @@
|
||||
#ifndef CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_
|
||||
#define CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_
|
||||
|
||||
#include <fsfw/events/fwSubsystemIdRanges.h>
|
||||
#include <common/config/commonSubsystemIds.h>
|
||||
#include <cstdint>
|
||||
|
||||
/**
|
||||
@ -10,17 +10,7 @@
|
||||
*/
|
||||
namespace SUBSYSTEM_ID {
|
||||
enum: uint8_t {
|
||||
SUBSYSTEM_ID_START = FW_SUBSYSTEM_ID_RANGE,
|
||||
PUS_SERVICE_2,
|
||||
PUS_SERVICE_3,
|
||||
PUS_SERVICE_5,
|
||||
PUS_SERVICE_6,
|
||||
PUS_SERVICE_8,
|
||||
PUS_SERVICE_23,
|
||||
MGM_LIS3MDL,
|
||||
MGM_RM3100,
|
||||
|
||||
DUMMY_DEVICE,
|
||||
SUBSYSTEM_ID_START = COMMON_SUBSYSTEM_ID_END
|
||||
};
|
||||
}
|
||||
|
||||
|
264
bsp_hosted/fsfwconfig/events/translateEvents.cpp
Normal file
264
bsp_hosted/fsfwconfig/events/translateEvents.cpp
Normal file
@ -0,0 +1,264 @@
|
||||
/**
|
||||
* @brief Auto-generated event translation file. Contains 83 translations.
|
||||
* @details
|
||||
* Generated on: 2021-05-17 19:49:55
|
||||
*/
|
||||
#include "translateEvents.h"
|
||||
|
||||
const char *STORE_SEND_WRITE_FAILED_STRING = "STORE_SEND_WRITE_FAILED";
|
||||
const char *STORE_WRITE_FAILED_STRING = "STORE_WRITE_FAILED";
|
||||
const char *STORE_SEND_READ_FAILED_STRING = "STORE_SEND_READ_FAILED";
|
||||
const char *STORE_READ_FAILED_STRING = "STORE_READ_FAILED";
|
||||
const char *UNEXPECTED_MSG_STRING = "UNEXPECTED_MSG";
|
||||
const char *STORING_FAILED_STRING = "STORING_FAILED";
|
||||
const char *TM_DUMP_FAILED_STRING = "TM_DUMP_FAILED";
|
||||
const char *STORE_INIT_FAILED_STRING = "STORE_INIT_FAILED";
|
||||
const char *STORE_INIT_EMPTY_STRING = "STORE_INIT_EMPTY";
|
||||
const char *STORE_CONTENT_CORRUPTED_STRING = "STORE_CONTENT_CORRUPTED";
|
||||
const char *STORE_INITIALIZE_STRING = "STORE_INITIALIZE";
|
||||
const char *INIT_DONE_STRING = "INIT_DONE";
|
||||
const char *DUMP_FINISHED_STRING = "DUMP_FINISHED";
|
||||
const char *DELETION_FINISHED_STRING = "DELETION_FINISHED";
|
||||
const char *DELETION_FAILED_STRING = "DELETION_FAILED";
|
||||
const char *AUTO_CATALOGS_SENDING_FAILED_STRING = "AUTO_CATALOGS_SENDING_FAILED";
|
||||
const char *GET_DATA_FAILED_STRING = "GET_DATA_FAILED";
|
||||
const char *STORE_DATA_FAILED_STRING = "STORE_DATA_FAILED";
|
||||
const char *DEVICE_BUILDING_COMMAND_FAILED_STRING = "DEVICE_BUILDING_COMMAND_FAILED";
|
||||
const char *DEVICE_SENDING_COMMAND_FAILED_STRING = "DEVICE_SENDING_COMMAND_FAILED";
|
||||
const char *DEVICE_REQUESTING_REPLY_FAILED_STRING = "DEVICE_REQUESTING_REPLY_FAILED";
|
||||
const char *DEVICE_READING_REPLY_FAILED_STRING = "DEVICE_READING_REPLY_FAILED";
|
||||
const char *DEVICE_INTERPRETING_REPLY_FAILED_STRING = "DEVICE_INTERPRETING_REPLY_FAILED";
|
||||
const char *DEVICE_MISSED_REPLY_STRING = "DEVICE_MISSED_REPLY";
|
||||
const char *DEVICE_UNKNOWN_REPLY_STRING = "DEVICE_UNKNOWN_REPLY";
|
||||
const char *DEVICE_UNREQUESTED_REPLY_STRING = "DEVICE_UNREQUESTED_REPLY";
|
||||
const char *INVALID_DEVICE_COMMAND_STRING = "INVALID_DEVICE_COMMAND";
|
||||
const char *MONITORING_LIMIT_EXCEEDED_STRING = "MONITORING_LIMIT_EXCEEDED";
|
||||
const char *MONITORING_AMBIGUOUS_STRING = "MONITORING_AMBIGUOUS";
|
||||
const char *FUSE_CURRENT_HIGH_STRING = "FUSE_CURRENT_HIGH";
|
||||
const char *FUSE_WENT_OFF_STRING = "FUSE_WENT_OFF";
|
||||
const char *POWER_ABOVE_HIGH_LIMIT_STRING = "POWER_ABOVE_HIGH_LIMIT";
|
||||
const char *POWER_BELOW_LOW_LIMIT_STRING = "POWER_BELOW_LOW_LIMIT";
|
||||
const char *SWITCH_WENT_OFF_STRING = "SWITCH_WENT_OFF";
|
||||
const char *HEATER_ON_STRING = "HEATER_ON";
|
||||
const char *HEATER_OFF_STRING = "HEATER_OFF";
|
||||
const char *HEATER_TIMEOUT_STRING = "HEATER_TIMEOUT";
|
||||
const char *HEATER_STAYED_ON_STRING = "HEATER_STAYED_ON";
|
||||
const char *HEATER_STAYED_OFF_STRING = "HEATER_STAYED_OFF";
|
||||
const char *TEMP_SENSOR_HIGH_STRING = "TEMP_SENSOR_HIGH";
|
||||
const char *TEMP_SENSOR_LOW_STRING = "TEMP_SENSOR_LOW";
|
||||
const char *TEMP_SENSOR_GRADIENT_STRING = "TEMP_SENSOR_GRADIENT";
|
||||
const char *COMPONENT_TEMP_LOW_STRING = "COMPONENT_TEMP_LOW";
|
||||
const char *COMPONENT_TEMP_HIGH_STRING = "COMPONENT_TEMP_HIGH";
|
||||
const char *COMPONENT_TEMP_OOL_LOW_STRING = "COMPONENT_TEMP_OOL_LOW";
|
||||
const char *COMPONENT_TEMP_OOL_HIGH_STRING = "COMPONENT_TEMP_OOL_HIGH";
|
||||
const char *TEMP_NOT_IN_OP_RANGE_STRING = "TEMP_NOT_IN_OP_RANGE";
|
||||
const char *FDIR_CHANGED_STATE_STRING = "FDIR_CHANGED_STATE";
|
||||
const char *FDIR_STARTS_RECOVERY_STRING = "FDIR_STARTS_RECOVERY";
|
||||
const char *FDIR_TURNS_OFF_DEVICE_STRING = "FDIR_TURNS_OFF_DEVICE";
|
||||
const char *MONITOR_CHANGED_STATE_STRING = "MONITOR_CHANGED_STATE";
|
||||
const char *VALUE_BELOW_LOW_LIMIT_STRING = "VALUE_BELOW_LOW_LIMIT";
|
||||
const char *VALUE_ABOVE_HIGH_LIMIT_STRING = "VALUE_ABOVE_HIGH_LIMIT";
|
||||
const char *VALUE_OUT_OF_RANGE_STRING = "VALUE_OUT_OF_RANGE";
|
||||
const char *SWITCHING_TM_FAILED_STRING = "SWITCHING_TM_FAILED";
|
||||
const char *CHANGING_MODE_STRING = "CHANGING_MODE";
|
||||
const char *MODE_INFO_STRING = "MODE_INFO";
|
||||
const char *FALLBACK_FAILED_STRING = "FALLBACK_FAILED";
|
||||
const char *MODE_TRANSITION_FAILED_STRING = "MODE_TRANSITION_FAILED";
|
||||
const char *CANT_KEEP_MODE_STRING = "CANT_KEEP_MODE";
|
||||
const char *OBJECT_IN_INVALID_MODE_STRING = "OBJECT_IN_INVALID_MODE";
|
||||
const char *FORCING_MODE_STRING = "FORCING_MODE";
|
||||
const char *MODE_CMD_REJECTED_STRING = "MODE_CMD_REJECTED";
|
||||
const char *HEALTH_INFO_STRING = "HEALTH_INFO";
|
||||
const char *CHILD_CHANGED_HEALTH_STRING = "CHILD_CHANGED_HEALTH";
|
||||
const char *CHILD_PROBLEMS_STRING = "CHILD_PROBLEMS";
|
||||
const char *OVERWRITING_HEALTH_STRING = "OVERWRITING_HEALTH";
|
||||
const char *TRYING_RECOVERY_STRING = "TRYING_RECOVERY";
|
||||
const char *RECOVERY_STEP_STRING = "RECOVERY_STEP";
|
||||
const char *RECOVERY_DONE_STRING = "RECOVERY_DONE";
|
||||
const char *RF_AVAILABLE_STRING = "RF_AVAILABLE";
|
||||
const char *RF_LOST_STRING = "RF_LOST";
|
||||
const char *BIT_LOCK_STRING = "BIT_LOCK";
|
||||
const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST";
|
||||
const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED";
|
||||
const char *CLOCK_SET_STRING = "CLOCK_SET";
|
||||
const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE";
|
||||
const char *TEST_STRING = "TEST";
|
||||
const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER";
|
||||
const char *MEMORY_READ_RPT_CRC_FAILURE_STRING = "MEMORY_READ_RPT_CRC_FAILURE";
|
||||
const char *ACK_FAILURE_STRING = "ACK_FAILURE";
|
||||
const char *EXE_FAILURE_STRING = "EXE_FAILURE";
|
||||
const char *CRC_FAILURE_EVENT_STRING = "CRC_FAILURE_EVENT";
|
||||
|
||||
const char * translateEvents(Event event) {
|
||||
switch( (event & 0xffff) ) {
|
||||
case(2200):
|
||||
return STORE_SEND_WRITE_FAILED_STRING;
|
||||
case(2201):
|
||||
return STORE_WRITE_FAILED_STRING;
|
||||
case(2202):
|
||||
return STORE_SEND_READ_FAILED_STRING;
|
||||
case(2203):
|
||||
return STORE_READ_FAILED_STRING;
|
||||
case(2204):
|
||||
return UNEXPECTED_MSG_STRING;
|
||||
case(2205):
|
||||
return STORING_FAILED_STRING;
|
||||
case(2206):
|
||||
return TM_DUMP_FAILED_STRING;
|
||||
case(2207):
|
||||
return STORE_INIT_FAILED_STRING;
|
||||
case(2208):
|
||||
return STORE_INIT_EMPTY_STRING;
|
||||
case(2209):
|
||||
return STORE_CONTENT_CORRUPTED_STRING;
|
||||
case(2210):
|
||||
return STORE_INITIALIZE_STRING;
|
||||
case(2211):
|
||||
return INIT_DONE_STRING;
|
||||
case(2212):
|
||||
return DUMP_FINISHED_STRING;
|
||||
case(2213):
|
||||
return DELETION_FINISHED_STRING;
|
||||
case(2214):
|
||||
return DELETION_FAILED_STRING;
|
||||
case(2215):
|
||||
return AUTO_CATALOGS_SENDING_FAILED_STRING;
|
||||
case(2600):
|
||||
return GET_DATA_FAILED_STRING;
|
||||
case(2601):
|
||||
return STORE_DATA_FAILED_STRING;
|
||||
case(2800):
|
||||
return DEVICE_BUILDING_COMMAND_FAILED_STRING;
|
||||
case(2801):
|
||||
return DEVICE_SENDING_COMMAND_FAILED_STRING;
|
||||
case(2802):
|
||||
return DEVICE_REQUESTING_REPLY_FAILED_STRING;
|
||||
case(2803):
|
||||
return DEVICE_READING_REPLY_FAILED_STRING;
|
||||
case(2804):
|
||||
return DEVICE_INTERPRETING_REPLY_FAILED_STRING;
|
||||
case(2805):
|
||||
return DEVICE_MISSED_REPLY_STRING;
|
||||
case(2806):
|
||||
return DEVICE_UNKNOWN_REPLY_STRING;
|
||||
case(2807):
|
||||
return DEVICE_UNREQUESTED_REPLY_STRING;
|
||||
case(2808):
|
||||
return INVALID_DEVICE_COMMAND_STRING;
|
||||
case(2809):
|
||||
return MONITORING_LIMIT_EXCEEDED_STRING;
|
||||
case(2810):
|
||||
return MONITORING_AMBIGUOUS_STRING;
|
||||
case(4201):
|
||||
return FUSE_CURRENT_HIGH_STRING;
|
||||
case(4202):
|
||||
return FUSE_WENT_OFF_STRING;
|
||||
case(4204):
|
||||
return POWER_ABOVE_HIGH_LIMIT_STRING;
|
||||
case(4205):
|
||||
return POWER_BELOW_LOW_LIMIT_STRING;
|
||||
case(4300):
|
||||
return SWITCH_WENT_OFF_STRING;
|
||||
case(5000):
|
||||
return HEATER_ON_STRING;
|
||||
case(5001):
|
||||
return HEATER_OFF_STRING;
|
||||
case(5002):
|
||||
return HEATER_TIMEOUT_STRING;
|
||||
case(5003):
|
||||
return HEATER_STAYED_ON_STRING;
|
||||
case(5004):
|
||||
return HEATER_STAYED_OFF_STRING;
|
||||
case(5200):
|
||||
return TEMP_SENSOR_HIGH_STRING;
|
||||
case(5201):
|
||||
return TEMP_SENSOR_LOW_STRING;
|
||||
case(5202):
|
||||
return TEMP_SENSOR_GRADIENT_STRING;
|
||||
case(5901):
|
||||
return COMPONENT_TEMP_LOW_STRING;
|
||||
case(5902):
|
||||
return COMPONENT_TEMP_HIGH_STRING;
|
||||
case(5903):
|
||||
return COMPONENT_TEMP_OOL_LOW_STRING;
|
||||
case(5904):
|
||||
return COMPONENT_TEMP_OOL_HIGH_STRING;
|
||||
case(5905):
|
||||
return TEMP_NOT_IN_OP_RANGE_STRING;
|
||||
case(7101):
|
||||
return FDIR_CHANGED_STATE_STRING;
|
||||
case(7102):
|
||||
return FDIR_STARTS_RECOVERY_STRING;
|
||||
case(7103):
|
||||
return FDIR_TURNS_OFF_DEVICE_STRING;
|
||||
case(7201):
|
||||
return MONITOR_CHANGED_STATE_STRING;
|
||||
case(7202):
|
||||
return VALUE_BELOW_LOW_LIMIT_STRING;
|
||||
case(7203):
|
||||
return VALUE_ABOVE_HIGH_LIMIT_STRING;
|
||||
case(7204):
|
||||
return VALUE_OUT_OF_RANGE_STRING;
|
||||
case(7301):
|
||||
return SWITCHING_TM_FAILED_STRING;
|
||||
case(7400):
|
||||
return CHANGING_MODE_STRING;
|
||||
case(7401):
|
||||
return MODE_INFO_STRING;
|
||||
case(7402):
|
||||
return FALLBACK_FAILED_STRING;
|
||||
case(7403):
|
||||
return MODE_TRANSITION_FAILED_STRING;
|
||||
case(7404):
|
||||
return CANT_KEEP_MODE_STRING;
|
||||
case(7405):
|
||||
return OBJECT_IN_INVALID_MODE_STRING;
|
||||
case(7406):
|
||||
return FORCING_MODE_STRING;
|
||||
case(7407):
|
||||
return MODE_CMD_REJECTED_STRING;
|
||||
case(7506):
|
||||
return HEALTH_INFO_STRING;
|
||||
case(7507):
|
||||
return CHILD_CHANGED_HEALTH_STRING;
|
||||
case(7508):
|
||||
return CHILD_PROBLEMS_STRING;
|
||||
case(7509):
|
||||
return OVERWRITING_HEALTH_STRING;
|
||||
case(7510):
|
||||
return TRYING_RECOVERY_STRING;
|
||||
case(7511):
|
||||
return RECOVERY_STEP_STRING;
|
||||
case(7512):
|
||||
return RECOVERY_DONE_STRING;
|
||||
case(7900):
|
||||
return RF_AVAILABLE_STRING;
|
||||
case(7901):
|
||||
return RF_LOST_STRING;
|
||||
case(7902):
|
||||
return BIT_LOCK_STRING;
|
||||
case(7903):
|
||||
return BIT_LOCK_LOST_STRING;
|
||||
case(7905):
|
||||
return FRAME_PROCESSING_FAILED_STRING;
|
||||
case(8900):
|
||||
return CLOCK_SET_STRING;
|
||||
case(8901):
|
||||
return CLOCK_SET_FAILURE_STRING;
|
||||
case(9700):
|
||||
return TEST_STRING;
|
||||
case(10600):
|
||||
return CHANGE_OF_SETUP_PARAMETER_STRING;
|
||||
case(11101):
|
||||
return MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
||||
case(11102):
|
||||
return ACK_FAILURE_STRING;
|
||||
case(11103):
|
||||
return EXE_FAILURE_STRING;
|
||||
case(11104):
|
||||
return CRC_FAILURE_EVENT_STRING;
|
||||
default:
|
||||
return "UNKNOWN_EVENT";
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,10 +1,3 @@
|
||||
/*
|
||||
* translateEvent.h
|
||||
*
|
||||
* Created on: 28 May 2019
|
||||
* Author: Robin
|
||||
*/
|
||||
|
||||
#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
|
||||
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
|
||||
|
||||
@ -12,5 +5,4 @@
|
||||
|
||||
const char * translateEvents(Event event);
|
||||
|
||||
|
||||
#endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */
|
@ -2,15 +2,11 @@
|
||||
#define HOSTED_CONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
|
||||
|
||||
#include <cstdint>
|
||||
#include <commonObjects.h>
|
||||
|
||||
// The objects will be instantiated in the ID order
|
||||
namespace objects {
|
||||
enum sourceObjects: 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,
|
||||
|
||||
PUS_SERVICE_3 = 0x51000300,
|
||||
PUS_SERVICE_5 = 0x51000400,
|
||||
@ -27,21 +23,6 @@ namespace objects {
|
||||
DUMMY_INTERFACE = 0xCAFECAFE,
|
||||
DUMMY_HANDLER = 0x4400AFFE,
|
||||
|
||||
/* 0x44 ('D') for device handlers */
|
||||
P60DOCK_HANDLER = 0x44000001,
|
||||
PDU1_HANDLER = 0x44000002,
|
||||
PDU2_HANDLER = 0x44000003,
|
||||
ACU_HANDLER = 0x44000004,
|
||||
TMP1075_HANDLER_1 = 0x44000005,
|
||||
TMP1075_HANDLER_2 = 0x44000006,
|
||||
MGM_0_LIS3_HANDLER = 0x4400007,
|
||||
MGM_1_RM3100_HANDLER = 0x44000008,
|
||||
MGM_2_LIS3_HANDLER = 0x44000009,
|
||||
MGM_3_RM3100_HANDLER = 0x44000010,
|
||||
GYRO_0_ADIS_HANDLER = 0x44000011,
|
||||
GYRO_1_L3G_HANDLER = 0x44000012,
|
||||
GYRO_2_L3G_HANDLER = 0x44000013,
|
||||
|
||||
/* 0x49 ('I') for Communication Interfaces **/
|
||||
ARDUINO_COM_IF = 0x49000001
|
||||
};
|
||||
|
109
bsp_hosted/fsfwconfig/objects/translateObjects.cpp
Normal file
109
bsp_hosted/fsfwconfig/objects/translateObjects.cpp
Normal file
@ -0,0 +1,109 @@
|
||||
/**
|
||||
* @brief Auto-generated object translation file.
|
||||
* @details
|
||||
* Contains 31 translations.
|
||||
* Generated on: 2021-05-17 19:12:49
|
||||
*/
|
||||
#include "translateObjects.h"
|
||||
|
||||
const char *TEST_TASK_STRING = "TEST_TASK";
|
||||
const char *DUMMY_HANDLER_STRING = "DUMMY_HANDLER";
|
||||
const char *ARDUINO_COM_IF_STRING = "ARDUINO_COM_IF";
|
||||
const char *PUS_SERVICE_3_STRING = "PUS_SERVICE_3";
|
||||
const char *PUS_SERVICE_5_STRING = "PUS_SERVICE_5";
|
||||
const char *PUS_SERVICE_6_STRING = "PUS_SERVICE_6";
|
||||
const char *PUS_SERVICE_8_STRING = "PUS_SERVICE_8";
|
||||
const char *PUS_SERVICE_23_STRING = "PUS_SERVICE_23";
|
||||
const char *PUS_SERVICE_201_STRING = "PUS_SERVICE_201";
|
||||
const char *TM_FUNNEL_STRING = "TM_FUNNEL";
|
||||
const char *FSFW_OBJECTS_START_STRING = "FSFW_OBJECTS_START";
|
||||
const char *PUS_SERVICE_1_VERIFICATION_STRING = "PUS_SERVICE_1_VERIFICATION";
|
||||
const char *PUS_SERVICE_2_DEVICE_ACCESS_STRING = "PUS_SERVICE_2_DEVICE_ACCESS";
|
||||
const char *PUS_SERVICE_3_HOUSEKEEPING_STRING = "PUS_SERVICE_3_HOUSEKEEPING";
|
||||
const char *PUS_SERVICE_5_EVENT_REPORTING_STRING = "PUS_SERVICE_5_EVENT_REPORTING";
|
||||
const char *PUS_SERVICE_8_FUNCTION_MGMT_STRING = "PUS_SERVICE_8_FUNCTION_MGMT";
|
||||
const char *PUS_SERVICE_9_TIME_MGMT_STRING = "PUS_SERVICE_9_TIME_MGMT";
|
||||
const char *PUS_SERVICE_17_TEST_STRING = "PUS_SERVICE_17_TEST";
|
||||
const char *PUS_SERVICE_20_PARAMETERS_STRING = "PUS_SERVICE_20_PARAMETERS";
|
||||
const char *PUS_SERVICE_200_MODE_MGMT_STRING = "PUS_SERVICE_200_MODE_MGMT";
|
||||
const char *HEALTH_TABLE_STRING = "HEALTH_TABLE";
|
||||
const char *MODE_STORE_STRING = "MODE_STORE";
|
||||
const char *EVENT_MANAGER_STRING = "EVENT_MANAGER";
|
||||
const char *INTERNAL_ERROR_REPORTER_STRING = "INTERNAL_ERROR_REPORTER";
|
||||
const char *TC_STORE_STRING = "TC_STORE";
|
||||
const char *TM_STORE_STRING = "TM_STORE";
|
||||
const char *IPC_STORE_STRING = "IPC_STORE";
|
||||
const char *TIME_STAMPER_STRING = "TIME_STAMPER";
|
||||
const char *FSFW_OBJECTS_END_STRING = "FSFW_OBJECTS_END";
|
||||
const char *DUMMY_INTERFACE_STRING = "DUMMY_INTERFACE";
|
||||
const char *NO_OBJECT_STRING = "NO_OBJECT";
|
||||
|
||||
const char* translateObject(object_id_t object) {
|
||||
switch( (object & 0xFFFFFFFF) ) {
|
||||
case 0x42694269:
|
||||
return TEST_TASK_STRING;
|
||||
case 0x4400AFFE:
|
||||
return DUMMY_HANDLER_STRING;
|
||||
case 0x49000001:
|
||||
return ARDUINO_COM_IF_STRING;
|
||||
case 0x51000300:
|
||||
return PUS_SERVICE_3_STRING;
|
||||
case 0x51000400:
|
||||
return PUS_SERVICE_5_STRING;
|
||||
case 0x51000500:
|
||||
return PUS_SERVICE_6_STRING;
|
||||
case 0x51000800:
|
||||
return PUS_SERVICE_8_STRING;
|
||||
case 0x51002300:
|
||||
return PUS_SERVICE_23_STRING;
|
||||
case 0x51020100:
|
||||
return PUS_SERVICE_201_STRING;
|
||||
case 0x52000002:
|
||||
return TM_FUNNEL_STRING;
|
||||
case 0x53000000:
|
||||
return FSFW_OBJECTS_START_STRING;
|
||||
case 0x53000001:
|
||||
return PUS_SERVICE_1_VERIFICATION_STRING;
|
||||
case 0x53000002:
|
||||
return PUS_SERVICE_2_DEVICE_ACCESS_STRING;
|
||||
case 0x53000003:
|
||||
return PUS_SERVICE_3_HOUSEKEEPING_STRING;
|
||||
case 0x53000005:
|
||||
return PUS_SERVICE_5_EVENT_REPORTING_STRING;
|
||||
case 0x53000008:
|
||||
return PUS_SERVICE_8_FUNCTION_MGMT_STRING;
|
||||
case 0x53000009:
|
||||
return PUS_SERVICE_9_TIME_MGMT_STRING;
|
||||
case 0x53000017:
|
||||
return PUS_SERVICE_17_TEST_STRING;
|
||||
case 0x53000020:
|
||||
return PUS_SERVICE_20_PARAMETERS_STRING;
|
||||
case 0x53000200:
|
||||
return PUS_SERVICE_200_MODE_MGMT_STRING;
|
||||
case 0x53010000:
|
||||
return HEALTH_TABLE_STRING;
|
||||
case 0x53010100:
|
||||
return MODE_STORE_STRING;
|
||||
case 0x53030000:
|
||||
return EVENT_MANAGER_STRING;
|
||||
case 0x53040000:
|
||||
return INTERNAL_ERROR_REPORTER_STRING;
|
||||
case 0x534f0100:
|
||||
return TC_STORE_STRING;
|
||||
case 0x534f0200:
|
||||
return TM_STORE_STRING;
|
||||
case 0x534f0300:
|
||||
return IPC_STORE_STRING;
|
||||
case 0x53500010:
|
||||
return TIME_STAMPER_STRING;
|
||||
case 0x53ffffff:
|
||||
return FSFW_OBJECTS_END_STRING;
|
||||
case 0xCAFECAFE:
|
||||
return DUMMY_INTERFACE_STRING;
|
||||
case 0xFFFFFFFF:
|
||||
return NO_OBJECT_STRING;
|
||||
default:
|
||||
return "UNKNOWN_OBJECT";
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,16 +1,8 @@
|
||||
/*
|
||||
* translateObjects.h
|
||||
*
|
||||
* Created on: 28 May 2019
|
||||
* Author: Robin
|
||||
*/
|
||||
|
||||
#ifndef FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_
|
||||
#define FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_
|
||||
|
||||
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
||||
#include <fsfw/objectmanager/SystemObjectIF.h>
|
||||
|
||||
const char* translateObject(object_id_t object);
|
||||
|
||||
|
||||
#endif /* FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_ */
|
@ -1,6 +1,7 @@
|
||||
#ifndef CONFIG_RETURNVALUES_CLASSIDS_H_
|
||||
#define CONFIG_RETURNVALUES_CLASSIDS_H_
|
||||
|
||||
#include "commonClassIds.h"
|
||||
#include <fsfw/returnvalues/FwClassIds.h>
|
||||
|
||||
/**
|
||||
@ -10,9 +11,7 @@
|
||||
*/
|
||||
namespace CLASS_ID {
|
||||
enum {
|
||||
MISSION_CLASS_ID_START = FW_CLASS_ID_COUNT,
|
||||
MGM_LIS3MDL,
|
||||
MGM_RM3100
|
||||
CLASS_ID_START = COMMON_CLASS_ID_END,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -6,9 +6,3 @@ target_sources(${TARGET_NAME} PUBLIC
|
||||
|
||||
add_subdirectory(boardconfig)
|
||||
add_subdirectory(boardtest)
|
||||
add_subdirectory(gpio)
|
||||
|
||||
|
||||
|
||||
|
||||
|
37
bsp_linux_board/Dockerfile
Normal file
37
bsp_linux_board/Dockerfile
Normal file
@ -0,0 +1,37 @@
|
||||
FROM ubuntu:latest
|
||||
# FROM alpine:latest
|
||||
|
||||
RUN apt-get update && apt-get install -y curl wget cmake g++
|
||||
|
||||
# Raspberry Pi rootfs
|
||||
RUN mkdir -p /usr/rootfs; \
|
||||
curl https://eive-cloud.irs.uni-stuttgart.de/index.php/s/kJe3nCnGPRGKFCz/download/rpi-rootfs.tar.gz /usr/rootfs \
|
||||
| tar xvz -C /usr/rootfs
|
||||
# Raspberry Pi toolchain
|
||||
RUN mkdir -p /opt; \
|
||||
cd /opt; \
|
||||
wget https://github.com/Pro/raspi-toolchain/releases/latest/download/raspi-toolchain.tar.gz; \
|
||||
tar xfz raspi-toolchain.tar.gz --strip-components=1 -C .; \
|
||||
rm -rf raspi-toolchain.tar.gz
|
||||
|
||||
# RUN apk add cmake make g++
|
||||
|
||||
# Required for cmake build
|
||||
ENV RASPBERRY_VERSION="4"
|
||||
ENV RASPBIAN_ROOTFS="/usr/rootfs/rootfs"
|
||||
ENV PATH=$PATH:"/opt/cross-pi-gcc/bin"
|
||||
ENV CROSS_COMPILE="arm-linux-gnueabihf"
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY . .
|
||||
|
||||
RUN set -ex; \
|
||||
rm -rf build-rpi; \
|
||||
mkdir build-rpi; \
|
||||
cd build-rpi; \
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DOS_FSFW=linux -DTGT_BSP="arm/raspberrypi" ..;
|
||||
|
||||
ENTRYPOINT ["cmake", "--build", "build-rpi"]
|
||||
CMD ["-j"]
|
||||
# CMD ["bash"]
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "InitMission.h"
|
||||
#include "ObjectFactory.h"
|
||||
|
||||
#include <fsfwconfig/objects/systemObjectList.h>
|
||||
#include <fsfwconfig/OBSWConfig.h>
|
||||
#include <fsfwconfig/pollingsequence/pollingSequenceFactory.h>
|
||||
#include "objects/systemObjectList.h"
|
||||
#include "OBSWConfig.h"
|
||||
#include "pollingsequence/pollingSequenceFactory.h"
|
||||
|
||||
#include <mission/utility/InitMission.h>
|
||||
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
||||
@ -26,9 +26,9 @@ ObjectManagerIF *objectManager = nullptr;
|
||||
void initmission::initMission() {
|
||||
sif::info << "Building global objects.." << std::endl;
|
||||
/* Instantiate global object manager and also create all objects */
|
||||
objectManager = new ObjectManager(ObjectFactory::produce);
|
||||
ObjectManager::instance()->setObjectFactoryFunction(ObjectFactory::produce, nullptr);
|
||||
sif::info << "Initializing all objects.." << std::endl;
|
||||
objectManager->initialize();
|
||||
ObjectManager::instance()->initialize();
|
||||
|
||||
/* This function creates and starts all tasks */
|
||||
initTasks();
|
||||
@ -117,6 +117,10 @@ void initmission::initTasks() {
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("PUS20", objects::PUS_SERVICE_20_PARAMETERS);
|
||||
}
|
||||
result = pusMedPrio->addComponent(objects::PUS_SERVICE_3_HOUSEKEEPING);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("PUS3", objects::PUS_SERVICE_3_HOUSEKEEPING);
|
||||
}
|
||||
|
||||
PeriodicTaskIF* pusLowPrio = factory->createPeriodicTask(
|
||||
"PUS_LOW_PRIO", 30, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.6, missedDeadlineFunc);
|
||||
@ -124,11 +128,16 @@ void initmission::initTasks() {
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("PUS17", objects::PUS_SERVICE_17_TEST);
|
||||
}
|
||||
result = pusLowPrio->addComponent(objects::INTERNAL_ERROR_REPORTER);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("INT_ERR_RPRT",
|
||||
objects::INTERNAL_ERROR_REPORTER);
|
||||
}
|
||||
|
||||
#if RPI_TEST_ACS_BOARD == 1
|
||||
FixedTimeslotTaskIF* acsTask = factory->createFixedTimeslotTask(
|
||||
#if OBSW_ADD_TEST_PST == 1
|
||||
FixedTimeslotTaskIF* pstTestTask = factory->createFixedTimeslotTask(
|
||||
"ACS_PST", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 2.0, missedDeadlineFunc);
|
||||
result = pst::pollingSequenceAcsTest(acsTask);
|
||||
result = pst::pollingSequenceTest(pstTestTask);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
sif::warning << "initmission::initTasks: ACS PST initialization failed!" << std::endl;
|
||||
}
|
||||
@ -154,6 +163,12 @@ void initmission::initTasks() {
|
||||
initmission::printAddObjectError("GPIOD_TEST", objects::LIBGPIOD_TEST);
|
||||
}
|
||||
#endif /* RPI_ADD_GPIO_TEST == 1 */
|
||||
#if RPI_ADD_UART_TEST == 1
|
||||
result = testTask->addComponent(objects::UART_TEST);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("UART_TEST", objects::UART_TEST);
|
||||
}
|
||||
#endif /* RPI_ADD_GPIO_TEST == 1 */
|
||||
|
||||
sif::info << "Starting tasks.." << std::endl;
|
||||
tmTcDistributor->startTask();
|
||||
@ -170,8 +185,8 @@ void initmission::initTasks() {
|
||||
testTask->startTask();
|
||||
#endif /* OBSW_ADD_TEST_CODE == 1 */
|
||||
|
||||
#if RPI_TEST_ACS_BOARD == 1
|
||||
acsTask->startTask();
|
||||
#if OBSW_ADD_TEST_PST == 1
|
||||
pstTestTask->startTask();
|
||||
#endif /* RPI_TEST_ACS_BOARD == 1 */
|
||||
sif::info << "Tasks started.." << std::endl;
|
||||
}
|
149
bsp_linux_board/ObjectFactory.cpp
Normal file
149
bsp_linux_board/ObjectFactory.cpp
Normal file
@ -0,0 +1,149 @@
|
||||
#include "ObjectFactory.h"
|
||||
|
||||
#include "objects/systemObjectList.h"
|
||||
#include "devices/addresses.h"
|
||||
#include "devices/gpioIds.h"
|
||||
#include "OBSWConfig.h"
|
||||
#include "tmtc/apid.h"
|
||||
#include "tmtc/pusIds.h"
|
||||
#include "spiConf.h"
|
||||
|
||||
#include "linux/boardtest/LibgpiodTest.h"
|
||||
#include "linux/boardtest/SpiTestClass.h"
|
||||
#include "linux/boardtest/UartTestClass.h"
|
||||
|
||||
#include "mission/core/GenericFactory.h"
|
||||
#include "mission/utility/TmFunnel.h"
|
||||
#include "mission/devices/MGMHandlerLIS3MDL.h"
|
||||
#include "mission/devices/MGMHandlerRM3100.h"
|
||||
#include "mission/devices/GyroADIS16507Handler.h"
|
||||
|
||||
#include "fsfw/datapoollocal/LocalDataPoolManager.h"
|
||||
#include "fsfw/tmtcservices/CommandingServiceBase.h"
|
||||
#include "fsfw/tmtcservices/PusServiceBase.h"
|
||||
#include "fsfw/tmtcpacket/pus/tm.h"
|
||||
#include "fsfw/tasks/TaskFactory.h"
|
||||
|
||||
/* UDP server includes */
|
||||
#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"
|
||||
|
||||
void Factory::setStaticFrameworkObjectIds() {
|
||||
PusServiceBase::packetSource = objects::PUS_PACKET_DISTRIBUTOR;
|
||||
PusServiceBase::packetDestination = objects::TM_FUNNEL;
|
||||
|
||||
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
|
||||
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
|
||||
|
||||
TmFunnel::downlinkDestination = objects::UDP_BRIDGE;
|
||||
// No storage object for now.
|
||||
TmFunnel::storageDestination = objects::NO_OBJECT;
|
||||
|
||||
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
||||
TmPacketBase::timeStamperId = objects::TIME_STAMPER;
|
||||
}
|
||||
|
||||
|
||||
|
||||
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);
|
||||
|
||||
GpioIF* gpioIF = new LinuxLibgpioIF(objects::GPIO_IF);
|
||||
GpioCookie* gpioCookie = nullptr;
|
||||
static_cast<void>(gpioCookie);
|
||||
#if RPI_ADD_SPI_TEST == 1
|
||||
new SpiTestClass(objects::SPI_TEST, gpioIF);
|
||||
#endif
|
||||
|
||||
#if RPI_ADD_UART_TEST == 1
|
||||
new UartTestClass(objects::UART_TEST);
|
||||
#endif
|
||||
|
||||
#if RPI_LOOPBACK_TEST_GPIO == 1
|
||||
GpioCookie* gpioCookieLoopback = new GpioCookie();
|
||||
/* Loopback pins. Adapt according to setup */
|
||||
gpioId_t gpioIdSender = gpioIds::TEST_ID_0;
|
||||
int bcmPinSender = 26;
|
||||
gpioId_t gpioIdReader = gpioIds::TEST_ID_1;
|
||||
int bcmPinReader = 16;
|
||||
gpio::createRpiGpioConfig(gpioCookieLoopback, gpioIdSender, bcmPinSender, "GPIO_LB_SENDER",
|
||||
gpio::Direction::OUT, 0);
|
||||
gpio::createRpiGpioConfig(gpioCookieLoopback, gpioIdReader, bcmPinReader, "GPIO_LB_READER",
|
||||
gpio::Direction::IN, 0);
|
||||
new LibgpiodTest(objects::LIBGPIOD_TEST, objects::GPIO_IF, gpioCookieLoopback);
|
||||
#endif /* RPI_LOOPBACK_TEST_GPIO == 1 */
|
||||
|
||||
new SpiComIF(objects::SPI_COM_IF, gpioIF);
|
||||
|
||||
std::string spiDev;
|
||||
SpiCookie* spiCookie = nullptr;
|
||||
static_cast<void>(spiCookie);
|
||||
|
||||
#if RPI_TEST_ACS_BOARD == 1
|
||||
if(gpioCookie == nullptr) {
|
||||
gpioCookie = new GpioCookie();
|
||||
}
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::MGM_0_LIS3_CS, gpio::MGM_0_BCM_PIN,
|
||||
"MGM_0_LIS3", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::MGM_1_RM3100_CS, gpio::MGM_1_BCM_PIN,
|
||||
"MGM_1_RM3100", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::MGM_2_LIS3_CS, gpio::MGM_2_BCM_PIN,
|
||||
"MGM_2_LIS3", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::MGM_3_RM3100_CS, gpio::MGM_3_BCM_PIN,
|
||||
"MGM_3_RM3100", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::GYRO_0_ADIS_CS, gpio::GYRO_0_BCM_PIN,
|
||||
"GYRO_0_ADIS", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::GYRO_1_L3G_CS, gpio::GYRO_1_BCM_PIN,
|
||||
"GYRO_1_L3G", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::GYRO_2_L3G_CS, gpio::GYRO_2_BCM_PIN,
|
||||
"GYRO_2_L3G", gpio::Direction::OUT, 1);
|
||||
gpioIF->addGpios(gpioCookie);
|
||||
|
||||
spiDev = "/dev/spidev0.0";
|
||||
spiCookie = new SpiCookie(addresses::MGM_0_LIS3, gpioIds::MGM_0_LIS3_CS, spiDev,
|
||||
MGMLIS3MDL::MAX_BUFFER_SIZE, spi::DEFAULT_LIS3_MODE, spi::DEFAULT_LIS3_SPEED);
|
||||
auto mgmLis3Handler = new MGMHandlerLIS3MDL(objects::MGM_0_LIS3_HANDLER,
|
||||
objects::SPI_COM_IF, spiCookie);
|
||||
mgmLis3Handler->setStartUpImmediately();
|
||||
|
||||
spiCookie = new SpiCookie(addresses::MGM_1_RM3100, gpioIds::MGM_1_RM3100_CS, spiDev,
|
||||
RM3100::MAX_BUFFER_SIZE, spi::DEFAULT_RM3100_MODE, spi::DEFAULT_RM3100_SPEED);
|
||||
auto mgmRm3100Handler = new MGMHandlerRM3100(objects::MGM_1_RM3100_HANDLER,
|
||||
objects::SPI_COM_IF, spiCookie);
|
||||
mgmRm3100Handler->setStartUpImmediately();
|
||||
|
||||
spiCookie = new SpiCookie(addresses::GYRO_1_L3G, gpioIds::GYRO_1_L3G_CS, spiDev,
|
||||
L3GD20H::MAX_BUFFER_SIZE, spi::DEFAULT_L3G_MODE, spi::DEFAULT_L3G_SPEED);
|
||||
auto gyroL3gHandler = new GyroHandlerL3GD20H(objects::GYRO_1_L3G_HANDLER, objects::SPI_COM_IF,
|
||||
spiCookie);
|
||||
gyroL3gHandler->setStartUpImmediately();
|
||||
|
||||
#endif /* RPI_TEST_ACS_BOARD == 1 */
|
||||
|
||||
#if RPI_TEST_ADIS16507 == 1
|
||||
if(gpioCookie == nullptr) {
|
||||
gpioCookie = new GpioCookie();
|
||||
}
|
||||
gpio::createRpiGpioConfig(gpioCookie, gpioIds::GYRO_0_ADIS_CS, gpio::GYRO_0_BCM_PIN,
|
||||
"GYRO_0_ADIS", gpio::Direction::OUT, 1);
|
||||
gpioIF->addGpios(gpioCookie);
|
||||
|
||||
spiDev = "/dev/spidev0.0";
|
||||
spiCookie = new SpiCookie(addresses::GYRO_0_ADIS, gpioIds::GYRO_0_ADIS_CS, spiDev,
|
||||
ADIS16507::MAXIMUM_REPLY_SIZE, spi::DEFAULT_ADIS16507_MODE, spi::DEFAULT_ADIS16507_SPEED,
|
||||
nullptr, nullptr);
|
||||
auto adisGyroHandler = new GyroADIS16507Handler(objects::GYRO_0_ADIS_HANDLER, objects::SPI_COM_IF, spiCookie);
|
||||
adisGyroHandler->setStartUpImmediately();
|
||||
#endif /* RPI_TEST_ADIS16507 == 1 */
|
||||
}
|
@ -1,17 +1,10 @@
|
||||
/*
|
||||
* ObjectFactory.h
|
||||
*
|
||||
* Created on: Sep 22, 2020
|
||||
* Author: steffen
|
||||
*/
|
||||
|
||||
#ifndef BSP_LINUX_OBJECTFACTORY_H_
|
||||
#define BSP_LINUX_OBJECTFACTORY_H_
|
||||
|
||||
|
||||
namespace ObjectFactory {
|
||||
void setStatics();
|
||||
void produce();
|
||||
void produce(void* args);
|
||||
};
|
||||
|
||||
#endif /* BSP_LINUX_OBJECTFACTORY_H_ */
|
@ -5,6 +5,3 @@ target_sources(${TARGET_NAME} PRIVATE
|
||||
target_include_directories(${TARGET_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
|
||||
|
@ -6,9 +6,18 @@
|
||||
#define RPI_ADD_GPIO_TEST 0
|
||||
#define RPI_LOOPBACK_TEST_GPIO 0
|
||||
|
||||
/* Only one of those 2 should be enabled! */
|
||||
#define RPI_TEST_ADIS16507 0
|
||||
|
||||
// Only one of those 2 should be enabled!
|
||||
#define RPI_ADD_SPI_TEST 0
|
||||
#if RPI_ADD_SPI_TEST == 0
|
||||
#define RPI_TEST_ACS_BOARD 0
|
||||
#endif
|
||||
|
||||
#define RPI_ADD_UART_TEST 1
|
||||
#if RPI_ADD_UART_TEST == 1
|
||||
#define RPI_TEST_GPS_DEVICE 0
|
||||
#endif
|
||||
|
||||
/* Adapt these values accordingly */
|
||||
namespace gpio {
|
@ -5,6 +5,14 @@
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#ifdef RASPBERRY_PI
|
||||
static const char* const BOARD_NAME = "Raspberry Pi";
|
||||
#elif defined(BEAGLEBONEBLACK)
|
||||
static const char* const BOARD_NAME = "Beaglebone Black";
|
||||
#else
|
||||
static const char* const BOARD_NAME = "Unknown Board";
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief This is the main program and entry point for the Raspberry Pi.
|
||||
* @return
|
||||
@ -12,7 +20,7 @@
|
||||
int main(void)
|
||||
{
|
||||
std::cout << "-- EIVE OBSW --" << std::endl;
|
||||
std::cout << "-- Compiled for Linux (Raspberry Pi) --" << std::endl;
|
||||
std::cout << "-- Compiled for Linux board " << BOARD_NAME << " --" << std::endl;
|
||||
std::cout << "-- Software version " << SW_NAME << " v" << SW_VERSION << "."
|
||||
<< SW_SUBVERSION << "." << SW_SUBSUBVERSION << " -- " << std::endl;
|
||||
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
|
@ -6,9 +6,6 @@ target_sources(${TARGET_NAME} PUBLIC
|
||||
|
||||
add_subdirectory(boardconfig)
|
||||
add_subdirectory(comIF)
|
||||
add_subdirectory(devices)
|
||||
add_subdirectory(boardtest)
|
||||
add_subdirectory(gpio)
|
||||
|
||||
|
||||
|
||||
add_subdirectory(core)
|
||||
|
35
bsp_q7s/Dockerfile
Normal file
35
bsp_q7s/Dockerfile
Normal file
@ -0,0 +1,35 @@
|
||||
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"]
|
@ -1,6 +1,7 @@
|
||||
#include "InitMission.h"
|
||||
#include "ObjectFactory.h"
|
||||
#include <OBSWConfig.h>
|
||||
#include "OBSWConfig.h"
|
||||
#include "pollingsequence/pollingSequenceFactory.h"
|
||||
|
||||
#include <mission/utility/InitMission.h>
|
||||
|
||||
@ -11,7 +12,7 @@
|
||||
#include <fsfw/tasks/FixedTimeslotTaskIF.h>
|
||||
#include <fsfw/tasks/PeriodicTaskIF.h>
|
||||
#include <fsfw/tasks/TaskFactory.h>
|
||||
#include <fsfwconfig/pollingsequence/pollingSequenceFactory.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
/* This is configured for linux without CR */
|
||||
@ -30,11 +31,12 @@ ServiceInterfaceStream sif::error("ERROR", true, false, true);
|
||||
ObjectManagerIF *objectManager = nullptr;
|
||||
|
||||
void initmission::initMission() {
|
||||
|
||||
sif::info << "Building global objects.." << std::endl;
|
||||
/* Instantiate global object manager and also create all objects */
|
||||
objectManager = new ObjectManager(ObjectFactory::produce);
|
||||
ObjectManager::instance()->setObjectFactoryFunction(ObjectFactory::produce, nullptr);
|
||||
sif::info << "Initializing all objects.." << std::endl;
|
||||
objectManager->initialize();
|
||||
ObjectManager::instance()->initialize();
|
||||
|
||||
/* This function creates and starts all tasks */
|
||||
initTasks();
|
||||
@ -83,6 +85,23 @@ void initmission::initTasks() {
|
||||
initmission::printAddObjectError("UDP_POLLING", objects::UDP_POLLING_TASK);
|
||||
}
|
||||
|
||||
/* UDP bridge */
|
||||
PeriodicTaskIF* errorReporterTestTask = factory->createPeriodicTask(
|
||||
"ERROR_REPORTER", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc);
|
||||
result = udpBridgeTask->addComponent(objects::INTERNAL_ERROR_REPORTER);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("ERROR_REPORTER", objects::INTERNAL_ERROR_REPORTER);
|
||||
}
|
||||
|
||||
#if TEST_CCSDS_BRIDGE == 1
|
||||
PeriodicTaskIF* ptmeTestTask = factory->createPeriodicTask(
|
||||
"PTME_TEST", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
|
||||
result = ptmeTestTask->addComponent(objects::CCSDS_IP_CORE_BRIDGE);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
initmission::printAddObjectError("PTME_TEST", objects::CCSDS_IP_CORE_BRIDGE);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* PUS Services */
|
||||
PeriodicTaskIF* pusVerification = factory->createPeriodicTask(
|
||||
"PUS_VERIF", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.200, missedDeadlineFunc);
|
||||
@ -135,6 +154,8 @@ void initmission::initTasks() {
|
||||
initmission::printAddObjectError("PUS_17", objects::PUS_SERVICE_17_TEST);
|
||||
}
|
||||
|
||||
#if TE0720 == 0
|
||||
|
||||
//TODO: Add handling of missed deadlines
|
||||
/* Polling Sequence Table Default */
|
||||
#if Q7S_ADD_SPI_TEST == 0
|
||||
@ -147,14 +168,22 @@ void initmission::initTasks() {
|
||||
}
|
||||
#endif
|
||||
|
||||
#if TE0720 == 0
|
||||
FixedTimeslotTaskIF* gomSpacePstTask = factory->
|
||||
createFixedTimeslotTask("GS_PST_TASK", 50,
|
||||
PeriodicTaskIF::MINIMUM_STACK_SIZE*8, 3.0, missedDeadlineFunc);
|
||||
PeriodicTaskIF::MINIMUM_STACK_SIZE*8, 1.0, missedDeadlineFunc);
|
||||
result = pst::gomspacePstInit(gomSpacePstTask);
|
||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||
sif::error << "InitMission::initTasks: GomSpace PST initialization failed!" << std::endl;
|
||||
}
|
||||
|
||||
#else
|
||||
FixedTimeslotTaskIF * pollingSequenceTaskTE0720 = factory->createFixedTimeslotTask(
|
||||
"PST_TASK_TE0720", 30, PeriodicTaskIF::MINIMUM_STACK_SIZE * 8, 3.0,
|
||||
missedDeadlineFunc);
|
||||
result = pst::pollingSequenceTE0720(pollingSequenceTaskTE0720);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
sif::error << "InitMission::initTasks: Creating TE0720 PST failed!" << std::endl;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if OBSW_ADD_TEST_CODE == 1
|
||||
@ -184,12 +213,11 @@ void initmission::initTasks() {
|
||||
udpBridgeTask->startTask();
|
||||
udpPollingTask->startTask();
|
||||
|
||||
#if TE0720 == 0
|
||||
#if TE0720 == 0 && Q7S_ADD_SPI_TEST == 0
|
||||
gomSpacePstTask->startTask();
|
||||
#endif
|
||||
|
||||
#if Q7S_ADD_SPI_TEST == 0
|
||||
pollingSequenceTableTaskDefault->startTask();
|
||||
#elif TE0720 == 1 && Q7S_ADD_SPI_TEST == 0
|
||||
pollingSequenceTaskTE0720->startTask();
|
||||
#endif
|
||||
|
||||
pusVerification->startTask();
|
||||
@ -198,8 +226,14 @@ void initmission::initTasks() {
|
||||
pusMedPrio->startTask();
|
||||
pusLowPrio->startTask();
|
||||
|
||||
errorReporterTestTask->startTask();
|
||||
|
||||
#if OBSW_ADD_TEST_CODE == 1
|
||||
testTask->startTask();
|
||||
#endif
|
||||
|
||||
#if TEST_CCSDS_BRIDGE == 1
|
||||
ptmeTestTask->startTask();
|
||||
#endif
|
||||
sif::info << "Tasks started.." << std::endl;
|
||||
}
|
||||
|
@ -1,15 +1,21 @@
|
||||
#include "ObjectFactory.h"
|
||||
#include <OBSWConfig.h>
|
||||
#include <tmtc/apid.h>
|
||||
#include <devices/addresses.h>
|
||||
#include <devices/gpioIds.h>
|
||||
#include <tmtc/pusIds.h>
|
||||
#include <devices/powerSwitcherList.h>
|
||||
#include <devices/spi.h>
|
||||
#include "OBSWConfig.h"
|
||||
#include "tmtc/apid.h"
|
||||
#include "devices/addresses.h"
|
||||
#include "devices/gpioIds.h"
|
||||
#include "tmtc/pusIds.h"
|
||||
#include "devices/powerSwitcherList.h"
|
||||
#include "spiConf.h"
|
||||
|
||||
#include <bsp_q7s/devices/HeaterHandler.h>
|
||||
#include <bsp_q7s/devices/SolarArrayDeploymentHandler.h>
|
||||
#include <bsp_q7s/gpio/gpioCallbacks.h>
|
||||
#include "bsp_q7s/gpio/gpioCallbacks.h"
|
||||
#include "bsp_q7s/core/CoreController.h"
|
||||
|
||||
#include <linux/devices/HeaterHandler.h>
|
||||
#include <linux/devices/SolarArrayDeploymentHandler.h>
|
||||
#include <linux/devices/devicedefinitions/SusDefinitions.h>
|
||||
#include <linux/devices/SusHandler.h>
|
||||
#include <linux/csp/CspCookie.h>
|
||||
#include <linux/csp/CspComIF.h>
|
||||
|
||||
#include <mission/core/GenericFactory.h>
|
||||
#include <mission/devices/PDU1Handler.h>
|
||||
@ -20,22 +26,22 @@
|
||||
#include <mission/devices/Tmp1075Handler.h>
|
||||
#include <mission/devices/Max31865PT1000Handler.h>
|
||||
#include <mission/devices/IMTQHandler.h>
|
||||
#include <mission/devices/devicedefinitions/Max31865Definitions.h>
|
||||
#include <mission/devices/SyrlinksHkHandler.h>
|
||||
#include <mission/devices/MGMHandlerLIS3MDL.h>
|
||||
#include <mission/devices/MGMHandlerRM3100.h>
|
||||
#include <mission/devices/GyroL3GD20Handler.h>
|
||||
|
||||
#include <mission/devices/PlocHandler.h>
|
||||
#include <mission/devices/RadiationSensorHandler.h>
|
||||
#include <mission/devices/devicedefinitions/GomspaceDefinitions.h>
|
||||
#include <mission/devices/devicedefinitions/SyrlinksDefinitions.h>
|
||||
#include <mission/devices/devicedefinitions/PlocDefinitions.h>
|
||||
#include <mission/devices/devicedefinitions/RadSensorDefinitions.h>
|
||||
#include <mission/devices/devicedefinitions/Max31865Definitions.h>
|
||||
#include <mission/utility/TmFunnel.h>
|
||||
#include <linux/obc/CCSDSIPCoreBridge.h>
|
||||
|
||||
#include <linux/csp/CspCookie.h>
|
||||
#include <linux/csp/CspComIF.h>
|
||||
|
||||
#include <linux/uart/UartComIF.h>
|
||||
#include <linux/uart/UartCookie.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>
|
||||
@ -46,7 +52,7 @@
|
||||
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
|
||||
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
||||
#include <fsfw/tmtcservices/PusServiceBase.h>
|
||||
#include <fsfw/tmtcpacket/pus/TmPacketStored.h>
|
||||
#include <fsfw/tmtcpacket/pus/tm.h>
|
||||
|
||||
/* UDP server includes */
|
||||
#include <fsfw/osal/common/UdpTmTcBridge.h>
|
||||
@ -76,9 +82,20 @@ void Factory::setStaticFrameworkObjectIds() {
|
||||
|
||||
|
||||
|
||||
void ObjectFactory::produce(){
|
||||
void ObjectFactory::produce(void* args){
|
||||
Factory::setStaticFrameworkObjectIds();
|
||||
ObjectFactory::produceGenericObjects();
|
||||
LinuxLibgpioIF* gpioComIF = new LinuxLibgpioIF(objects::GPIO_IF);
|
||||
|
||||
/* Communication interfaces */
|
||||
new CspComIF(objects::CSP_COM_IF);
|
||||
new I2cComIF(objects::I2C_COM_IF);
|
||||
new UartComIF(objects::UART_COM_IF);
|
||||
#if Q7S_ADD_SPI_TEST == 0
|
||||
new SpiComIF(objects::SPI_COM_IF, gpioComIF);
|
||||
#endif /* Q7S_ADD_SPI_TEST == 0 */
|
||||
|
||||
new CoreController(objects::CORE_CONTROLLER);
|
||||
|
||||
#if TE0720 == 1
|
||||
I2cCookie* i2cCookieTmp1075tcs1 = new I2cCookie(addresses::TMP1075_TCS_1,
|
||||
@ -91,27 +108,16 @@ void ObjectFactory::produce(){
|
||||
I2cCookie* i2cCookieTmp1075tcs2 = new I2cCookie(addresses::TMP1075_TCS_2,
|
||||
TMP1075::MAX_REPLY_LENGTH, std::string("/dev/i2c-1"));
|
||||
#endif
|
||||
LinuxLibgpioIF* gpioComIF = new LinuxLibgpioIF(objects::GPIO_IF);
|
||||
|
||||
/* Communication interfaces */
|
||||
new CspComIF(objects::CSP_COM_IF);
|
||||
new I2cComIF(objects::I2C_COM_IF);
|
||||
new UartComIF(objects::UART_COM_IF);
|
||||
#if Q7S_ADD_SPI_TEST == 0
|
||||
new SpiComIF(objects::SPI_COM_IF, gpioComIF);
|
||||
#endif
|
||||
|
||||
/* Temperature sensors */
|
||||
Tmp1075Handler* tmp1075Handler_1 = new Tmp1075Handler(
|
||||
objects::TMP1075_HANDLER_1, objects::I2C_COM_IF,
|
||||
i2cCookieTmp1075tcs1);
|
||||
tmp1075Handler_1->setStartUpImmediately();
|
||||
(void) tmp1075Handler_1;
|
||||
Tmp1075Handler* tmp1075Handler_2 = new Tmp1075Handler(
|
||||
objects::TMP1075_HANDLER_2, objects::I2C_COM_IF,
|
||||
i2cCookieTmp1075tcs2);
|
||||
tmp1075Handler_2->setStartUpImmediately();
|
||||
|
||||
GpioCookie* heaterGpiosCookie = new GpioCookie;
|
||||
(void) tmp1075Handler_2;
|
||||
|
||||
#if TE0720 == 0
|
||||
CspCookie* p60DockCspCookie = new CspCookie(P60Dock::MAX_REPLY_LENGTH,
|
||||
@ -147,16 +153,127 @@ void ObjectFactory::produce(){
|
||||
(void) pdu2handler;
|
||||
(void) acuhandler;
|
||||
|
||||
/* Adding gpios for chip select decoding to the gpioComIf */
|
||||
gpioCallbacks::initSpiCsDecoder(gpioComIF);
|
||||
|
||||
GpioCookie* gpioCookieRadSensor = new GpioCookie;
|
||||
GpiodRegular* chipSelectRadSensor = new GpiodRegular(std::string("gpiochip5"), 19,
|
||||
std::string("Chip Select Radiation Sensor"), gpio::OUT, 1);
|
||||
gpioCookieRadSensor->addGpio(gpioIds::CS_RAD_SENSOR, chipSelectRadSensor);
|
||||
gpioComIF->addGpios(gpioCookieRadSensor);
|
||||
|
||||
SpiCookie* spiCookieRadSensor = new SpiCookie(addresses::RAD_SENSOR, gpioIds::CS_RAD_SENSOR,
|
||||
std::string("/dev/spidev2.0"), RAD_SENSOR::READ_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
spi::DEFAULT_MAX_1227_SPEED);
|
||||
new RadiationSensorHandler(objects::RAD_SENSOR, objects::SPI_COM_IF, spiCookieRadSensor);
|
||||
GpioCookie* gpioCookieSus = new GpioCookie();
|
||||
|
||||
GpioCallback* susgpio = new GpioCallback(std::string("Chip select SUS 1"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_1, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 2"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_2, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 3"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_3, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 4"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_4, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 5"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_5, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 6"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_6, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 7"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_7, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 8"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_8, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 9"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_9, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 10"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_10, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 11"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_11, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 12"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_12, susgpio);
|
||||
susgpio = new GpioCallback(std::string("Chip select SUS 13"), gpio::OUT, 1,
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_13, susgpio);
|
||||
|
||||
gpioComIF->addGpios(gpioCookieSus);
|
||||
|
||||
SpiCookie* spiCookieSus1 = new SpiCookie(addresses::SUS_1, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus2 = new SpiCookie(addresses::SUS_2, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus3 = new SpiCookie(addresses::SUS_3, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus4 = new SpiCookie(addresses::SUS_4, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus5 = new SpiCookie(addresses::SUS_5, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus6 = new SpiCookie(addresses::SUS_6, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus7 = new SpiCookie(addresses::SUS_7, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus8 = new SpiCookie(addresses::SUS_8, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus9 = new SpiCookie(addresses::SUS_9, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus10 = new SpiCookie(addresses::SUS_10, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus11 = new SpiCookie(addresses::SUS_11, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus12 = new SpiCookie(addresses::SUS_12, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
SpiCookie* spiCookieSus13 = new SpiCookie(addresses::SUS_13, gpio::NO_GPIO,
|
||||
std::string("/dev/spidev2.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
SUS::MAX1227_SPI_FREQ);
|
||||
|
||||
new SusHandler(objects::SUS_1, objects::SPI_COM_IF, spiCookieSus1, gpioComIF, gpioIds::CS_SUS_1);
|
||||
new SusHandler(objects::SUS_2, objects::SPI_COM_IF, spiCookieSus2, gpioComIF, gpioIds::CS_SUS_2);
|
||||
new SusHandler(objects::SUS_3, objects::SPI_COM_IF, spiCookieSus3, gpioComIF, gpioIds::CS_SUS_3);
|
||||
new SusHandler(objects::SUS_4, objects::SPI_COM_IF, spiCookieSus4, gpioComIF, gpioIds::CS_SUS_4);
|
||||
new SusHandler(objects::SUS_5, objects::SPI_COM_IF, spiCookieSus5, gpioComIF, gpioIds::CS_SUS_5);
|
||||
new SusHandler(objects::SUS_6, objects::SPI_COM_IF, spiCookieSus6, gpioComIF, gpioIds::CS_SUS_6);
|
||||
new SusHandler(objects::SUS_7, objects::SPI_COM_IF, spiCookieSus7, gpioComIF, gpioIds::CS_SUS_7);
|
||||
new SusHandler(objects::SUS_8, objects::SPI_COM_IF, spiCookieSus8, gpioComIF, gpioIds::CS_SUS_8);
|
||||
new SusHandler(objects::SUS_9, objects::SPI_COM_IF, spiCookieSus9, gpioComIF, gpioIds::CS_SUS_9);
|
||||
new SusHandler(objects::SUS_10, objects::SPI_COM_IF, spiCookieSus10, gpioComIF, gpioIds::CS_SUS_10);
|
||||
new SusHandler(objects::SUS_11, objects::SPI_COM_IF, spiCookieSus11, gpioComIF, gpioIds::CS_SUS_11);
|
||||
new SusHandler(objects::SUS_12, objects::SPI_COM_IF, spiCookieSus12, gpioComIF, gpioIds::CS_SUS_12);
|
||||
new SusHandler(objects::SUS_13, objects::SPI_COM_IF, spiCookieSus13, gpioComIF, gpioIds::CS_SUS_13);
|
||||
|
||||
#if OBSW_ADD_ACS_BOARD == 1
|
||||
GpioCookie* gpioCookieAcsBoard = new GpioCookie();
|
||||
GpiodRegular* gpio = nullptr;
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 1, std::string("CS_GYRO_1_ADIS"),
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 1, std::string("CS_GYRO_0_ADIS"),
|
||||
gpio::OUT, gpio::HIGH);
|
||||
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_0_ADIS_CS, gpio);
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 7, std::string("CS_GYRO_2_L3G"),
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 7, std::string("CS_GYRO_1_L3G"),
|
||||
gpio::OUT, gpio::HIGH);
|
||||
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_1_L3G_CS, gpio);
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 3, std::string("CS_GYRO_3_L3G"),
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 3, std::string("CS_GYRO_2_L3G"),
|
||||
gpio::OUT, gpio::HIGH);
|
||||
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_2_L3G_CS, gpio);
|
||||
|
||||
@ -164,7 +281,7 @@ void ObjectFactory::produce(){
|
||||
gpio::OUT, gpio::HIGH);
|
||||
gpioCookieAcsBoard->addGpio(gpioIds::MGM_0_LIS3_CS, gpio);
|
||||
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 17, std::string("CS_MGM_1_RM3100_A"),
|
||||
gpio = new GpiodRegular(std::string("gpiochip5"), 16, std::string("CS_MGM_1_RM3100_A"),
|
||||
gpio::OUT, gpio::HIGH);
|
||||
gpioCookieAcsBoard->addGpio(gpioIds::MGM_1_RM3100_CS, gpio);
|
||||
|
||||
@ -197,13 +314,31 @@ void ObjectFactory::produce(){
|
||||
objects::SPI_COM_IF, spiCookie);
|
||||
mgmRm3100Handler->setStartUpImmediately();
|
||||
|
||||
spiCookie = new SpiCookie(addresses::MGM_3_RM3100, gpioIds::MGM_3_RM3100_CS, spiDev,
|
||||
RM3100::MAX_BUFFER_SIZE, spi::DEFAULT_RM3100_MODE, spi::DEFAULT_RM3100_SPEED);
|
||||
mgmRm3100Handler = new MGMHandlerRM3100(objects::MGM_3_RM3100_HANDLER,
|
||||
objects::SPI_COM_IF, spiCookie);
|
||||
mgmRm3100Handler->setStartUpImmediately();
|
||||
|
||||
//TODO: Adis Gyro (Gyro 0 Side A)
|
||||
|
||||
/* Gyro 1 Side A */
|
||||
spiCookie = new SpiCookie(addresses::GYRO_1_L3G, gpioIds::GYRO_1_L3G_CS, spiDev,
|
||||
L3GD20H::MAX_BUFFER_SIZE, spi::DEFAULT_L3G_MODE, spi::DEFAULT_L3G_SPEED);
|
||||
auto gyroL3gHandler = new GyroHandlerL3GD20H(objects::GYRO_1_L3G_HANDLER, objects::SPI_COM_IF,
|
||||
spiCookie);
|
||||
gyroL3gHandler->setStartUpImmediately();
|
||||
|
||||
/* Gyro 2 Side B */
|
||||
spiCookie = new SpiCookie(addresses::GYRO_2_L3G, gpioIds::GYRO_2_L3G_CS, spiDev,
|
||||
L3GD20H::MAX_BUFFER_SIZE, spi::DEFAULT_L3G_MODE, spi::DEFAULT_L3G_SPEED);
|
||||
gyroL3gHandler = new GyroHandlerL3GD20H(objects::GYRO_2_L3G_HANDLER, objects::SPI_COM_IF,
|
||||
spiCookie);
|
||||
gyroL3gHandler->setStartUpImmediately();
|
||||
#endif
|
||||
|
||||
GpioCookie* heaterGpiosCookie = new GpioCookie;
|
||||
|
||||
/* Pin H2-11 on stack connector */
|
||||
GpiodRegular* gpioConfigHeater0 = new GpiodRegular(std::string("gpiochip7"), 6,
|
||||
std::string("Heater0"), gpio::OUT, 0);
|
||||
@ -256,8 +391,8 @@ void ObjectFactory::produce(){
|
||||
solarArrayDeplCookie, objects::PCDU_HANDLER, pcduSwitches::DEPLOYMENT_MECHANISM,
|
||||
gpioIds::DEPLSA1, gpioIds::DEPLSA2, 1000);
|
||||
|
||||
UartCookie* syrlinksUartCookie = new UartCookie(
|
||||
std::string("/dev/ttyUL0"), 38400, SYRLINKS::MAX_REPLY_SIZE);
|
||||
UartCookie* syrlinksUartCookie = new UartCookie(objects::SYRLINKS_HK_HANDLER,
|
||||
std::string("/dev/ttyUL0"), UartModes::NON_CANONICAL, 38400, SYRLINKS::MAX_REPLY_SIZE);
|
||||
syrlinksUartCookie->setParityEven();
|
||||
|
||||
SyrlinksHkHandler* syrlinksHkHandler = new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER,
|
||||
@ -267,61 +402,60 @@ void ObjectFactory::produce(){
|
||||
#if Q7S_ADD_RTD_DEVICES == 1
|
||||
GpioCookie* rtdGpioCookie = new GpioCookie;
|
||||
|
||||
gpioCallbacks::initTcsBoardDecoder(gpioComIF);
|
||||
GpioCallback* gpioRtdIc3 = new GpioCallback(std::string("Chip select RTD IC3"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC3, gpioRtdIc3);
|
||||
GpioCallback* gpioRtdIc4 = new GpioCallback(std::string("Chip select RTD IC4"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC4, gpioRtdIc4);
|
||||
GpioCallback* gpioRtdIc5 = new GpioCallback(std::string("Chip select RTD IC5"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC5, gpioRtdIc5);
|
||||
GpioCallback* gpioRtdIc6 = new GpioCallback(std::string("Chip select RTD IC6"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC6, gpioRtdIc6);
|
||||
GpioCallback* gpioRtdIc7 = new GpioCallback(std::string("Chip select RTD IC7"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC7, gpioRtdIc7);
|
||||
GpioCallback* gpioRtdIc8 = new GpioCallback(std::string("Chip select RTD IC8"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC8, gpioRtdIc8);
|
||||
GpioCallback* gpioRtdIc9 = new GpioCallback(std::string("Chip select RTD IC9"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC9, gpioRtdIc9);
|
||||
GpioCallback* gpioRtdIc10 = new GpioCallback(std::string("Chip select RTD IC10"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC10, gpioRtdIc10);
|
||||
GpioCallback* gpioRtdIc11 = new GpioCallback(std::string("Chip select RTD IC11"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC11, gpioRtdIc11);
|
||||
GpioCallback* gpioRtdIc12 = new GpioCallback(std::string("Chip select RTD IC12"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC12, gpioRtdIc12);
|
||||
GpioCallback* gpioRtdIc13 = new GpioCallback(std::string("Chip select RTD IC13"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC13, gpioRtdIc13);
|
||||
GpioCallback* gpioRtdIc14 = new GpioCallback(std::string("Chip select RTD IC14"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC14, gpioRtdIc14);
|
||||
GpioCallback* gpioRtdIc15 = new GpioCallback(std::string("Chip select RTD IC15"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC15, gpioRtdIc15);
|
||||
GpioCallback* gpioRtdIc16 = new GpioCallback(std::string("Chip select RTD IC16"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC16, gpioRtdIc16);
|
||||
GpioCallback* gpioRtdIc17 = new GpioCallback(std::string("Chip select RTD IC17"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC17, gpioRtdIc17);
|
||||
GpioCallback* gpioRtdIc18 = new GpioCallback(std::string("Chip select RTD IC18"), gpio::OUT, 1,
|
||||
&gpioCallbacks::tcsBoardDecoderCallback, gpioComIF);
|
||||
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
|
||||
rtdGpioCookie->addGpio(gpioIds::RTD_IC18, gpioRtdIc18);
|
||||
|
||||
gpioComIF->addGpios(rtdGpioCookie);
|
||||
|
||||
SpiCookie* spiRtdIc3 = new SpiCookie(addresses::RTD_IC3, gpioIds::RTD_IC3,
|
||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
||||
spi::SpiModes::MODE_1, 2000000);
|
||||
spi::SpiModes::MODE_3, 2000000);
|
||||
SpiCookie* spiRtdIc4 = new SpiCookie(addresses::RTD_IC4, gpioIds::RTD_IC4,
|
||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
||||
spi::SpiModes::MODE_1, 2000000);
|
||||
@ -357,7 +491,7 @@ void ObjectFactory::produce(){
|
||||
spi::SpiModes::MODE_1, 2000000);
|
||||
SpiCookie* spiRtdIc15 = new SpiCookie(addresses::RTD_IC15, gpioIds::RTD_IC15,
|
||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
||||
spi::SpiModes::MODE_1, 2000000);
|
||||
spi::SpiModes::MODE_1, 3900000);
|
||||
SpiCookie* spiRtdIc16 = new SpiCookie(addresses::RTD_IC16, gpioIds::RTD_IC16,
|
||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
||||
spi::SpiModes::MODE_1, 2000000);
|
||||
@ -384,7 +518,7 @@ void ObjectFactory::produce(){
|
||||
Max31865PT1000Handler* rtdIc16 = new Max31865PT1000Handler(objects::RTD_IC16, objects::SPI_COM_IF, spiRtdIc16, 0);
|
||||
Max31865PT1000Handler* rtdIc17 = new Max31865PT1000Handler(objects::RTD_IC17, objects::SPI_COM_IF, spiRtdIc17, 0);
|
||||
Max31865PT1000Handler* rtdIc18 = new Max31865PT1000Handler(objects::RTD_IC18, objects::SPI_COM_IF, spiRtdIc18, 0);
|
||||
// rtdIc10->setStartUpImmediately();
|
||||
rtdIc17->setStartUpImmediately();
|
||||
// rtdIc4->setStartUpImmediately();
|
||||
|
||||
(void) rtdIc3;
|
||||
@ -401,21 +535,26 @@ void ObjectFactory::produce(){
|
||||
(void) rtdIc14;
|
||||
(void) rtdIc15;
|
||||
(void) rtdIc16;
|
||||
(void) rtdIc17;
|
||||
// (void) rtdIc17;
|
||||
(void) rtdIc18;
|
||||
|
||||
#endif /* Q7S_ADD_RTD_DEVICES == 1 */
|
||||
|
||||
#endif /* TE0720 == 0 */
|
||||
|
||||
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR, objects::TM_STORE,
|
||||
objects::TC_STORE);
|
||||
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
|
||||
|
||||
I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE,
|
||||
std::string("/dev/i2c-0"));
|
||||
IMTQHandler* imtqHandler = new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie);
|
||||
imtqHandler->setStartUpImmediately();
|
||||
new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie);
|
||||
|
||||
UartCookie* plocUartCookie = new UartCookie(objects::PLOC_HANDLER, std::string("/dev/ttyUL3"),
|
||||
UartModes::NON_CANONICAL, 115200, PLOC::MAX_REPLY_SIZE);
|
||||
PlocHandler* plocHandler = new PlocHandler(objects::PLOC_HANDLER, objects::UART_COM_IF,
|
||||
plocUartCookie);
|
||||
// plocHandler->setStartUpImmediately();
|
||||
(void) plocHandler;
|
||||
|
||||
#endif /* TE0720 == 0 */
|
||||
|
||||
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
|
||||
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
|
||||
|
||||
#if TE0720 == 1 && TEST_LIBGPIOD == 1
|
||||
/* Configure MIO0 as input */
|
||||
@ -424,13 +563,68 @@ void ObjectFactory::produce(){
|
||||
GpioCookie* gpioCookie = new GpioCookie;
|
||||
gpioCookie->addGpio(gpioIds::TEST_ID_0, gpioConfigMio0);
|
||||
new LibgpiodTest(objects::LIBGPIOD_TEST, objects::GPIO_IF, gpioCookie);
|
||||
#elif TE0720 == 1
|
||||
#endif
|
||||
|
||||
#if TE0720 == 1 && TEST_SUS_HANDLER == 1
|
||||
GpioCookie* gpioCookieSus = new GpioCookie;
|
||||
GpiodRegular* chipSelectSus = new GpiodRegular(std::string("gpiochip1"), 9,
|
||||
std::string("Chip Select Sus Sensor"), gpio::OUT, 1);
|
||||
gpioCookieSus->addGpio(gpioIds::CS_SUS_1, chipSelectSus);
|
||||
gpioComIF->addGpios(gpioCookieSus);
|
||||
|
||||
SpiCookie* spiCookieSus = new SpiCookie(addresses::SUS_1, std::string("/dev/spidev1.0"),
|
||||
SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE, spi::DEFAULT_MAX_1227_SPEED);
|
||||
|
||||
new SusHandler(objects::SUS_1, objects::SPI_COM_IF, spiCookieSus, gpioComIF,
|
||||
gpioIds::CS_SUS_1);
|
||||
#endif
|
||||
|
||||
#if TE0720 == 1 && TEST_CCSDS_BRIDGE == 1
|
||||
GpioCookie* gpioCookieCcsdsIp = new GpioCookie;
|
||||
GpiodRegular* papbBusyN = new GpiodRegular(std::string("gpiochip0"), 0, std::string("PAPBBusy_N"));
|
||||
gpioCookieCcsdsIp->addGpio(gpioIds::PAPB_BUSY_N, papbBusyN);
|
||||
GpiodRegular* papbEmpty = new GpiodRegular(std::string("gpiochip0"), 1,
|
||||
std::string("Chip Select Sus Sensor"));
|
||||
gpioCookieCcsdsIp->addGpio(gpioIds::PAPB_EMPTY, papbEmpty);
|
||||
gpioComIF->addGpios(gpioCookieCcsdsIp);
|
||||
|
||||
new CCSDSIPCoreBridge(objects::CCSDS_IP_CORE_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR,
|
||||
objects::TM_STORE, objects::TC_STORE, gpioComIF, std::string("/dev/uio0"),
|
||||
gpioIds::PAPB_BUSY_N, gpioIds::PAPB_EMPTY);
|
||||
#endif
|
||||
|
||||
#if TE0720 == 1 && TEST_RADIATION_SENSOR_HANDLER == 1
|
||||
GpioCookie* gpioCookieRadSensor = new GpioCookie;
|
||||
GpiodRegular* chipSelectRadSensor = new GpiodRegular(std::string("gpiochip1"), 0,
|
||||
std::string("Chip select radiation sensor"), gpio::OUT, 1);
|
||||
gpioCookieRadSensor->addGpio(gpioIds::CS_RAD_SENSOR, chipSelectRadSensor);
|
||||
gpioComIF->addGpios(gpioCookieRadSensor);
|
||||
|
||||
SpiCookie* spiCookieRadSensor = new SpiCookie(addresses::RAD_SENSOR, gpioIds::CS_RAD_SENSOR,
|
||||
std::string("/dev/spidev1.0"), SUS::MAX_CMD_SIZE, spi::DEFAULT_MAX_1227_MODE,
|
||||
spi::DEFAULT_MAX_1227_SPEED);
|
||||
|
||||
RadiationSensorHandler* radSensor = new RadiationSensorHandler(objects::RAD_SENSOR,
|
||||
objects::SPI_COM_IF, spiCookieRadSensor);
|
||||
radSensor->setStartUpImmediately();
|
||||
#endif
|
||||
|
||||
#if TE0720 == 1 && TEST_PLOC_HANDLER == 1
|
||||
UartCookie* plocUartCookie = new UartCookie(std::string("/dev/ttyPS1"), 115200,
|
||||
PLOC::MAX_REPLY_SIZE);
|
||||
/* Testing PlocHandler on TE0720-03-1CFA */
|
||||
PlocHandler* plocHandler = new PlocHandler(objects::PLOC_HANDLER, objects::UART_COM_IF,
|
||||
plocUartCookie);
|
||||
plocHandler->setStartUpImmediately();
|
||||
#endif
|
||||
|
||||
#if TE0720 == 1 && TE0720_HEATER_TEST == 1
|
||||
/* Configuration for MIO0 on TE0720-03-1CFA */
|
||||
GpiodRegular gpioConfigForDummyHeater(std::string("gpiochip0"), 0,
|
||||
std::string("Heater0"), gpio::OUT, 0);
|
||||
heaterGpiosCookie->addGpio(gpioIds::HEATER_0, gpioConfigForDummyHeater);
|
||||
new HeaterHandler(objects::HEATER_HANDLER, objects::GPIO_IF, heaterGpiosCookie,
|
||||
objects::PCDU_HANDLER, pcduSwitches::TCS_BOARD_8V_HEATER_IN);
|
||||
GpiodRegular* heaterGpio = new GpiodRegular(std::string("gpiochip0"), 0, std::string("MIO0"), gpio::IN, 0);
|
||||
GpioCookie* gpioCookie = new GpioCookie;
|
||||
gpioCookie->addGpio(gpioIds::HEATER_0, heaterGpio);
|
||||
new HeaterHandler(objects::HEATER_HANDLER, objects::GPIO_IF, gpioCookie, objects::PCDU_HANDLER,
|
||||
pcduSwitches::TCS_BOARD_8V_HEATER_IN);
|
||||
#endif
|
||||
|
||||
#if Q7S_ADD_SPI_TEST == 1
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
namespace ObjectFactory {
|
||||
void setStatics();
|
||||
void produce();
|
||||
void produce(void* args);
|
||||
};
|
||||
|
||||
#endif /* BSP_Q7S_OBJECTFACTORY_H_ */
|
||||
|
@ -5,6 +5,3 @@ target_sources(${TARGET_NAME} PRIVATE
|
||||
target_include_directories(${TARGET_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
3
bsp_q7s/core/CMakeLists.txt
Normal file
3
bsp_q7s/core/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
CoreController.cpp
|
||||
)
|
26
bsp_q7s/core/CoreController.cpp
Normal file
26
bsp_q7s/core/CoreController.cpp
Normal file
@ -0,0 +1,26 @@
|
||||
#include "CoreController.h"
|
||||
|
||||
CoreController::CoreController(object_id_t objectId):
|
||||
ExtendedControllerBase(objectId, objects::NO_OBJECT, 5) {
|
||||
}
|
||||
|
||||
ReturnValue_t CoreController::handleCommandMessage(CommandMessage *message) {
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
void CoreController::performControlOperation() {
|
||||
}
|
||||
|
||||
ReturnValue_t CoreController::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
|
||||
LocalDataPoolManager &poolManager) {
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
LocalPoolDataSetBase* CoreController::getDataSetHandle(sid_t sid) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ReturnValue_t CoreController::checkModeCommand(Mode_t mode, Submode_t submode,
|
||||
uint32_t *msToReachTheMode) {
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
22
bsp_q7s/core/CoreController.h
Normal file
22
bsp_q7s/core/CoreController.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef BSP_Q7S_CORE_CORECONTROLLER_H_
|
||||
#define BSP_Q7S_CORE_CORECONTROLLER_H_
|
||||
|
||||
#include "fsfw/controller/ExtendedControllerBase.h"
|
||||
|
||||
class CoreController: public ExtendedControllerBase {
|
||||
public:
|
||||
CoreController(object_id_t objectId);
|
||||
|
||||
ReturnValue_t handleCommandMessage(CommandMessage *message) override;
|
||||
void performControlOperation() override;
|
||||
private:
|
||||
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);
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* BSP_Q7S_CORE_CORECONTROLLER_H_ */
|
@ -10,31 +10,32 @@ namespace gpioCallbacks {
|
||||
|
||||
GpioIF* gpioComInterface;
|
||||
|
||||
void initTcsBoardDecoder(GpioIF* gpioComIF) {
|
||||
void initSpiCsDecoder(GpioIF* gpioComIF) {
|
||||
|
||||
ReturnValue_t result;
|
||||
|
||||
if (gpioComIF == nullptr) {
|
||||
sif::debug << "initTcsBoardDecoder: Invalid gpioComIF" << std::endl;
|
||||
sif::debug << "initSpiCsDecoder: Invalid gpioComIF" << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
gpioComInterface = gpioComIF;
|
||||
|
||||
GpioCookie* spiMuxGpios = new GpioCookie;
|
||||
/**
|
||||
* Initial values of the spi mux gpios can all be set to an arbitrary value expect for spi mux
|
||||
* bit 1. Setting spi mux bit 1 to high will pull all decoder outputs to high voltage level.
|
||||
*/
|
||||
|
||||
/** Setting mux bit 1 to low will disable IC21 on the interface board */
|
||||
GpiodRegular* spiMuxBit1 = new GpiodRegular(std::string("gpiochip7"), 13,
|
||||
std::string("SPI Mux Bit 1"), gpio::OUT, 1);
|
||||
std::string("SPI Mux Bit 1"), gpio::OUT, 0);
|
||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_1, spiMuxBit1);
|
||||
/** Setting mux bit 2 to low disables IC1 on the TCS board */
|
||||
GpiodRegular* spiMuxBit2 = new GpiodRegular(std::string("gpiochip7"), 14,
|
||||
std::string("SPI Mux Bit 2"), gpio::OUT, 0);
|
||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_2, spiMuxBit2);
|
||||
/** Setting mux bit 3 to low disables IC2 on the TCS board and IC22 on the interface board */
|
||||
GpiodRegular* spiMuxBit3 = new GpiodRegular(std::string("gpiochip7"), 15,
|
||||
std::string("SPI Mux Bit 3"), gpio::OUT, 0);
|
||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_3, spiMuxBit3);
|
||||
/** The following gpios can take arbitrary initial values */
|
||||
GpiodRegular* spiMuxBit4 = new GpiodRegular(std::string("gpiochip7"), 16,
|
||||
std::string("SPI Mux Bit 4"), gpio::OUT, 0);
|
||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_4, spiMuxBit4);
|
||||
@ -47,175 +48,261 @@ void initTcsBoardDecoder(GpioIF* gpioComIF) {
|
||||
|
||||
result = gpioComInterface->addGpios(spiMuxGpios);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
sif::error << "initTcsBoardDecoder: Failed to add mux bit gpios to gpioComIF"
|
||||
sif::error << "initSpiCsDecoder: Failed to add mux bit gpios to gpioComIF"
|
||||
<< std::endl;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void tcsBoardDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value,
|
||||
void spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value,
|
||||
void* args) {
|
||||
|
||||
if (gpioComInterface == nullptr) {
|
||||
sif::debug << "tcsBoardDecoderCallback: No gpioComIF specified. Call initTcsBoardDecoder "
|
||||
sif::debug << "spiCsDecoderCallback: No gpioComIF specified. Call initSpiCsDecoder "
|
||||
<< "to specify gpioComIF" << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Read is not supported by the callback function */
|
||||
/* Reading is not supported by the callback function */
|
||||
if (gpioOp == gpio::GpioOperation::READ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (value == 1) {
|
||||
/* This will pull all 16 decoder outputs to high */
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_1);
|
||||
disableAllDecoder();
|
||||
}
|
||||
else if (value == 0) {
|
||||
switch (gpioId) {
|
||||
case(gpioIds::RTD_IC3): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY7();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC4): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY6();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC5): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY5();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC6): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY4();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC7): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY3();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC8): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY2();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC9): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY1();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC10): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc1();
|
||||
selectY0();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC11): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY7();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC12): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY6();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC13): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY5();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC14): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY4();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC15): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY3();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC16): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY2();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC17): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY1();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::RTD_IC18): {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
enableDecoderTcsIc2();
|
||||
selectY0();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_1): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY0();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_2): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY1();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_3): {
|
||||
enableDecoderInterfaceBoardIc2();
|
||||
selectY0();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_4): {
|
||||
enableDecoderInterfaceBoardIc2();
|
||||
selectY1();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_5): {
|
||||
enableDecoderInterfaceBoardIc2();
|
||||
selectY2();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_6): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY2();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_7): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY3();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_8): {
|
||||
enableDecoderInterfaceBoardIc2();
|
||||
selectY3();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_9): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY4();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_10): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY5();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_11): {
|
||||
enableDecoderInterfaceBoardIc2();
|
||||
selectY4();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_12): {
|
||||
enableDecoderInterfaceBoardIc2();
|
||||
selectY5();
|
||||
break;
|
||||
}
|
||||
case(gpioIds::CS_SUS_13): {
|
||||
enableDecoderInterfaceBoardIc1();
|
||||
selectY6();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
sif::debug << "tcsBoardDecoderCallback: Invalid gpioid " << gpioId << std::endl;
|
||||
sif::debug << "spiCsDecoderCallback: Invalid gpio id " << gpioId << std::endl;
|
||||
}
|
||||
}
|
||||
else {
|
||||
sif::debug << "tcsBoardDecoderCallback: Invalid value. Must be 0 or 1" << std::endl;
|
||||
sif::debug << "spiCsDecoderCallback: Invalid value. Must be 0 or 1" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void enableDecoderTcsIc1() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
}
|
||||
|
||||
void enableDecoderTcsIc2() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
}
|
||||
|
||||
void enableDecoderInterfaceBoardIc1() {
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
}
|
||||
|
||||
void enableDecoderInterfaceBoardIc2() {
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
||||
}
|
||||
|
||||
void selectY0() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY1() {
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY2() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY3() {
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY4() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY5() {
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY6() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void selectY7() {
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
||||
}
|
||||
|
||||
void disableAllDecoder() {
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_2);
|
||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_3);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,15 +9,54 @@ namespace gpioCallbacks {
|
||||
|
||||
/**
|
||||
* @brief This function initializes the GPIOs used to control the SN74LVC138APWR decoders on
|
||||
* the TCS Board.
|
||||
* the TCS Board and the interface board.
|
||||
*/
|
||||
void initTcsBoardDecoder(GpioIF* gpioComIF);
|
||||
void initSpiCsDecoder(GpioIF* gpioComIF);
|
||||
|
||||
/**
|
||||
* @brief This function implements the decoding to multiply gpios by using the two decoder
|
||||
* chips SN74LVC138APWR on the TCS board.
|
||||
* @brief This function implements the decoding to multiply gpios by using the decoder
|
||||
* chips SN74LVC138APWR on the TCS board and the interface board.
|
||||
*/
|
||||
void tcsBoardDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value, void* args);
|
||||
void spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value, void* args);
|
||||
|
||||
/**
|
||||
* @brief This function sets mux bits 1-3 to a state which will only enable the decoder
|
||||
* on the TCS board which is named to IC1 in the schematic.
|
||||
*/
|
||||
void enableDecoderTcsIc1();
|
||||
|
||||
/**
|
||||
* @brief This function sets mux bits 1-3 to a state which will only enable the decoder
|
||||
* on the TCS board which is named to IC2 in the schematic.
|
||||
*/
|
||||
void enableDecoderTcsIc2();
|
||||
|
||||
/**
|
||||
* @brief This function sets mux bits 1-3 to a state which will only enable the decoder
|
||||
* on the inteface board board which is named to IC21 in the schematic.
|
||||
*/
|
||||
void enableDecoderInterfaceBoardIc1();
|
||||
|
||||
/**
|
||||
* @brief This function sets mux bits 1-3 to a state which will only enable the decoder
|
||||
* on the inteface board board which is named to IC22 in the schematic.
|
||||
*/
|
||||
void enableDecoderInterfaceBoardIc2();
|
||||
|
||||
/**
|
||||
* @brief This function disables all decoder.
|
||||
*/
|
||||
void disableAllDecoder();
|
||||
|
||||
/** The following functions enable the appropriate channel of the currently enabled decoder */
|
||||
void selectY0();
|
||||
void selectY1();
|
||||
void selectY2();
|
||||
void selectY3();
|
||||
void selectY4();
|
||||
void selectY5();
|
||||
void selectY6();
|
||||
void selectY7();
|
||||
}
|
||||
|
||||
#endif /* LINUX_GPIO_GPIOCALLBACKS_H_ */
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "InitMission.h"
|
||||
#include <OBSWVersion.h>
|
||||
#include <fsfw/tasks/TaskFactory.h>
|
||||
#include "OBSWConfig.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
@ -13,7 +14,11 @@
|
||||
int main(void)
|
||||
{
|
||||
std::cout << "-- EIVE OBSW --" << std::endl;
|
||||
#if TE0720 == 0
|
||||
std::cout << "-- Compiled for Linux (Xiphos Q7S) --" << std::endl;
|
||||
#else
|
||||
std::cout << "-- Compiled for Linux (TE0720) --" << std::endl;
|
||||
#endif
|
||||
std::cout << "-- Software version " << SW_NAME << " v" << SW_VERSION << "."
|
||||
<< SW_SUBVERSION << "." << SW_SUBSUBVERSION << " -- " << std::endl;
|
||||
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
|
||||
|
4
bsp_q7s/memory/CMakeLists.txt
Normal file
4
bsp_q7s/memory/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
FileSystemManager.cpp
|
||||
SdCardAccess.cpp
|
||||
)
|
7
bsp_q7s/memory/FileSystemManager.cpp
Normal file
7
bsp_q7s/memory/FileSystemManager.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
#include "FileSystemManager.h"
|
||||
|
||||
class FileSystemManager {
|
||||
public:
|
||||
|
||||
private:
|
||||
};
|
8
bsp_q7s/memory/FileSystemManager.h
Normal file
8
bsp_q7s/memory/FileSystemManager.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef BSP_Q7S_MEMORY_FILESYSTEMMANAGER_H_
|
||||
#define BSP_Q7S_MEMORY_FILESYSTEMMANAGER_H_
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* BSP_Q7S_MEMORY_FILESYSTEMMANAGER_H_ */
|
4
bsp_q7s/memory/SdCardAccess.cpp
Normal file
4
bsp_q7s/memory/SdCardAccess.cpp
Normal file
@ -0,0 +1,4 @@
|
||||
#include "SdCardAccess.h"
|
||||
|
||||
SdCardAccess::SdCardAccess() {
|
||||
}
|
11
bsp_q7s/memory/SdCardAccess.h
Normal file
11
bsp_q7s/memory/SdCardAccess.h
Normal file
@ -0,0 +1,11 @@
|
||||
#ifndef BSP_Q7S_MEMORY_SDCARDACCESS_H_
|
||||
#define BSP_Q7S_MEMORY_SDCARDACCESS_H_
|
||||
|
||||
class SdCardAccess {
|
||||
public:
|
||||
SdCardAccess();
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
#endif /* BSP_Q7S_MEMORY_SDCARDACCESS_H_ */
|
@ -1,125 +0,0 @@
|
||||
#include "ObjectFactory.h"
|
||||
|
||||
#include <fsfwconfig/objects/systemObjectList.h>
|
||||
#include <fsfwconfig/devices/addresses.h>
|
||||
#include <fsfwconfig/devices/gpioIds.h>
|
||||
#include <fsfwconfig/OBSWConfig.h>
|
||||
#include <fsfwconfig/tmtc/apid.h>
|
||||
#include <fsfwconfig/tmtc/pusIds.h>
|
||||
#include <fsfwconfig/devices/spi.h>
|
||||
|
||||
#include <linux/boardtest/LibgpiodTest.h>
|
||||
#include <linux/boardtest/SpiTestClass.h>
|
||||
|
||||
#include <mission/devices/GyroL3GD20Handler.h>
|
||||
#include <mission/core/GenericFactory.h>
|
||||
#include <mission/utility/TmFunnel.h>
|
||||
#include <mission/devices/MGMHandlerLIS3MDL.h>
|
||||
#include <mission/devices/MGMHandlerRM3100.h>
|
||||
|
||||
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
|
||||
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
||||
#include <fsfw/tmtcservices/PusServiceBase.h>
|
||||
#include <fsfw/tmtcpacket/pus/TmPacketStored.h>
|
||||
#include <fsfw/tasks/TaskFactory.h>
|
||||
|
||||
/* UDP server includes */
|
||||
#include <fsfw/osal/common/UdpTmTcBridge.h>
|
||||
#include <fsfw/osal/common/UdpTcPollingTask.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;
|
||||
PusServiceBase::packetDestination = objects::TM_FUNNEL;
|
||||
|
||||
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
|
||||
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
|
||||
|
||||
TmFunnel::downlinkDestination = objects::UDP_BRIDGE;
|
||||
// No storage object for now.
|
||||
TmFunnel::storageDestination = objects::NO_OBJECT;
|
||||
|
||||
LocalDataPoolManager::defaultHkDestination = objects::NO_OBJECT;
|
||||
|
||||
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
||||
TmPacketStored::timeStamperId = objects::TIME_STAMPER;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ObjectFactory::produce(){
|
||||
Factory::setStaticFrameworkObjectIds();
|
||||
ObjectFactory::produceGenericObjects();
|
||||
|
||||
new UdpTmTcBridge(objects::UDP_BRIDGE,
|
||||
objects::CCSDS_PACKET_DISTRIBUTOR,
|
||||
objects::TM_STORE, objects::TC_STORE);
|
||||
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
|
||||
|
||||
GpioIF* gpioIF = new LinuxLibgpioIF(objects::GPIO_IF);
|
||||
|
||||
#if RPI_ADD_SPI_TEST == 1
|
||||
new SpiTestClass(objects::SPI_TEST, gpioIF);
|
||||
#endif
|
||||
|
||||
#if RPI_LOOPBACK_TEST_GPIO == 1
|
||||
GpioCookie* gpioCookieLoopback = new GpioCookie();
|
||||
/* Loopback pins. Adapt according to setup */
|
||||
gpioId_t gpioIdSender = gpioIds::TEST_ID_0;
|
||||
int bcmPinSender = 26;
|
||||
gpioId_t gpioIdReader = gpioIds::TEST_ID_1;
|
||||
int bcmPinReader = 16;
|
||||
gpio::createRpiGpioConfig(gpioCookieLoopback, gpioIdSender, bcmPinSender, "GPIO_LB_SENDER",
|
||||
gpio::Direction::OUT, 0);
|
||||
gpio::createRpiGpioConfig(gpioCookieLoopback, gpioIdReader, bcmPinReader, "GPIO_LB_READER",
|
||||
gpio::Direction::IN, 0);
|
||||
new LibgpiodTest(objects::LIBGPIOD_TEST, objects::GPIO_IF, gpioCookieLoopback);
|
||||
#endif /* RPI_LOOPBACK_TEST_GPIO == 1 */
|
||||
|
||||
new SpiComIF(objects::SPI_COM_IF, gpioIF);
|
||||
|
||||
#if RPI_TEST_ACS_BOARD == 1
|
||||
|
||||
GpioCookie* gpioCookieAcsBoard = new GpioCookie();
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::MGM_0_LIS3_CS, gpio::MGM_0_BCM_PIN,
|
||||
"MGM_0_LIS3", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::MGM_1_RM3100_CS, gpio::MGM_1_BCM_PIN,
|
||||
"MGM_1_RM3100", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::MGM_2_LIS3_CS, gpio::MGM_2_BCM_PIN,
|
||||
"MGM_2_LIS3", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::MGM_3_RM3100_CS, gpio::MGM_3_BCM_PIN,
|
||||
"MGM_3_RM3100", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::GYRO_0_ADIS_CS, gpio::GYRO_0_BCM_PIN,
|
||||
"GYRO_0_ADIS", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::GYRO_1_L3G_CS, gpio::GYRO_1_BCM_PIN,
|
||||
"GYRO_1_L3G", gpio::Direction::OUT, 1);
|
||||
gpio::createRpiGpioConfig(gpioCookieAcsBoard, gpioIds::GYRO_2_L3G_CS, gpio::GYRO_2_BCM_PIN,
|
||||
"GYRO_2_L3G", gpio::Direction::OUT, 1);
|
||||
gpioIF->addGpios(gpioCookieAcsBoard);
|
||||
|
||||
std::string spiDev = "/dev/spidev0.0";
|
||||
SpiCookie* spiCookie = new SpiCookie(addresses::MGM_0_LIS3, gpioIds::MGM_0_LIS3_CS, spiDev,
|
||||
MGMLIS3MDL::MAX_BUFFER_SIZE, spi::DEFAULT_LIS3_MODE, spi::DEFAULT_LIS3_SPEED);
|
||||
auto mgmLis3Handler = new MGMHandlerLIS3MDL(objects::MGM_0_LIS3_HANDLER,
|
||||
objects::SPI_COM_IF, spiCookie);
|
||||
mgmLis3Handler->setStartUpImmediately();
|
||||
|
||||
spiCookie = new SpiCookie(addresses::MGM_1_RM3100, gpioIds::MGM_1_RM3100_CS, spiDev,
|
||||
RM3100::MAX_BUFFER_SIZE, spi::DEFAULT_RM3100_MODE, spi::DEFAULT_RM3100_SPEED);
|
||||
auto mgmRm3100Handler = new MGMHandlerRM3100(objects::MGM_1_RM3100_HANDLER,
|
||||
objects::SPI_COM_IF, spiCookie);
|
||||
mgmRm3100Handler->setStartUpImmediately();
|
||||
|
||||
spiCookie = new SpiCookie(addresses::GYRO_1_L3G, gpioIds::GYRO_1_L3G_CS, spiDev,
|
||||
L3GD20H::MAX_BUFFER_SIZE, spi::DEFAULT_L3G_MODE, spi::DEFAULT_L3G_SPEED);
|
||||
auto gyroL3gHandler = new GyroHandlerL3GD20H(objects::GYRO_1_L3G_HANDLER, objects::SPI_COM_IF,
|
||||
spiCookie);
|
||||
gyroL3gHandler->setStartUpImmediately();
|
||||
|
||||
#endif /* RPI_TEST_ACS_BOARD == 1 */
|
||||
}
|
98
cmake/BBBCrossCompileConfig.cmake
Normal file
98
cmake/BBBCrossCompileConfig.cmake
Normal file
@ -0,0 +1,98 @@
|
||||
# BBB_ROOTFS should point to the local directory which contains all the
|
||||
# libraries and includes from the target raspi.
|
||||
# The following command can be used to do this, replace <ip-address> and the
|
||||
# local <rootfs-path> accordingly:
|
||||
# rsync -vR --progress -rl --delete-after --safe-links pi@<ip-address>:/{lib,usr,opt/vc/lib} <rootfs-path>
|
||||
# RASPBIAN_ROOTFS needs to be passed to the CMake command or defined in the
|
||||
# application CMakeLists.txt before loading the toolchain file.
|
||||
|
||||
# CROSS_COMPILE also needs to be set accordingly or passed to the CMake command
|
||||
|
||||
if(NOT DEFINED ENV{BBB_ROOTFS})
|
||||
message(FATAL_ERROR
|
||||
"Define the BBB_ROOTFS variable to point to the Beagle Bone Black rootfs."
|
||||
)
|
||||
else()
|
||||
set(SYSROOT_PATH "$ENV{BBB_ROOTFS}" CACHE FILEPATH "BBB root filesystem path")
|
||||
message(STATUS "Beagle Bone Black sysroot: ${SYSROOT_PATH}")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ENV{CROSS_COMPILE})
|
||||
set(CROSS_COMPILE "arm-linux-gnueabihf")
|
||||
message(STATUS
|
||||
"No CROSS_COMPILE environmental variable set, using default ARM linux "
|
||||
"cross compiler name ${CROSS_COMPILE}"
|
||||
)
|
||||
else()
|
||||
set(CROSS_COMPILE "$ENV{CROSS_COMPILE}")
|
||||
message(STATUS
|
||||
"Using environmental variable CROSS_COMPILE as cross-compiler: "
|
||||
"$ENV{CROSS_COMPILE}"
|
||||
)
|
||||
endif()
|
||||
|
||||
message(STATUS "Using sysroot path: ${SYSROOT_PATH}")
|
||||
|
||||
set(CROSS_COMPILE_CC "${CROSS_COMPILE}-gcc")
|
||||
set(CROSS_COMPILE_CXX "${CROSS_COMPILE}-g++")
|
||||
set(CROSS_COMPILE_LD "${CROSS_COMPILE}-ld")
|
||||
set(CROSS_COMPILE_AR "${CROSS_COMPILE}-ar")
|
||||
set(CROSS_COMPILE_RANLIB "${CROSS_COMPILE}-ranlib")
|
||||
set(CROSS_COMPILE_STRIP "${CROSS_COMPILE}-strip")
|
||||
set(CROSS_COMPILE_NM "${CROSS_COMPILE}-nm")
|
||||
set(CROSS_COMPILE_OBJCOPY "${CROSS_COMPILE}-objcopy")
|
||||
set(CROSS_COMPILE_SIZE "${CROSS_COMPILE}-size")
|
||||
|
||||
# At the very least, cross compile gcc and g++ have to be set!
|
||||
find_program (CROSS_COMPILE_CC_FOUND ${CROSS_COMPILE_CC} REQUIRED)
|
||||
find_program (CROSS_COMPILE_CXX_FOUND ${CROSS_COMPILE_CXX} REQUIRED)
|
||||
|
||||
set(CMAKE_CROSSCOMPILING TRUE)
|
||||
set(CMAKE_SYSROOT "${SYSROOT_PATH}")
|
||||
|
||||
# Define name of the target system
|
||||
set(CMAKE_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "arm")
|
||||
|
||||
# Define the compiler
|
||||
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.
|
||||
# LD_LIBRARY_PATH is not evaluated by arm-*-ld
|
||||
set(LIB_DIRS
|
||||
"${SYSROOT_PATH}/lib/${CROSS_COMPILE}"
|
||||
"${SYSROOT_PATH}/usr/local/lib"
|
||||
"${SYSROOT_PATH}/usr/lib/${CROSS_COMPILE}"
|
||||
"${SYSROOT_PATH}/usr/lib"
|
||||
)
|
||||
# You can additionally check the linker paths if you add the
|
||||
# flags ' -Xlinker --verbose'
|
||||
set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/include")
|
||||
foreach(LIB ${LIB_DIRS})
|
||||
set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}")
|
||||
endforeach()
|
||||
|
||||
set(CMAKE_PREFIX_PATH
|
||||
"${CMAKE_PREFIX_PATH}"
|
||||
"${SYSROOT_PATH}/usr/lib/${CROSS_COMPILE}"
|
||||
)
|
||||
|
||||
set(CMAKE_C_FLAGS
|
||||
"-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard ${COMMON_FLAGS}"
|
||||
CACHE STRING "Flags for Beagle Bone Black"
|
||||
)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}"
|
||||
CACHE STRING "Flags for Beagle Bone Black"
|
||||
)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH
|
||||
"${CMAKE_INSTALL_PREFIX};${CMAKE_PREFIX_PATH};${CMAKE_SYSROOT}"
|
||||
)
|
||||
|
||||
# search for programs in the build host directories
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# for libraries and headers in the target directories
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
@ -53,8 +53,8 @@ endif()
|
||||
|
||||
|
||||
if(TGT_BSP)
|
||||
if (${TGT_BSP} MATCHES "arm/raspberrypi")
|
||||
set(BSP_PATH "bsp_rpi")
|
||||
if (${TGT_BSP} MATCHES "arm/raspberrypi" OR ${TGT_BSP} MATCHES "arm/beagleboneblack")
|
||||
set(BSP_PATH "bsp_linux_board")
|
||||
elseif(${TGT_BSP} MATCHES "arm/q7s")
|
||||
set(BSP_PATH "bsp_q7s")
|
||||
else()
|
||||
|
@ -11,7 +11,6 @@ endif()
|
||||
|
||||
# Disable compiler checks for cross-compiling.
|
||||
if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
||||
|
||||
if(${TGT_BSP} MATCHES "arm/q7s")
|
||||
set(CMAKE_TOOLCHAIN_FILE
|
||||
"${CMAKE_SCRIPT_PATH}/Q7SCrossCompileConfig.cmake"
|
||||
@ -38,7 +37,7 @@ if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
||||
else()
|
||||
message(STATUS "Setting RASPBERRY_VERSION to ${RASPBERRY_VERSION}")
|
||||
set(RASPBERRY_VERSION ${RASPBERRY_VERSION} CACHE STRING "Raspberry Pi version")
|
||||
set(ENV{RASPBERRY_VERSION} ${RASPBERRY_VERSION})
|
||||
set(ENV{RASPBERRY_VERSION} ${RASPBERRY_VERSION})
|
||||
endif()
|
||||
else()
|
||||
message(STATUS
|
||||
@ -51,7 +50,14 @@ if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
||||
"${CMAKE_SCRIPT_PATH}/RPiCrossCompileConfig.cmake"
|
||||
PARENT_SCOPE
|
||||
)
|
||||
else()
|
||||
elseif(${TGT_BSP} MATCHES "arm/beagleboneblack")
|
||||
if(LINUX_CROSS_COMPILE)
|
||||
set(CMAKE_TOOLCHAIN_FILE
|
||||
"${CMAKE_SCRIPT_PATH}/BBBCrossCompileConfig.cmake"
|
||||
PARENT_SCOPE
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "Target BSP (TGT_BSP) ${TGT_BSP} unknown!")
|
||||
endif()
|
||||
endif()
|
||||
|
@ -6,7 +6,7 @@ if(NOT DEFINED ENV{Q7S_SYSROOT})
|
||||
# "point to the raspbian rootfs."
|
||||
# )
|
||||
else()
|
||||
set(SYSROOT_PATH "$ENV{Q7S_SYSROOT}")
|
||||
set(SYSROOT_PATH "$ENV{Q7S_SYSROOT}" CACHE PATH "Q7S root filesystem path")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ENV{CROSS_COMPILE})
|
||||
|
@ -25,7 +25,7 @@ if(NOT DEFINED ENV{RASPBIAN_ROOTFS})
|
||||
"point to the raspbian rootfs."
|
||||
)
|
||||
else()
|
||||
set(SYSROOT_PATH "$ENV{RASPBIAN_ROOTFS}")
|
||||
set(SYSROOT_PATH "$ENV{RASPBIAN_ROOTFS}" CACHE FILEPATH "RPi root filesystem path")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ENV{CROSS_COMPILE})
|
||||
|
@ -1,6 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/scripts.iml" filepath="$PROJECT_DIR$/.idea/scripts.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="b7804b00-6384-4363-ae17-406610449420" name="Default Changelist" comment="" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." />
|
||||
</component>
|
||||
<component name="ProjectId" id="1mFLMh77EFiQ6e8GGJM4DSy44LC" />
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||
<property name="node.js.detected.package.eslint" value="true" />
|
||||
<property name="node.js.detected.package.tslint" value="true" />
|
||||
<property name="node.js.path.for.package.eslint" value="project" />
|
||||
<property name="node.js.path.for.package.tslint" value="project" />
|
||||
<property name="node.js.selected.package.eslint" value="(autodetect)" />
|
||||
<property name="node.js.selected.package.tslint" value="(autodetect)" />
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration name="cmake_build_config" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="scripts" />
|
||||
<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$/cmake_build_config.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<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>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Python.cmake_build_config" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="b7804b00-6384-4363-ae17-406610449420" name="Default Changelist" comment="" />
|
||||
<created>1609084345199</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1609084345199</updated>
|
||||
<workItem from="1609084346343" duration="6791000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||
<SUITE FILE_PATH="coverage/scripts$cmake_build_config.coverage" NAME="cmake_build_config Coverage Results" MODIFIED="1609089450693" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||
</component>
|
||||
</project>
|
30
cmake/scripts/BeagleBoneBlack/create_cmake_debug_cfg.sh
Normal file
30
cmake/scripts/BeagleBoneBlack/create_cmake_debug_cfg.sh
Normal file
@ -0,0 +1,30 @@
|
||||
#!/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}"
|
@ -0,0 +1,3 @@
|
||||
export PATH=$PATH:"$HOME/beaglebone/<cross_compiler_path>/bin"
|
||||
export CROSS_COMPILE="arm-linux-gnueabihf"
|
||||
export BBB_ROOTFS="${HOME}/raspberrypi/rootfs"
|
@ -0,0 +1,30 @@
|
||||
#!/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}"
|
@ -0,0 +1,30 @@
|
||||
#!/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}"
|
@ -0,0 +1,30 @@
|
||||
#!/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}"
|
2
cmake/scripts/Host/create_cmake_debug_cfg.sh
Normal file → Executable file
2
cmake/scripts/Host/create_cmake_debug_cfg.sh
Normal file → Executable file
@ -15,7 +15,7 @@ if [ "${counter}" -ge 5 ];then
|
||||
fi
|
||||
|
||||
build_generator=""
|
||||
build_dir="Debug-Host"
|
||||
build_dir="build-Debug-Host"
|
||||
os_fsfw="host"
|
||||
if [ "${OS}" = "Windows_NT" ]; then
|
||||
build_generator="MinGW Makefiles"
|
||||
|
@ -16,7 +16,7 @@ fi
|
||||
|
||||
build_generator="Unix Makefiles"
|
||||
os_fsfw="linux"
|
||||
builddir="Debug-Linux"
|
||||
builddir="build-Debug-Host"
|
||||
|
||||
echo "Running command (without the leading +):"
|
||||
set -x # Print command
|
||||
|
@ -16,7 +16,7 @@ fi
|
||||
|
||||
build_generator="Unix Makefiles"
|
||||
os_fsfw="linux"
|
||||
builddir="Release-Linux"
|
||||
builddir="build-Release-Host"
|
||||
|
||||
echo "Running command (without the leading +):"
|
||||
set -x # Print command
|
||||
|
@ -1,25 +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="Unix Makefiles"
|
||||
os_fsfw="linux"
|
||||
builddir="RelWithDeb-Linux"
|
||||
|
||||
echo "Running command (without the leading +):"
|
||||
set -x # Print command
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -l "${builddir}"
|
||||
# Use this if commands are added which should not be printed
|
||||
# set +x
|
@ -1,20 +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="Unix Makefiles"
|
||||
os_fsfw="linux"
|
||||
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "size"
|
@ -16,6 +16,7 @@ fi
|
||||
|
||||
os_fsfw="linux"
|
||||
tgt_bsp="arm/q7s"
|
||||
build_dir="build-Debug-Q7S"
|
||||
build_generator=""
|
||||
if [ "${OS}" = "Windows_NT" ]; then
|
||||
build_generator="MinGW Makefiles"
|
||||
@ -24,4 +25,5 @@ else
|
||||
build_generator="Unix Makefiles"
|
||||
fi
|
||||
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}"
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "debug" -t "${tgt_bsp}" \
|
||||
-l"${build_dir}"
|
||||
|
@ -16,6 +16,7 @@ fi
|
||||
|
||||
os_fsfw="linux"
|
||||
tgt_bsp="arm/q7s"
|
||||
build_dir="build-Release-Q7S"
|
||||
build_generator=""
|
||||
if [ "${OS}" = "Windows_NT" ]; then
|
||||
build_generator="MinGW Makefiles"
|
||||
@ -24,4 +25,5 @@ else
|
||||
build_generator="Unix Makefiles"
|
||||
fi
|
||||
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}"
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "release" -t "${tgt_bsp}" \
|
||||
-l"${build_dir}"
|
||||
|
@ -16,6 +16,7 @@ fi
|
||||
|
||||
os_fsfw="linux"
|
||||
tgt_bsp="arm/q7s"
|
||||
build_dir="build-Release-Q7S"
|
||||
build_generator=""
|
||||
if [ "${OS}" = "Windows_NT" ]; then
|
||||
build_generator="MinGW Makefiles"
|
||||
@ -24,4 +25,5 @@ else
|
||||
build_generator="Unix Makefiles"
|
||||
fi
|
||||
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "reldeb" -t "${tgt_bsp}"
|
||||
python3 cmake_build_config.py -o "${os_fsfw}" -g "${build_generator}" -b "reldeb" -t "${tgt_bsp}" \
|
||||
-l"${build_dir}"
|
||||
|
@ -17,7 +17,7 @@ fi
|
||||
os_fsfw="linux"
|
||||
tgt_bsp="arm/raspberrypi"
|
||||
build_generator=""
|
||||
build_dir="Debug-RPi"
|
||||
build_dir="build-Debug-RPi"
|
||||
if [ "${OS}" = "Windows_NT" ]; then
|
||||
build_generator="MinGW Makefiles"
|
||||
# Could be other OS but this works for now.
|
||||
|
@ -17,7 +17,7 @@ fi
|
||||
os_fsfw="linux"
|
||||
tgt_bsp="arm/raspberrypi"
|
||||
build_generator=""
|
||||
build_dir="Release-RPi"
|
||||
build_dir="build-Release-RPi"
|
||||
if [ "${OS}" = "Windows_NT" ]; then
|
||||
build_generator="MinGW Makefiles"
|
||||
# Could be other OS but this works for now.
|
||||
|
@ -18,18 +18,26 @@ def main():
|
||||
print("-- Python CMake build configurator utility --")
|
||||
|
||||
print("Parsing command line arguments..")
|
||||
parser = argparse.ArgumentParser(description="Processing arguments for CMake build configuration.")
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Processing arguments for CMake build configuration."
|
||||
)
|
||||
parser.add_argument("-o", "--osal", type=str, choices=["freertos", "linux", "rtems", "host"],
|
||||
help="FSFW OSAL. Valid arguments: host, linux, rtems, freertos")
|
||||
parser.add_argument("-b", "--buildtype", type=str, choices=["debug", "release", "size", "reldeb"],
|
||||
help="CMake build type. Valid arguments: debug, release, size, reldeb (Release with Debug "
|
||||
"Information)", default="debug")
|
||||
parser.add_argument(
|
||||
"-b", "--buildtype", type=str, choices=["debug", "release", "size", "reldeb"],
|
||||
help="CMake build type. Valid arguments: debug, release, size, reldeb (Release with Debug "
|
||||
"Information)", default="debug"
|
||||
)
|
||||
parser.add_argument("-l", "--builddir", type=str, help="Specify build directory.")
|
||||
parser.add_argument("-g", "--generator", type=str, help="CMake Generator")
|
||||
parser.add_argument("-d", "--defines",
|
||||
help="Additional custom defines passed to CMake (supply without -D prefix!)",
|
||||
nargs="*", type=str)
|
||||
parser.add_argument("-t", "--target-bsp", type=str, help="Target BSP, combination of architecture and machine")
|
||||
parser.add_argument(
|
||||
"-d", "--defines",
|
||||
help="Additional custom defines passed to CMake (supply without -D prefix!)",
|
||||
nargs="*", type=str
|
||||
)
|
||||
parser.add_argument(
|
||||
"-t", "--target-bsp", type=str, help="Target BSP, combination of architecture and machine"
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@ -64,6 +72,12 @@ def main():
|
||||
else:
|
||||
cmake_target_cfg_cmd = ""
|
||||
|
||||
define_string = ""
|
||||
if args.defines is not None:
|
||||
define_list = args.defines[0].split()
|
||||
for define in define_list:
|
||||
define_string += f"-D{define} "
|
||||
|
||||
build_folder = cmake_build_type
|
||||
if args.builddir is not None:
|
||||
build_folder = args.builddir
|
||||
@ -85,7 +99,8 @@ def main():
|
||||
os.chdir(build_folder)
|
||||
|
||||
cmake_command = f"cmake {generator_cmake_arg} -DOS_FSFW=\"{osal}\" " \
|
||||
f"-DCMAKE_BUILD_TYPE=\"{cmake_build_type}\" {cmake_target_cfg_cmd} {source_location}"
|
||||
f"-DCMAKE_BUILD_TYPE=\"{cmake_build_type}\" {cmake_target_cfg_cmd} " \
|
||||
f"{define_string} {source_location}"
|
||||
# Remove redundant spaces
|
||||
cmake_command = ' '.join(cmake_command.split())
|
||||
print("Running CMake command: ")
|
||||
|
@ -4,7 +4,7 @@
|
||||
const char* const SW_NAME = "eive";
|
||||
|
||||
#define SW_VERSION 1
|
||||
#define SW_SUBVERSION 1
|
||||
#define SW_SUBVERSION 2
|
||||
#define SW_SUBSUBVERSION 0
|
||||
|
||||
#endif /* COMMON_CONFIG_OBSWVERSION_H_ */
|
||||
|
24
common/config/commonClassIds.h
Normal file
24
common/config/commonClassIds.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef COMMON_CONFIG_COMMONCLASSIDS_H_
|
||||
#define COMMON_CONFIG_COMMONCLASSIDS_H_
|
||||
|
||||
#include <fsfw/returnvalues/FwClassIds.h>
|
||||
#include <cstdint>
|
||||
|
||||
namespace CLASS_ID {
|
||||
enum commonClassIds: uint8_t {
|
||||
COMMON_CLASS_ID_START = FW_CLASS_ID_COUNT,
|
||||
MGM_LIS3MDL, //MGMLIS3
|
||||
MGM_RM3100, //MGMRM3100
|
||||
PCDU_HANDLER, //PCDU
|
||||
HEATER_HANDLER, //HEATER
|
||||
SYRLINKS_HANDLER, //SYRLINKS
|
||||
IMTQ_HANDLER, //IMTQ
|
||||
PLOC_HANDLER, //PLOC
|
||||
SUS_HANDLER, //SUSS
|
||||
CCSDS_IP_CORE_BRIDGE, // IP Core interface
|
||||
COMMON_CLASS_ID_END // [EXPORT] : [END]
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* COMMON_CONFIG_COMMONCLASSIDS_H_ */
|
55
common/config/commonObjects.h
Normal file
55
common/config/commonObjects.h
Normal file
@ -0,0 +1,55 @@
|
||||
#ifndef COMMON_CONFIG_COMMONOBJECTS_H_
|
||||
#define COMMON_CONFIG_COMMONOBJECTS_H_
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace objects {
|
||||
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,
|
||||
|
||||
/* 0x43 ('C') for Controllers */
|
||||
THERMAL_CONTROLLER = 0x43001000,
|
||||
ATTITUDE_CONTROLLER = 0x43002000,
|
||||
ACS_CONTROLLER = 0x43003000,
|
||||
CORE_CONTROLLER = 0x43004000,
|
||||
|
||||
/* 0x44 ('D') for device handlers */
|
||||
P60DOCK_HANDLER = 0x44000001,
|
||||
PDU1_HANDLER = 0x44000002,
|
||||
PDU2_HANDLER = 0x44000003,
|
||||
ACU_HANDLER = 0x44000004,
|
||||
TMP1075_HANDLER_1 = 0x44000005,
|
||||
TMP1075_HANDLER_2 = 0x44000006,
|
||||
MGM_0_LIS3_HANDLER = 0x44000007,
|
||||
MGM_1_RM3100_HANDLER = 0x44000008,
|
||||
MGM_2_LIS3_HANDLER = 0x44000009,
|
||||
MGM_3_RM3100_HANDLER = 0x44000010,
|
||||
GYRO_0_ADIS_HANDLER = 0x44000011,
|
||||
GYRO_1_L3G_HANDLER = 0x44000012,
|
||||
GYRO_2_L3G_HANDLER = 0x44000013,
|
||||
|
||||
IMTQ_HANDLER = 0x44000014,
|
||||
PLOC_HANDLER = 0x44000015,
|
||||
|
||||
SUS_1 = 0x44000016,
|
||||
SUS_2 = 0x44000017,
|
||||
SUS_3 = 0x44000018,
|
||||
SUS_4 = 0x44000019,
|
||||
SUS_5 = 0x4400001A,
|
||||
SUS_6 = 0x4400001B,
|
||||
SUS_7 = 0x4400001C,
|
||||
SUS_8 = 0x4400001D,
|
||||
SUS_9 = 0x4400001E,
|
||||
SUS_10 = 0x4400001F,
|
||||
SUS_11 = 0x44000021,
|
||||
SUS_12 = 0x44000022,
|
||||
SUS_13 = 0x44000023,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif /* COMMON_CONFIG_COMMONOBJECTS_H_ */
|
21
common/config/commonSubsystemIds.h
Normal file
21
common/config/commonSubsystemIds.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef COMMON_CONFIG_COMMONSUBSYSTEMIDS_H_
|
||||
#define COMMON_CONFIG_COMMONSUBSYSTEMIDS_H_
|
||||
|
||||
#include <fsfw/events/fwSubsystemIdRanges.h>
|
||||
|
||||
namespace SUBSYSTEM_ID {
|
||||
enum: uint8_t {
|
||||
COMMON_SUBSYSTEM_ID_START = FW_SUBSYSTEM_ID_RANGE,
|
||||
MGM_LIS3MDL = 106,
|
||||
MGM_RM3100 = 107,
|
||||
PCDU_HANDLER = 108,
|
||||
HEATER_HANDLER = 109,
|
||||
SA_DEPL_HANDLER = 110,
|
||||
PLOC_HANDLER = 111,
|
||||
IMTQ_HANDLER = 112,
|
||||
COMMON_SUBSYSTEM_ID_END
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif /* COMMON_CONFIG_COMMONSUBSYSTEMIDS_H_ */
|
@ -1,5 +1,5 @@
|
||||
#ifndef FSFWCONFIG_DEVICES_SPI_H_
|
||||
#define FSFWCONFIG_DEVICES_SPI_H_
|
||||
#ifndef COMMON_CONFIG_SPICONF_H_
|
||||
#define COMMON_CONFIG_SPICONF_H_
|
||||
|
||||
#include <cstdint>
|
||||
#include <fsfw_hal/linux/spi/spiDefinitions.h>
|
||||
@ -20,8 +20,12 @@ static constexpr spi::SpiModes DEFAULT_RM3100_MODE = spi::SpiModes::MODE_3;
|
||||
static constexpr uint32_t DEFAULT_L3G_SPEED = 3'900'000;
|
||||
static constexpr spi::SpiModes DEFAULT_L3G_MODE = spi::SpiModes::MODE_3;
|
||||
|
||||
static constexpr uint32_t DEFAULT_MAX_1227_SPEED = 3'900'000;
|
||||
static constexpr spi::SpiModes DEFAULT_MAX_1227_MODE = spi::SpiModes::MODE_3;
|
||||
|
||||
static constexpr uint32_t DEFAULT_ADIS16507_SPEED = 976'000;
|
||||
static constexpr spi::SpiModes DEFAULT_ADIS16507_MODE = spi::SpiModes::MODE_3;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif /* FSFWCONFIG_DEVICES_SPI_H_ */
|
||||
#endif /* COMMON_CONFIG_SPICONF_H_ */
|
18
docker-compose.yml
Normal file
18
docker-compose.yml
Normal file
@ -0,0 +1,18 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
build-host:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: bsp_hosted/Dockerfile
|
||||
|
||||
build-obsw:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: bsp_q7s/Dockerfile
|
||||
|
||||
build-rpi:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: bsp_linux_board/Dockerfile
|
||||
|
2
fsfw
2
fsfw
@ -1 +1 @@
|
||||
Subproject commit 5273ffa721dd83634ebbcc37c4646752f0bea20f
|
||||
Subproject commit cae69d540097acba46bffa47fd7afc6a8a19bd15
|
2
fsfw_hal
2
fsfw_hal
@ -1 +1 @@
|
||||
Subproject commit 14fe32572d62db9d19707dc1f9bb6fecb1993b73
|
||||
Subproject commit fce40ebf9a4a45bafedaee2fc87e5aa10e49fdcc
|
@ -1,11 +0,0 @@
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
ipc/MissionMessageTypes.cpp
|
||||
pollingsequence/pollingSequenceFactory.cpp
|
||||
)
|
||||
|
||||
target_include_directories(${TARGET_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
|
||||
|
@ -1,53 +0,0 @@
|
||||
/**
|
||||
* @brief This file can be used to add preprocessor define for conditional
|
||||
* code inclusion exclusion or various other project constants and
|
||||
* properties in one place.
|
||||
*/
|
||||
#ifndef FSFWCONFIG_OBSWCONFIG_H_
|
||||
#define FSFWCONFIG_OBSWCONFIG_H_
|
||||
|
||||
#ifdef RASPBERRY_PI
|
||||
#include <rpi_config.h>
|
||||
#elif defined(XIPHOS_Q7S)
|
||||
#include <q7s_config.h>
|
||||
#endif
|
||||
#include "commonConfig.h"
|
||||
#include "OBSWVersion.h"
|
||||
|
||||
/* These defines should be disabled for mission code but are useful for
|
||||
debugging. */
|
||||
#define OBSW_VERBOSE_LEVEL 1
|
||||
#define OBSW_PRINT_MISSED_DEADLINES 1
|
||||
#define OBSW_ADD_TEST_CODE 1
|
||||
#define TEST_LIBGPIOD 0
|
||||
|
||||
#define TE0720 0
|
||||
|
||||
#define P60DOCK_DEBUG 0
|
||||
#define PDU1_DEBUG 0
|
||||
#define PDU2_DEBUG 0
|
||||
#define ACU_DEBUG 0
|
||||
#define SYRLINKS_DEBUG 0
|
||||
#define IMQT_DEBUG 1
|
||||
|
||||
#include "OBSWVersion.h"
|
||||
|
||||
/* Can be used to switch device to NORMAL mode immediately */
|
||||
#define OBSW_SWITCH_TO_NORMAL_MODE_AFTER_STARTUP 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#include "objects/systemObjectList.h"
|
||||
#include "events/subsystemIdRanges.h"
|
||||
#include "returnvalues/classIds.h"
|
||||
|
||||
namespace config {
|
||||
#endif
|
||||
|
||||
/* Add mission configuration flags here */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* FSFWCONFIG_OBSWCONFIG_H_ */
|
@ -1,254 +0,0 @@
|
||||
/**
|
||||
* @brief Auto-generated event translation file. Contains 80 translations.
|
||||
* Generated on: 2020-05-02 20:13:41
|
||||
*/
|
||||
#include <fsfwconfig/events/translateEvents.h>
|
||||
|
||||
const char *GPS_STARTUP_FAILED_STRING = "GPS_STARTUP_FAILED";
|
||||
const char *GPS_FIX_STRING = "GPS_FIX";
|
||||
const char *GPS_LOST_FIX_STRING = "GPS_LOST_FIX";
|
||||
const char *STORE_SEND_WRITE_FAILED_STRING = "STORE_SEND_WRITE_FAILED";
|
||||
const char *STORE_WRITE_FAILED_STRING = "STORE_WRITE_FAILED";
|
||||
const char *STORE_SEND_READ_FAILED_STRING = "STORE_SEND_READ_FAILED";
|
||||
const char *STORE_READ_FAILED_STRING = "STORE_READ_FAILED";
|
||||
const char *UNEXPECTED_MSG_STRING = "UNEXPECTED_MSG";
|
||||
const char *STORING_FAILED_STRING = "STORING_FAILED";
|
||||
const char *TM_DUMP_FAILED_STRING = "TM_DUMP_FAILED";
|
||||
const char *STORE_INIT_FAILED_STRING = "STORE_INIT_FAILED";
|
||||
const char *STORE_INIT_EMPTY_STRING = "STORE_INIT_EMPTY";
|
||||
const char *STORE_CONTENT_CORRUPTED_STRING = "STORE_CONTENT_CORRUPTED";
|
||||
const char *STORE_INITIALIZE_STRING = "STORE_INITIALIZE";
|
||||
const char *INIT_DONE_STRING = "INIT_DONE";
|
||||
const char *DUMP_FINISHED_STRING = "DUMP_FINISHED";
|
||||
const char *DELETION_FINISHED_STRING = "DELETION_FINISHED";
|
||||
const char *DELETION_FAILED_STRING = "DELETION_FAILED";
|
||||
const char *AUTO_CATALOGS_SENDING_FAILED_STRING = "AUTO_CATALOGS_SENDING_FAILED";
|
||||
const char *GET_DATA_FAILED_STRING = "GET_DATA_FAILED";
|
||||
const char *STORE_DATA_FAILED_STRING = "STORE_DATA_FAILED";
|
||||
const char *DEVICE_BUILDING_COMMAND_FAILED_STRING = "DEVICE_BUILDING_COMMAND_FAILED";
|
||||
const char *DEVICE_SENDING_COMMAND_FAILED_STRING = "DEVICE_SENDING_COMMAND_FAILED";
|
||||
const char *DEVICE_REQUESTING_REPLY_FAILED_STRING = "DEVICE_REQUESTING_REPLY_FAILED";
|
||||
const char *DEVICE_READING_REPLY_FAILED_STRING = "DEVICE_READING_REPLY_FAILED";
|
||||
const char *DEVICE_INTERPRETING_REPLY_FAILED_STRING = "DEVICE_INTERPRETING_REPLY_FAILED";
|
||||
const char *DEVICE_MISSED_REPLY_STRING = "DEVICE_MISSED_REPLY";
|
||||
const char *DEVICE_UNKNOWN_REPLY_STRING = "DEVICE_UNKNOWN_REPLY";
|
||||
const char *DEVICE_UNREQUESTED_REPLY_STRING = "DEVICE_UNREQUESTED_REPLY";
|
||||
const char *INVALID_DEVICE_COMMAND_STRING = "INVALID_DEVICE_COMMAND";
|
||||
const char *MONITORING_LIMIT_EXCEEDED_STRING = "MONITORING_LIMIT_EXCEEDED";
|
||||
const char *MONITORING_AMBIGUOUS_STRING = "MONITORING_AMBIGUOUS";
|
||||
const char *FUSE_CURRENT_HIGH_STRING = "FUSE_CURRENT_HIGH";
|
||||
const char *FUSE_WENT_OFF_STRING = "FUSE_WENT_OFF";
|
||||
const char *POWER_ABOVE_HIGH_LIMIT_STRING = "POWER_ABOVE_HIGH_LIMIT";
|
||||
const char *POWER_BELOW_LOW_LIMIT_STRING = "POWER_BELOW_LOW_LIMIT";
|
||||
const char *SWITCH_WENT_OFF_STRING = "SWITCH_WENT_OFF";
|
||||
const char *HEATER_ON_STRING = "HEATER_ON";
|
||||
const char *HEATER_OFF_STRING = "HEATER_OFF";
|
||||
const char *HEATER_TIMEOUT_STRING = "HEATER_TIMEOUT";
|
||||
const char *HEATER_STAYED_ON_STRING = "HEATER_STAYED_ON";
|
||||
const char *HEATER_STAYED_OFF_STRING = "HEATER_STAYED_OFF";
|
||||
const char *TEMP_SENSOR_HIGH_STRING = "TEMP_SENSOR_HIGH";
|
||||
const char *TEMP_SENSOR_LOW_STRING = "TEMP_SENSOR_LOW";
|
||||
const char *TEMP_SENSOR_GRADIENT_STRING = "TEMP_SENSOR_GRADIENT";
|
||||
const char *COMPONENT_TEMP_LOW_STRING = "COMPONENT_TEMP_LOW";
|
||||
const char *COMPONENT_TEMP_HIGH_STRING = "COMPONENT_TEMP_HIGH";
|
||||
const char *COMPONENT_TEMP_OOL_LOW_STRING = "COMPONENT_TEMP_OOL_LOW";
|
||||
const char *COMPONENT_TEMP_OOL_HIGH_STRING = "COMPONENT_TEMP_OOL_HIGH";
|
||||
const char *TEMP_NOT_IN_OP_RANGE_STRING = "TEMP_NOT_IN_OP_RANGE";
|
||||
const char *FDIR_CHANGED_STATE_STRING = "FDIR_CHANGED_STATE";
|
||||
const char *FDIR_STARTS_RECOVERY_STRING = "FDIR_STARTS_RECOVERY";
|
||||
const char *FDIR_TURNS_OFF_DEVICE_STRING = "FDIR_TURNS_OFF_DEVICE";
|
||||
const char *MONITOR_CHANGED_STATE_STRING = "MONITOR_CHANGED_STATE";
|
||||
const char *VALUE_BELOW_LOW_LIMIT_STRING = "VALUE_BELOW_LOW_LIMIT";
|
||||
const char *VALUE_ABOVE_HIGH_LIMIT_STRING = "VALUE_ABOVE_HIGH_LIMIT";
|
||||
const char *VALUE_OUT_OF_RANGE_STRING = "VALUE_OUT_OF_RANGE";
|
||||
const char *SWITCHING_TM_FAILED_STRING = "SWITCHING_TM_FAILED";
|
||||
const char *CHANGING_MODE_STRING = "CHANGING_MODE";
|
||||
const char *MODE_INFO_STRING = "MODE_INFO";
|
||||
const char *FALLBACK_FAILED_STRING = "FALLBACK_FAILED";
|
||||
const char *MODE_TRANSITION_FAILED_STRING = "MODE_TRANSITION_FAILED";
|
||||
const char *CANT_KEEP_MODE_STRING = "CANT_KEEP_MODE";
|
||||
const char *OBJECT_IN_INVALID_MODE_STRING = "OBJECT_IN_INVALID_MODE";
|
||||
const char *FORCING_MODE_STRING = "FORCING_MODE";
|
||||
const char *MODE_CMD_REJECTED_STRING = "MODE_CMD_REJECTED";
|
||||
const char *HEALTH_INFO_STRING = "HEALTH_INFO";
|
||||
const char *CHILD_CHANGED_HEALTH_STRING = "CHILD_CHANGED_HEALTH";
|
||||
const char *CHILD_PROBLEMS_STRING = "CHILD_PROBLEMS";
|
||||
const char *OVERWRITING_HEALTH_STRING = "OVERWRITING_HEALTH";
|
||||
const char *TRYING_RECOVERY_STRING = "TRYING_RECOVERY";
|
||||
const char *RECOVERY_STEP_STRING = "RECOVERY_STEP";
|
||||
const char *RECOVERY_DONE_STRING = "RECOVERY_DONE";
|
||||
const char *RF_AVAILABLE_STRING = "RF_AVAILABLE";
|
||||
const char *RF_LOST_STRING = "RF_LOST";
|
||||
const char *BIT_LOCK_STRING = "BIT_LOCK";
|
||||
const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST";
|
||||
const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED";
|
||||
const char *TEST_EVENT_SERVICE_1_STRING = "TEST_EVENT_SERVICE_1";
|
||||
const char *TEST2_STRING = "TEST2";
|
||||
|
||||
const char * translateEvents(Event event){
|
||||
switch((event&0xFFFF)){
|
||||
case 1000:
|
||||
return GPS_STARTUP_FAILED_STRING;
|
||||
case 1001:
|
||||
return GPS_FIX_STRING;
|
||||
case 1002:
|
||||
return GPS_LOST_FIX_STRING;
|
||||
case 2200:
|
||||
return STORE_SEND_WRITE_FAILED_STRING;
|
||||
case 2201:
|
||||
return STORE_WRITE_FAILED_STRING;
|
||||
case 2202:
|
||||
return STORE_SEND_READ_FAILED_STRING;
|
||||
case 2203:
|
||||
return STORE_READ_FAILED_STRING;
|
||||
case 2204:
|
||||
return UNEXPECTED_MSG_STRING;
|
||||
case 2205:
|
||||
return STORING_FAILED_STRING;
|
||||
case 2206:
|
||||
return TM_DUMP_FAILED_STRING;
|
||||
case 2207:
|
||||
return STORE_INIT_FAILED_STRING;
|
||||
case 2208:
|
||||
return STORE_INIT_EMPTY_STRING;
|
||||
case 2209:
|
||||
return STORE_CONTENT_CORRUPTED_STRING;
|
||||
case 2210:
|
||||
return STORE_INITIALIZE_STRING;
|
||||
case 2211:
|
||||
return INIT_DONE_STRING;
|
||||
case 2212:
|
||||
return DUMP_FINISHED_STRING;
|
||||
case 2213:
|
||||
return DELETION_FINISHED_STRING;
|
||||
case 2214:
|
||||
return DELETION_FAILED_STRING;
|
||||
case 2215:
|
||||
return AUTO_CATALOGS_SENDING_FAILED_STRING;
|
||||
case 2600:
|
||||
return GET_DATA_FAILED_STRING;
|
||||
case 2601:
|
||||
return STORE_DATA_FAILED_STRING;
|
||||
case 2800:
|
||||
return DEVICE_BUILDING_COMMAND_FAILED_STRING;
|
||||
case 2801:
|
||||
return DEVICE_SENDING_COMMAND_FAILED_STRING;
|
||||
case 2802:
|
||||
return DEVICE_REQUESTING_REPLY_FAILED_STRING;
|
||||
case 2803:
|
||||
return DEVICE_READING_REPLY_FAILED_STRING;
|
||||
case 2804:
|
||||
return DEVICE_INTERPRETING_REPLY_FAILED_STRING;
|
||||
case 2805:
|
||||
return DEVICE_MISSED_REPLY_STRING;
|
||||
case 2806:
|
||||
return DEVICE_UNKNOWN_REPLY_STRING;
|
||||
case 2807:
|
||||
return DEVICE_UNREQUESTED_REPLY_STRING;
|
||||
case 2808:
|
||||
return INVALID_DEVICE_COMMAND_STRING;
|
||||
case 2809:
|
||||
return MONITORING_LIMIT_EXCEEDED_STRING;
|
||||
case 2810:
|
||||
return MONITORING_AMBIGUOUS_STRING;
|
||||
case 4201:
|
||||
return FUSE_CURRENT_HIGH_STRING;
|
||||
case 4202:
|
||||
return FUSE_WENT_OFF_STRING;
|
||||
case 4204:
|
||||
return POWER_ABOVE_HIGH_LIMIT_STRING;
|
||||
case 4205:
|
||||
return POWER_BELOW_LOW_LIMIT_STRING;
|
||||
case 4300:
|
||||
return SWITCH_WENT_OFF_STRING;
|
||||
case 5000:
|
||||
return HEATER_ON_STRING;
|
||||
case 5001:
|
||||
return HEATER_OFF_STRING;
|
||||
case 5002:
|
||||
return HEATER_TIMEOUT_STRING;
|
||||
case 5003:
|
||||
return HEATER_STAYED_ON_STRING;
|
||||
case 5004:
|
||||
return HEATER_STAYED_OFF_STRING;
|
||||
case 5200:
|
||||
return TEMP_SENSOR_HIGH_STRING;
|
||||
case 5201:
|
||||
return TEMP_SENSOR_LOW_STRING;
|
||||
case 5202:
|
||||
return TEMP_SENSOR_GRADIENT_STRING;
|
||||
case 5901:
|
||||
return COMPONENT_TEMP_LOW_STRING;
|
||||
case 5902:
|
||||
return COMPONENT_TEMP_HIGH_STRING;
|
||||
case 5903:
|
||||
return COMPONENT_TEMP_OOL_LOW_STRING;
|
||||
case 5904:
|
||||
return COMPONENT_TEMP_OOL_HIGH_STRING;
|
||||
case 5905:
|
||||
return TEMP_NOT_IN_OP_RANGE_STRING;
|
||||
case 7101:
|
||||
return FDIR_CHANGED_STATE_STRING;
|
||||
case 7102:
|
||||
return FDIR_STARTS_RECOVERY_STRING;
|
||||
case 7103:
|
||||
return FDIR_TURNS_OFF_DEVICE_STRING;
|
||||
case 7201:
|
||||
return MONITOR_CHANGED_STATE_STRING;
|
||||
case 7202:
|
||||
return VALUE_BELOW_LOW_LIMIT_STRING;
|
||||
case 7203:
|
||||
return VALUE_ABOVE_HIGH_LIMIT_STRING;
|
||||
case 7204:
|
||||
return VALUE_OUT_OF_RANGE_STRING;
|
||||
case 7301:
|
||||
return SWITCHING_TM_FAILED_STRING;
|
||||
case 7400:
|
||||
return CHANGING_MODE_STRING;
|
||||
case 7401:
|
||||
return MODE_INFO_STRING;
|
||||
case 7402:
|
||||
return FALLBACK_FAILED_STRING;
|
||||
case 7403:
|
||||
return MODE_TRANSITION_FAILED_STRING;
|
||||
case 7404:
|
||||
return CANT_KEEP_MODE_STRING;
|
||||
case 7405:
|
||||
return OBJECT_IN_INVALID_MODE_STRING;
|
||||
case 7406:
|
||||
return FORCING_MODE_STRING;
|
||||
case 7407:
|
||||
return MODE_CMD_REJECTED_STRING;
|
||||
case 7506:
|
||||
return HEALTH_INFO_STRING;
|
||||
case 7507:
|
||||
return CHILD_CHANGED_HEALTH_STRING;
|
||||
case 7508:
|
||||
return CHILD_PROBLEMS_STRING;
|
||||
case 7509:
|
||||
return OVERWRITING_HEALTH_STRING;
|
||||
case 7510:
|
||||
return TRYING_RECOVERY_STRING;
|
||||
case 7511:
|
||||
return RECOVERY_STEP_STRING;
|
||||
case 7512:
|
||||
return RECOVERY_DONE_STRING;
|
||||
case 7900:
|
||||
return RF_AVAILABLE_STRING;
|
||||
case 7901:
|
||||
return RF_LOST_STRING;
|
||||
case 7902:
|
||||
return BIT_LOCK_STRING;
|
||||
case 7903:
|
||||
return BIT_LOCK_LOST_STRING;
|
||||
case 7905:
|
||||
return FRAME_PROCESSING_FAILED_STRING;
|
||||
case 8000:
|
||||
return TEST_EVENT_SERVICE_1_STRING;
|
||||
case 9100:
|
||||
return TEST2_STRING;
|
||||
default:
|
||||
return "UNKNOWN_EVENT";
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
#include <fsfw/ipc/CommandMessage.h>
|
||||
#include <fsfwconfig/ipc/MissionMessageTypes.h>
|
||||
|
||||
void messagetypes::clearMissionMessage(CommandMessage* message) {
|
||||
// switch(message->getMessageType()) {
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
|
@ -1,242 +0,0 @@
|
||||
/* Auto-generated event translation file. Contains 77 translations. */
|
||||
#include <fsfwconfig/objects/translateObjects.h>
|
||||
|
||||
const char *AT91_UART2_TEST_TASK_STRING = "AT91_UART2_TEST_TASK";
|
||||
const char *ARDUINO_0_STRING = "ARDUINO_0";
|
||||
const char *ARDUINO_1_STRING = "ARDUINO_1";
|
||||
const char *ARDUINO_2_STRING = "ARDUINO_2";
|
||||
const char *ARDUINO_3_STRING = "ARDUINO_3";
|
||||
const char *ARDUINO_4_STRING = "ARDUINO_4";
|
||||
const char *AT91_I2C_TEST_TASK_STRING = "AT91_I2C_TEST_TASK";
|
||||
const char *TEST_TASK_STRING = "TEST_TASK";
|
||||
const char *PCDU_HANDLER_STRING = "PCDU_HANDLER";
|
||||
const char *DUMMY_HANDLER_STRING = "DUMMY_HANDLER";
|
||||
const char *S_ADC1_DEC2_STRING = "S_ADC1_DEC2";
|
||||
const char *GPS0_HANDLER_STRING = "GPS0_HANDLER";
|
||||
const char *DLR_PVCH_STRING = "DLR_PVCH";
|
||||
const char *GYRO1_STRING = "GYRO1";
|
||||
const char *DLR_IRAS_STRING = "DLR_IRAS";
|
||||
const char *_DEC1_O1_STRING = "_DEC1_O1";
|
||||
const char *_DEC1_O2_STRING = "_DEC1_O2";
|
||||
const char *S1_DEC1_O3_STRING = "S1_DEC1_O3";
|
||||
const char *S2_DEC1_O4_STRING = "S2_DEC1_O4";
|
||||
const char *S3_DEC1_O5_STRING = "S3_DEC1_O5";
|
||||
const char *PT1000_PVHC_DEC1_O6_STRING = "PT1000_PVHC_DEC1_O6";
|
||||
const char *PT1000_CCSDS1_DEC2_STRING = "PT1000_CCSDS1_DEC2";
|
||||
const char *PT1000_MGT1_DEC2_STRING = "PT1000_MGT1_DEC2";
|
||||
const char *S4_DEC2_STRING = "S4_DEC2";
|
||||
const char *S5_DEC2_STRING = "S5_DEC2";
|
||||
const char *S6_DEC2_STRING = "S6_DEC2";
|
||||
const char *PT1000_PVCH_DEC2_STRING = "PT1000_PVCH_DEC2";
|
||||
const char *_DEC3_STRING = "_DEC3";
|
||||
const char *PT1000_CCSDS2_DEC3_STRING = "PT1000_CCSDS2_DEC3";
|
||||
const char *S7_DEC3_STRING = "S7_DEC3";
|
||||
const char *S8_DEC3_STRING = "S8_DEC3";
|
||||
const char *PT1000_PVCH_DEC3_STRING = "PT1000_PVCH_DEC3";
|
||||
const char *GYRO2_STRING = "GYRO2";
|
||||
const char *PT1000_PLOC_DEC4_STRING = "PT1000_PLOC_DEC4";
|
||||
const char *S9_DEC4_STRING = "S9_DEC4";
|
||||
const char *S10_DEC4_STRING = "S10_DEC4";
|
||||
const char *PT1000_PVHC_DEC4_STRING = "PT1000_PVHC_DEC4";
|
||||
const char *S_ADC_DEC4_STRING = "S_ADC_DEC4";
|
||||
const char *GPS1_HANDLER_STRING = "GPS1_HANDLER";
|
||||
const char *DUMMY_GPS_COM_IF_STRING = "DUMMY_GPS_COM_IF";
|
||||
const char *RS232_DEVICE_COM_IF_STRING = "RS232_DEVICE_COM_IF";
|
||||
const char *I2C_DEVICE_COM_IF_STRING = "I2C_DEVICE_COM_IF";
|
||||
const char *GPIO_DEVICE_COM_IF_STRING = "GPIO_DEVICE_COM_IF";
|
||||
const char *SPI_POLLING_TASK_STRING = "SPI_POLLING_TASK";
|
||||
const char *SPI_DEVICE_COM_IF_STRING = "SPI_DEVICE_COM_IF";
|
||||
const char *DUMMY_ECHO_COM_IF_STRING = "DUMMY_ECHO_COM_IF";
|
||||
const char *SD_CARD_HANDLER_STRING = "SD_CARD_HANDLER";
|
||||
const char *CCSDS_PACKET_DISTRIBUTOR_STRING = "CCSDS_PACKET_DISTRIBUTOR";
|
||||
const char *PUS_PACKET_DISTRIBUTOR_STRING = "PUS_PACKET_DISTRIBUTOR";
|
||||
const char *UDP_TMTC_BRIDGE_STRING = "UDP_TMTC_BRIDGE";
|
||||
const char *EMAC_POLLING_TASK_STRING = "EMAC_POLLING_TASK";
|
||||
const char *SERIAL_POLLING_TASK_STRING = "SERIAL_POLLING_TASK";
|
||||
const char *UART_TMTC_BRIDGE_STRING = "UART_TMTC_BRIDGE";
|
||||
const char *PUS_SERVICE_1_STRING = "PUS_SERVICE_1";
|
||||
const char *PUS_SERVICE_2_STRING = "PUS_SERVICE_2";
|
||||
const char *PUS_SERVICE_3_STRING = "PUS_SERVICE_3";
|
||||
const char *PUS_SERVICE_5_STRING = "PUS_SERVICE_5";
|
||||
const char *PUS_SERVICE_6_STRING = "PUS_SERVICE_6";
|
||||
const char *PUS_SERVICE_8_STRING = "PUS_SERVICE_8";
|
||||
const char *PUS_SERVICE_9_STRING = "PUS_SERVICE_9";
|
||||
const char *PUS_SERVICE_17_STRING = "PUS_SERVICE_17";
|
||||
const char *PUS_SERVICE_23_STRING = "PUS_SERVICE_23";
|
||||
const char *PUS_SERVICE_200_STRING = "PUS_SERVICE_200";
|
||||
const char *PUS_SERVICE_201_STRING = "PUS_SERVICE_201";
|
||||
const char *PUS_TIME_STRING = "PUS_TIME";
|
||||
const char *PUS_FUNNEL_STRING = "PUS_FUNNEL";
|
||||
const char *HEALTH_TABLE_STRING = "HEALTH_TABLE";
|
||||
const char *MODE_STORE_STRING = "MODE_STORE";
|
||||
const char *EVENT_MANAGER_STRING = "EVENT_MANAGER";
|
||||
const char *INTERNAL_ERROR_REPORTER_STRING = "INTERNAL_ERROR_REPORTER";
|
||||
const char *TC_STORE_STRING = "TC_STORE";
|
||||
const char *TM_STORE_STRING = "TM_STORE";
|
||||
const char *IPC_STORE_STRING = "IPC_STORE";
|
||||
const char *AT91_SPI_TEST_TASK_STRING = "AT91_SPI_TEST_TASK";
|
||||
const char *STM32_TEST_TASK_STRING = "STM32_TEST_TASK";
|
||||
const char *AT91_UART0_TEST_TASK_STRING = "AT91_UART0_TEST_TASK";
|
||||
const char *NO_OBJECT_STRING = "NO_OBJECT";
|
||||
|
||||
const char* translateObject(object_id_t object){
|
||||
switch((object&0xFFFFFFFF)){
|
||||
case 0x000123336:
|
||||
return AT91_UART2_TEST_TASK_STRING;
|
||||
case 0x01010100:
|
||||
return ARDUINO_0_STRING;
|
||||
case 0x01010101:
|
||||
return ARDUINO_1_STRING;
|
||||
case 0x01010102:
|
||||
return ARDUINO_2_STRING;
|
||||
case 0x01010103:
|
||||
return ARDUINO_3_STRING;
|
||||
case 0x01010104:
|
||||
return ARDUINO_4_STRING;
|
||||
case 0x12345678:
|
||||
return AT91_I2C_TEST_TASK_STRING;
|
||||
case 0x42694269:
|
||||
return TEST_TASK_STRING;
|
||||
case 0x44003200:
|
||||
return PCDU_HANDLER_STRING;
|
||||
case 0x4400AFFE:
|
||||
return DUMMY_HANDLER_STRING;
|
||||
case 0x44020108:
|
||||
return S_ADC1_DEC2_STRING;
|
||||
case 0x44101F00:
|
||||
return GPS0_HANDLER_STRING;
|
||||
case 0x44104000:
|
||||
return DLR_PVCH_STRING;
|
||||
case 0x44105000:
|
||||
return GYRO1_STRING;
|
||||
case 0x44106000:
|
||||
return DLR_IRAS_STRING;
|
||||
case 0x44115401:
|
||||
return _DEC1_O1_STRING;
|
||||
case 0x44115402:
|
||||
return _DEC1_O2_STRING;
|
||||
case 0x44115404:
|
||||
return S1_DEC1_O3_STRING;
|
||||
case 0x44115405:
|
||||
return S2_DEC1_O4_STRING;
|
||||
case 0x44115406:
|
||||
return S3_DEC1_O5_STRING;
|
||||
case 0x44115407:
|
||||
return PT1000_PVHC_DEC1_O6_STRING;
|
||||
case 0x44125401:
|
||||
return PT1000_CCSDS1_DEC2_STRING;
|
||||
case 0x44125403:
|
||||
return PT1000_MGT1_DEC2_STRING;
|
||||
case 0x44125404:
|
||||
return S4_DEC2_STRING;
|
||||
case 0x44125405:
|
||||
return S5_DEC2_STRING;
|
||||
case 0x44125406:
|
||||
return S6_DEC2_STRING;
|
||||
case 0x44125407:
|
||||
return PT1000_PVCH_DEC2_STRING;
|
||||
case 0x44130301:
|
||||
return _DEC3_STRING;
|
||||
case 0x44130302:
|
||||
return PT1000_CCSDS2_DEC3_STRING;
|
||||
case 0x44130305:
|
||||
return S7_DEC3_STRING;
|
||||
case 0x44130306:
|
||||
return S8_DEC3_STRING;
|
||||
case 0x44130307:
|
||||
return PT1000_PVCH_DEC3_STRING;
|
||||
case 0x44130308:
|
||||
return GYRO2_STRING;
|
||||
case 0x44145401:
|
||||
return PT1000_PLOC_DEC4_STRING;
|
||||
case 0x44145404:
|
||||
return S9_DEC4_STRING;
|
||||
case 0x44145405:
|
||||
return S10_DEC4_STRING;
|
||||
case 0x44145406:
|
||||
return PT1000_PVHC_DEC4_STRING;
|
||||
case 0x44145407:
|
||||
return S_ADC_DEC4_STRING;
|
||||
case 0x44202000:
|
||||
return GPS1_HANDLER_STRING;
|
||||
case 0x49001F00:
|
||||
return DUMMY_GPS_COM_IF_STRING;
|
||||
case 0x49005200:
|
||||
return RS232_DEVICE_COM_IF_STRING;
|
||||
case 0x49005300:
|
||||
return I2C_DEVICE_COM_IF_STRING;
|
||||
case 0x49005400:
|
||||
return GPIO_DEVICE_COM_IF_STRING;
|
||||
case 0x49005410:
|
||||
return SPI_POLLING_TASK_STRING;
|
||||
case 0x49005600:
|
||||
return SPI_DEVICE_COM_IF_STRING;
|
||||
case 0x4900AFFE:
|
||||
return DUMMY_ECHO_COM_IF_STRING;
|
||||
case 0x4D0073AD:
|
||||
return SD_CARD_HANDLER_STRING;
|
||||
case 0x50000100:
|
||||
return CCSDS_PACKET_DISTRIBUTOR_STRING;
|
||||
case 0x50000200:
|
||||
return PUS_PACKET_DISTRIBUTOR_STRING;
|
||||
case 0x50000300:
|
||||
return UDP_TMTC_BRIDGE_STRING;
|
||||
case 0x50000400:
|
||||
return EMAC_POLLING_TASK_STRING;
|
||||
case 0x50000600:
|
||||
return SERIAL_POLLING_TASK_STRING;
|
||||
case 0x5000500:
|
||||
return UART_TMTC_BRIDGE_STRING;
|
||||
case 0x51000100:
|
||||
return PUS_SERVICE_1_STRING;
|
||||
case 0x51000200:
|
||||
return PUS_SERVICE_2_STRING;
|
||||
case 0x51000300:
|
||||
return PUS_SERVICE_3_STRING;
|
||||
case 0x51000400:
|
||||
return PUS_SERVICE_5_STRING;
|
||||
case 0x51000500:
|
||||
return PUS_SERVICE_6_STRING;
|
||||
case 0x51000800:
|
||||
return PUS_SERVICE_8_STRING;
|
||||
case 0x51000900:
|
||||
return PUS_SERVICE_9_STRING;
|
||||
case 0x51001700:
|
||||
return PUS_SERVICE_17_STRING;
|
||||
case 0x51002300:
|
||||
return PUS_SERVICE_23_STRING;
|
||||
case 0x51020000:
|
||||
return PUS_SERVICE_200_STRING;
|
||||
case 0x51020100:
|
||||
return PUS_SERVICE_201_STRING;
|
||||
case 0x52000001:
|
||||
return PUS_TIME_STRING;
|
||||
case 0x52000002:
|
||||
return PUS_FUNNEL_STRING;
|
||||
case 0x53010000:
|
||||
return HEALTH_TABLE_STRING;
|
||||
case 0x53010100:
|
||||
return MODE_STORE_STRING;
|
||||
case 0x53030000:
|
||||
return EVENT_MANAGER_STRING;
|
||||
case 0x53040000:
|
||||
return INTERNAL_ERROR_REPORTER_STRING;
|
||||
case 0x534f0100:
|
||||
return TC_STORE_STRING;
|
||||
case 0x534f0200:
|
||||
return TM_STORE_STRING;
|
||||
case 0x534f0300:
|
||||
return IPC_STORE_STRING;
|
||||
case 0x66666666:
|
||||
return AT91_SPI_TEST_TASK_STRING;
|
||||
case 0x77777777:
|
||||
return STM32_TEST_TASK_STRING;
|
||||
case 0x87654321:
|
||||
return AT91_UART0_TEST_TASK_STRING;
|
||||
case 0xFFFFFFFF:
|
||||
return NO_OBJECT_STRING;
|
||||
default:
|
||||
return "UNKNOWN_OBJECT";
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,291 +0,0 @@
|
||||
#include "pollingSequenceFactory.h"
|
||||
#include <OBSWConfig.h>
|
||||
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
||||
#include <fsfw/serviceinterface/ServiceInterfaceStream.h>
|
||||
#include <fsfw/devicehandlers/DeviceHandlerIF.h>
|
||||
#include <fsfw/tasks/FixedTimeslotTaskIF.h>
|
||||
#include <fsfwconfig/objects/systemObjectList.h>
|
||||
|
||||
|
||||
ReturnValue_t pst::pollingSequenceInitDefault(FixedTimeslotTaskIF *thisSequence)
|
||||
{
|
||||
/* Length of a communication cycle */
|
||||
uint32_t length = thisSequence->getPeriodMs();
|
||||
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::HEATER_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::SOLAR_ARRAY_DEPL_HANDLER, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
|
||||
#if Q7S_ADD_RTD_DEVICES == 1
|
||||
thisSequence->addSlot(objects::RTD_IC3, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC4, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC5, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC6, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC7, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC8, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC9, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC10, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC11, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC12, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC13, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC14, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC15, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC16, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC17, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::RTD_IC18, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
#endif /* Q7S_ADD_RTD_DEVICES */
|
||||
|
||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
|
||||
#if Q7S_ADD_RTD_DEVICES == 1
|
||||
thisSequence->addSlot(objects::RTD_IC3, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC4, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC5, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC6, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC7, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC8, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC9, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC10, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC11, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC12, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC13, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC14, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC15, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC16, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC17, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC18, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
#endif /* Q7S_ADD_RTD_DEVICES */
|
||||
|
||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
|
||||
#if Q7S_ADD_RTD_DEVICES == 1
|
||||
thisSequence->addSlot(objects::RTD_IC3, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC4, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC5, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC6, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC7, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC8, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC9, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC10, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC11, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC12, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC13, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC14, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC15, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC16, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC17, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::RTD_IC18, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
#endif /* Q7S_ADD_RTD_DEVICES */
|
||||
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
|
||||
#if Q7S_ADD_RTD_DEVICES == 1
|
||||
thisSequence->addSlot(objects::RTD_IC3, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC4, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC5, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC6, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC7, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC8, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC9, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC10, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC11, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC12, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC13, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC14, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC15, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC16, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC17, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC18, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
#endif /* Q7S_ADD_RTD_DEVICES */
|
||||
|
||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
|
||||
#if Q7S_ADD_RTD_DEVICES == 1
|
||||
thisSequence->addSlot(objects::RTD_IC3, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC4, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC5, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC6, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC7, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC8, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC9, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC10, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC11, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC12, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC13, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC14, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC15, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC16, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC17, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::RTD_IC18, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
#endif /* Q7S_ADD_RTD_DEVICES */
|
||||
|
||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
|
||||
if (thisSequence->checkSequence() == HasReturnvaluesIF::RETURN_OK) {
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
sif::error << "PollingSequence::initialize has errors!" << std::endl;
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
|
||||
ReturnValue_t pst::gomspacePstInit(FixedTimeslotTaskIF *thisSequence){
|
||||
uint32_t length = thisSequence->getPeriodMs();
|
||||
|
||||
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
|
||||
thisSequence->addSlot(objects::P60DOCK_HANDLER,
|
||||
length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::PDU1_HANDLER,
|
||||
length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::PDU2_HANDLER,
|
||||
length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::ACU_HANDLER,
|
||||
length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||
|
||||
thisSequence->addSlot(objects::P60DOCK_HANDLER,
|
||||
length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::PDU1_HANDLER,
|
||||
length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::PDU2_HANDLER,
|
||||
length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::ACU_HANDLER,
|
||||
length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||
|
||||
thisSequence->addSlot(objects::P60DOCK_HANDLER,
|
||||
length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::PDU1_HANDLER,
|
||||
length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::PDU2_HANDLER,
|
||||
length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::ACU_HANDLER,
|
||||
length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||
|
||||
thisSequence->addSlot(objects::P60DOCK_HANDLER,
|
||||
length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::PDU1_HANDLER,
|
||||
length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::PDU2_HANDLER,
|
||||
length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::ACU_HANDLER,
|
||||
length * 0.6, DeviceHandlerIF::SEND_READ);
|
||||
|
||||
thisSequence->addSlot(objects::P60DOCK_HANDLER,
|
||||
length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::PDU1_HANDLER,
|
||||
length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::PDU2_HANDLER,
|
||||
length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
thisSequence->addSlot(objects::ACU_HANDLER,
|
||||
length * 0.8, DeviceHandlerIF::GET_READ);
|
||||
|
||||
#if OBSW_ADD_ACS_BOARD == 1
|
||||
// thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0,
|
||||
// DeviceHandlerIF::PERFORM_OPERATION);
|
||||
// thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.2,
|
||||
// DeviceHandlerIF::SEND_WRITE);
|
||||
// thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.4,
|
||||
// DeviceHandlerIF::GET_WRITE);
|
||||
// thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.6,
|
||||
// DeviceHandlerIF::SEND_READ);
|
||||
// thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.8,
|
||||
// DeviceHandlerIF::GET_READ);
|
||||
//
|
||||
// thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0,
|
||||
// DeviceHandlerIF::PERFORM_OPERATION);
|
||||
// thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.2,
|
||||
// DeviceHandlerIF::SEND_WRITE);
|
||||
// thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.4,
|
||||
// DeviceHandlerIF::GET_WRITE);
|
||||
// thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.6,
|
||||
// DeviceHandlerIF::SEND_READ);
|
||||
// thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.8,
|
||||
// DeviceHandlerIF::GET_READ);
|
||||
|
||||
thisSequence->addSlot(objects::MGM_2_LIS3_HANDLER, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::MGM_2_LIS3_HANDLER, length * 0.2,
|
||||
DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::MGM_2_LIS3_HANDLER, length * 0.4,
|
||||
DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::MGM_2_LIS3_HANDLER, length * 0.6,
|
||||
DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::MGM_2_LIS3_HANDLER, length * 0.8,
|
||||
DeviceHandlerIF::GET_READ);
|
||||
|
||||
// thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0,
|
||||
// DeviceHandlerIF::PERFORM_OPERATION);
|
||||
// thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.2,
|
||||
// DeviceHandlerIF::SEND_WRITE);
|
||||
// thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.4,
|
||||
// DeviceHandlerIF::GET_WRITE);
|
||||
// thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.6,
|
||||
// DeviceHandlerIF::SEND_READ);
|
||||
// thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.8,
|
||||
// DeviceHandlerIF::GET_READ);
|
||||
#endif
|
||||
|
||||
if (thisSequence->checkSequence() != HasReturnvaluesIF::RETURN_OK) {
|
||||
sif::error << "Initialization of GomSpace PST failed" << std::endl;
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t pst::pollingSequenceAcsTest(FixedTimeslotTaskIF *thisSequence) {
|
||||
uint32_t length = thisSequence->getPeriodMs();
|
||||
|
||||
thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.2,
|
||||
DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.4,
|
||||
DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.6,
|
||||
DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::MGM_0_LIS3_HANDLER, length * 0.8,
|
||||
DeviceHandlerIF::GET_READ);
|
||||
|
||||
thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.2,
|
||||
DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.4,
|
||||
DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.6,
|
||||
DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::MGM_1_RM3100_HANDLER, length * 0.8,
|
||||
DeviceHandlerIF::GET_READ);
|
||||
|
||||
thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0,
|
||||
DeviceHandlerIF::PERFORM_OPERATION);
|
||||
thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.2,
|
||||
DeviceHandlerIF::SEND_WRITE);
|
||||
thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.4,
|
||||
DeviceHandlerIF::GET_WRITE);
|
||||
thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.6,
|
||||
DeviceHandlerIF::SEND_READ);
|
||||
thisSequence->addSlot(objects::GYRO_1_L3G_HANDLER, length * 0.8,
|
||||
DeviceHandlerIF::GET_READ);
|
||||
if (thisSequence->checkSequence() != HasReturnvaluesIF::RETURN_OK) {
|
||||
sif::error << "Initialization of ACS Board PST failed" << std::endl;
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
83
generators/bsp_q7s_events.csv
Normal file
83
generators/bsp_q7s_events.csv
Normal file
@ -0,0 +1,83 @@
|
||||
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/PlocHandler.h
|
||||
11102;ACK_FAILURE;LOW; ;../../mission/devices/PlocHandler.h
|
||||
11103;EXE_FAILURE;LOW; ;../../mission/devices/PlocHandler.h
|
||||
11104;CRC_FAILURE_EVENT;LOW; ;../../mission/devices/PlocHandler.h
|
|
93
generators/bsp_q7s_objects.csv
Normal file
93
generators/bsp_q7s_objects.csv
Normal file
@ -0,0 +1,93 @@
|
||||
0x00005060;P60DOCK_TEST_TASK
|
||||
0x44000001;P60DOCK_HANDLER
|
||||
0x44000002;PDU1_HANDLER
|
||||
0x44000003;PDU2_HANDLER
|
||||
0x44000004;ACU_HANDLER
|
||||
0x44000005;TMP1075_HANDLER_1
|
||||
0x44000006;TMP1075_HANDLER_2
|
||||
0x44000007;MGM_0_LIS3_HANDLER
|
||||
0x44000008;MGM_1_RM3100_HANDLER
|
||||
0x44000009;MGM_2_LIS3_HANDLER
|
||||
0x44000010;MGM_3_RM3100_HANDLER
|
||||
0x44000011;GYRO_0_ADIS_HANDLER
|
||||
0x44000012;GYRO_1_L3G_HANDLER
|
||||
0x44000013;GYRO_2_L3G_HANDLER
|
||||
0x44000014;IMTQ_HANDLER
|
||||
0x44000015;PLOC_HANDLER
|
||||
0x44000016;SUS_1
|
||||
0x44000017;SUS_2
|
||||
0x44000018;SUS_3
|
||||
0x44000019;SUS_4
|
||||
0x4400001A;SUS_5
|
||||
0x4400001B;SUS_6
|
||||
0x4400001C;SUS_7
|
||||
0x4400001D;SUS_8
|
||||
0x4400001E;SUS_9
|
||||
0x4400001F;SUS_10
|
||||
0x44000021;SUS_11
|
||||
0x44000022;SUS_12
|
||||
0x44000023;SUS_13
|
||||
0x44001000;PCDU_HANDLER
|
||||
0x44001001;SOLAR_ARRAY_DEPL_HANDLER
|
||||
0x44001002;SYRLINKS_HK_HANDLER
|
||||
0x47000001;GPIO_IF
|
||||
0x49000001;ARDUINO_COM_IF
|
||||
0x49000002;CSP_COM_IF
|
||||
0x49000003;I2C_COM_IF
|
||||
0x49000004;UART_COM_IF
|
||||
0x49000005;SPI_COM_IF
|
||||
0x50000100;CCSDS_PACKET_DISTRIBUTOR
|
||||
0x50000200;PUS_PACKET_DISTRIBUTOR
|
||||
0x50000300;UDP_BRIDGE
|
||||
0x50000400;UDP_POLLING_TASK
|
||||
0x51000300;PUS_SERVICE_3
|
||||
0x51000400;PUS_SERVICE_5
|
||||
0x51000500;PUS_SERVICE_6
|
||||
0x51000800;PUS_SERVICE_8
|
||||
0x51002300;PUS_SERVICE_23
|
||||
0x51020100;PUS_SERVICE_201
|
||||
0x52000002;TM_FUNNEL
|
||||
0x53000000;FSFW_OBJECTS_START
|
||||
0x53000001;PUS_SERVICE_1_VERIFICATION
|
||||
0x53000002;PUS_SERVICE_2_DEVICE_ACCESS
|
||||
0x53000003;PUS_SERVICE_3_HOUSEKEEPING
|
||||
0x53000005;PUS_SERVICE_5_EVENT_REPORTING
|
||||
0x53000008;PUS_SERVICE_8_FUNCTION_MGMT
|
||||
0x53000009;PUS_SERVICE_9_TIME_MGMT
|
||||
0x53000017;PUS_SERVICE_17_TEST
|
||||
0x53000020;PUS_SERVICE_20_PARAMETERS
|
||||
0x53000200;PUS_SERVICE_200_MODE_MGMT
|
||||
0x53000201;PUS_SERVICE_201_HEALTH
|
||||
0x53010000;HEALTH_TABLE
|
||||
0x53010100;MODE_STORE
|
||||
0x53030000;EVENT_MANAGER
|
||||
0x53040000;INTERNAL_ERROR_REPORTER
|
||||
0x534f0100;TC_STORE
|
||||
0x534f0200;TM_STORE
|
||||
0x534f0300;IPC_STORE
|
||||
0x53500010;TIME_STAMPER
|
||||
0x53ffffff;FSFW_OBJECTS_END
|
||||
0x54000003;HEATER_HANDLER
|
||||
0x54000004;RTD_IC3
|
||||
0x54000005;RTD_IC4
|
||||
0x54000006;RTD_IC5
|
||||
0x54000007;RTD_IC6
|
||||
0x54000008;RTD_IC7
|
||||
0x54000009;RTD_IC8
|
||||
0x5400000A;RTD_IC9
|
||||
0x5400000B;RTD_IC10
|
||||
0x5400000C;RTD_IC11
|
||||
0x5400000D;RTD_IC12
|
||||
0x5400000E;RTD_IC13
|
||||
0x5400000F;RTD_IC14
|
||||
0x54000010;SPI_TEST
|
||||
0x5400001F;RTD_IC15
|
||||
0x5400002F;RTD_IC16
|
||||
0x5400003F;RTD_IC17
|
||||
0x5400004F;RTD_IC18
|
||||
0x54000050;RAD_SENSOR
|
||||
0x5400AFFE;DUMMY_HANDLER
|
||||
0x5400CAFE;DUMMY_INTERFACE
|
||||
0x54123456;LIBGPIOD_TEST
|
||||
0x54694269;TEST_TASK
|
||||
0xFFFFFFFF;NO_OBJECT
|
|
407
generators/bsp_q7s_returnvalues.csv
Normal file
407
generators/bsp_q7s_returnvalues.csv
Normal file
@ -0,0 +1,407 @@
|
||||
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
|
|
9
generators/definitions.py
Normal file
9
generators/definitions.py
Normal file
@ -0,0 +1,9 @@
|
||||
import enum
|
||||
|
||||
DATABASE_NAME = "eive_mod.db"
|
||||
|
||||
|
||||
class BspType(enum.Enum):
|
||||
BSP_Q7S = "bsp_q7s"
|
||||
BSP_HOSTED = "bsp_hosted"
|
||||
BSP_LINUX_BOARD = "bsp_linux_board"
|
0
generators/events/__init__.py
Normal file
0
generators/events/__init__.py
Normal file
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user