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
|
/build*
|
||||||
_bin
|
|
||||||
_dep
|
|
||||||
|
|
||||||
Debug
|
Debug
|
||||||
Debug*
|
Debug*
|
||||||
Release
|
Release
|
||||||
Release*
|
Release*
|
||||||
MinSizeRel
|
|
||||||
MinSizeRel*
|
|
||||||
RelWithDebInfo
|
|
||||||
RelWithDebInfo*
|
|
||||||
|
|
||||||
.settings
|
.settings
|
||||||
.metadata
|
.metadata
|
||||||
@ -17,6 +11,9 @@ RelWithDebInfo*
|
|||||||
.cproject
|
.cproject
|
||||||
__pycache__
|
__pycache__
|
||||||
|
|
||||||
|
.idea
|
||||||
|
|
||||||
!misc/eclipse/**/.cproject
|
!misc/eclipse/**/.cproject
|
||||||
!misc/eclipse/**/.project
|
!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
|
url = https://github.com/rmspacefish/lwgps.git
|
||||||
[submodule "fsfw_hal"]
|
[submodule "fsfw_hal"]
|
||||||
path = fsfw_hal
|
path = fsfw_hal
|
||||||
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw_hal.git
|
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw-hal.git
|
||||||
[submodule "generators/modgen"]
|
[submodule "generators/fsfwgen"]
|
||||||
path = generators/modgen
|
path = generators/fsfwgen
|
||||||
url = https://git.ksat-stuttgart.de/source/modgen.git
|
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.")
|
set(OS_FSFW host CACHE STRING "OS for the FSFW.")
|
||||||
endif()
|
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.
|
# Perform steps like loading toolchain files where applicable.
|
||||||
include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake)
|
include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake)
|
||||||
pre_project_config()
|
pre_project_config()
|
||||||
@ -50,6 +54,7 @@ set(MISSION_PATH mission)
|
|||||||
set(TEST_PATH test/testtasks)
|
set(TEST_PATH test/testtasks)
|
||||||
set(LINUX_PATH linux)
|
set(LINUX_PATH linux)
|
||||||
set(COMMON_PATH common)
|
set(COMMON_PATH common)
|
||||||
|
set(COMMON_CONFIG_PATH ${COMMON_PATH}/config)
|
||||||
|
|
||||||
set(FSFW_HAL_LIB_PATH fsfw_hal)
|
set(FSFW_HAL_LIB_PATH fsfw_hal)
|
||||||
set(CSP_LIB_PATH ${THIRD_PARTY_FOLDER}/libcsp)
|
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(LWGPS_LIB_PATH ${THIRD_PARTY_FOLDER}/lwgps)
|
||||||
|
|
||||||
set(FSFW_WARNING_SHADOW_LOCAL_GCC OFF)
|
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,
|
# Analyse different OS and architecture/target options, determine BSP_PATH,
|
||||||
# display information about compiler etc.
|
# display information about compiler etc.
|
||||||
@ -65,9 +70,10 @@ include (${CMAKE_SCRIPT_PATH}/HardwareOsPreConfig.cmake)
|
|||||||
pre_source_hw_os_config()
|
pre_source_hw_os_config()
|
||||||
|
|
||||||
if(TGT_BSP)
|
if(TGT_BSP)
|
||||||
if(${TGT_BSP} MATCHES "arm/q7s" OR ${TGT_BSP} MATCHES "arm/raspberrypi")
|
if(${TGT_BSP} MATCHES "arm/q7s" OR ${TGT_BSP} MATCHES "arm/raspberrypi"
|
||||||
set(ROOT_CONFIG_FOLDER TRUE)
|
OR ${TGT_BSP} MATCHES "arm/beagleboneblack"
|
||||||
set(FSFW_CONFIG_PATH "fsfwconfig")
|
)
|
||||||
|
set(FSFW_CONFIG_PATH "linux/fsfwconfig")
|
||||||
set(ADD_LINUX_FILES TRUE)
|
set(ADD_LINUX_FILES TRUE)
|
||||||
set(ADD_CSP_LIB TRUE)
|
set(ADD_CSP_LIB TRUE)
|
||||||
set(FSFW_HAL_ADD_LINUX ON)
|
set(FSFW_HAL_ADD_LINUX ON)
|
||||||
@ -78,6 +84,10 @@ if(TGT_BSP)
|
|||||||
set(FSFW_HAL_ADD_RASPBERRY_PI ON)
|
set(FSFW_HAL_ADD_RASPBERRY_PI ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(${TGT_BSP} MATCHES "arm/beagleboneblack")
|
||||||
|
add_definitions(-DBEAGLEBONEBLACK)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(${TGT_BSP} MATCHES "arm/q7s")
|
if(${TGT_BSP} MATCHES "arm/q7s")
|
||||||
add_definitions(-DXIPHOS_Q7S)
|
add_definitions(-DXIPHOS_Q7S)
|
||||||
endif()
|
endif()
|
||||||
@ -85,6 +95,22 @@ else()
|
|||||||
# Required by FSFW library
|
# Required by FSFW library
|
||||||
set(FSFW_CONFIG_PATH "${BSP_PATH}/fsfwconfig")
|
set(FSFW_CONFIG_PATH "${BSP_PATH}/fsfwconfig")
|
||||||
endif()
|
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 for lwgps library
|
||||||
set(LWGPS_CONFIG_PATH "${COMMON_PATH}/config")
|
set(LWGPS_CONFIG_PATH "${COMMON_PATH}/config")
|
||||||
|
|
||||||
@ -95,11 +121,6 @@ set(LWGPS_CONFIG_PATH "${COMMON_PATH}/config")
|
|||||||
# Add executable
|
# Add executable
|
||||||
add_executable(${TARGET_NAME})
|
add_executable(${TARGET_NAME})
|
||||||
|
|
||||||
# Add subdirectories
|
|
||||||
if(ROOT_CONFIG_FOLDER)
|
|
||||||
add_subdirectory(${FSFW_CONFIG_PATH})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ADD_CSP_LIB)
|
if(ADD_CSP_LIB)
|
||||||
add_subdirectory(${CSP_LIB_PATH})
|
add_subdirectory(${CSP_LIB_PATH})
|
||||||
endif()
|
endif()
|
||||||
@ -150,6 +171,7 @@ endif()
|
|||||||
target_include_directories(${TARGET_NAME} PRIVATE
|
target_include_directories(${TARGET_NAME} PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
${FSFW_CONFIG_PATH}
|
${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
|
### Installing Vivado the the Xilinx development tools
|
||||||
|
|
||||||
It's also possible to perform debugging with a normal Eclipse installation by installing
|
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
|
the TCF plugin and downloading the cross-compiler as specified in the section below.
|
||||||
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).
|
|
||||||
|
|
||||||
* 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 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.
|
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`
|
`<XilinxInstallation>\SDK\2018.2\gnu\aarch32\nt\gcc-arm-linux-gnueabi\bin`
|
||||||
or set up path each time before debugging.
|
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
|
### Installing CMake and MSYS2 on Windows
|
||||||
|
|
||||||
1. Install [MSYS2](https://www.msys2.org/) and [CMake](https://cmake.org/download/) first.
|
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
|
## Getting the Q7S system root
|
||||||
|
|
||||||
It is necessary to copy the Q7S system root to your local development machine for libraries
|
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.
|
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)
|
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.
|
in the `.profile` file.
|
||||||
|
|
||||||
4. Run the CMake configuration to create the build system in a `Debug` folder.
|
4. Run the CMake configuration to create the build system in a `build-Debug-Q7S` folder.
|
||||||
Navigate into the `eive_obsw` folder first.
|
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
|
```sh
|
||||||
cd cmake/scripts/Q7S
|
cd cmake/scripts/Q7S
|
||||||
./create_cmake_debug.sh
|
./create_cmake_debug.sh
|
||||||
cd ../../..
|
cd ../../..
|
||||||
```
|
```
|
||||||
|
|
||||||
This will invoke a Python script which in turn invokes CMake with the correct
|
This will invoke a Python script which in turn invokes CMake with the correct
|
||||||
arguments to configure CMake for Q7S cross-compilation.
|
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
|
5. Build the software with
|
||||||
```sh
|
```sh
|
||||||
cd Debug
|
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
|
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
|
```sh
|
||||||
scp -P 1535 example root@localhost:/tmp
|
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
|
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/>
|
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)
|
* Local File Path: Path to eiveobsw-linux.elf (in _bin\linux\devel)
|
||||||
* Remote File Path: /tmp/eive_obsw.elf
|
* 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
|
## Libgpiod
|
||||||
|
|
||||||
Detect all gpio device files:
|
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
|
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
|
→ 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
|
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() {
|
void initmission::initMission() {
|
||||||
sif::info << "Building global objects.." << std::endl;
|
sif::info << "Building global objects.." << std::endl;
|
||||||
/* Instantiate global object manager and also create all objects */
|
/* 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;
|
sif::info << "Initializing all objects.." << std::endl;
|
||||||
objectManager->initialize();
|
ObjectManager::instance()->initialize();
|
||||||
|
|
||||||
/* This function creates and starts all tasks */
|
/* This function creates and starts all tasks */
|
||||||
initTasks();
|
initTasks();
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include <fsfw/osal/common/UdpTcPollingTask.h>
|
#include <fsfw/osal/common/UdpTcPollingTask.h>
|
||||||
#include <fsfw/osal/common/UdpTmTcBridge.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
|
#if OBSW_ADD_TEST_CODE == 1
|
||||||
@ -33,16 +33,14 @@ void Factory::setStaticFrameworkObjectIds(){
|
|||||||
TmFunnel::storageDestination = objects::NO_OBJECT;
|
TmFunnel::storageDestination = objects::NO_OBJECT;
|
||||||
|
|
||||||
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
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();
|
Factory::setStaticFrameworkObjectIds();
|
||||||
ObjectFactory::produceGenericObjects();
|
ObjectFactory::produceGenericObjects();
|
||||||
|
|
||||||
new UdpTmTcBridge(objects::UDP_BRIDGE,
|
new UdpTmTcBridge(objects::UDP_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
|
||||||
objects::CCSDS_PACKET_DISTRIBUTOR,
|
|
||||||
objects::TM_STORE, objects::TC_STORE);
|
|
||||||
new UdpTcPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
|
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_
|
#ifndef BSP_LINUX_OBJECTFACTORY_H_
|
||||||
#define BSP_LINUX_OBJECTFACTORY_H_
|
#define BSP_LINUX_OBJECTFACTORY_H_
|
||||||
|
|
||||||
|
|
||||||
namespace ObjectFactory {
|
namespace ObjectFactory {
|
||||||
void setStatics();
|
void setStatics();
|
||||||
void produce();
|
void produce(void* args);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* BSP_LINUX_OBJECTFACTORY_H_ */
|
#endif /* BSP_LINUX_OBJECTFACTORY_H_ */
|
||||||
|
@ -6,5 +6,16 @@ target_include_directories(${TARGET_NAME} PUBLIC
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${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
|
//! Used to determine whether C++ ostreams are used which can increase
|
||||||
//! the binary size significantly. If this is disabled,
|
//! the binary size significantly. If this is disabled,
|
||||||
//! the C stdio functions can be used alternatively
|
//! 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.
|
//! 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.
|
//! Can be used to completely disable printouts, even the C stdio ones.
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 0 && FSFW_VERBOSE_LEVEL == 0
|
#if FSFW_CPP_OSTREAM_ENABLED == 0 && FSFW_VERBOSE_LEVEL == 0
|
||||||
#define FSFW_DISABLE_PRINTOUT 0
|
#define FSFW_DISABLE_PRINTOUT 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//! Can be used to disable the ANSI color sequences for C stdio.
|
#define FSFW_USE_PUS_C_TELEMETRY 1
|
||||||
#define FSFW_COLORED_OUTPUT 1
|
#define FSFW_USE_PUS_C_TELECOMMANDS 1
|
||||||
|
|
||||||
//! Can be used to disable the ANSI color sequences for C stdio.
|
//! Can be used to disable the ANSI color sequences for C stdio.
|
||||||
#define FSFW_COLORED_OUTPUT 1
|
#define FSFW_COLORED_OUTPUT 1
|
||||||
@ -26,7 +26,7 @@
|
|||||||
//! If FSFW_OBJ_EVENT_TRANSLATION is set to one,
|
//! If FSFW_OBJ_EVENT_TRANSLATION is set to one,
|
||||||
//! additional output which requires the translation files translateObjects
|
//! additional output which requires the translation files translateObjects
|
||||||
//! and translateEvents (and their compiled source files)
|
//! 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
|
#if FSFW_OBJ_EVENT_TRANSLATION == 1
|
||||||
//! Specify whether info events are printed too.
|
//! Specify whether info events are printed too.
|
||||||
@ -43,10 +43,17 @@
|
|||||||
//! Specify whether a special mode store is used for Subsystem components.
|
//! Specify whether a special mode store is used for Subsystem components.
|
||||||
#define FSFW_USE_MODESTORE 0
|
#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 {
|
namespace fsfwconfig {
|
||||||
//! Default timestamp size. The default timestamp will be an eight byte CDC
|
|
||||||
//! short timestamp.
|
//! Default timestamp size. The default timestamp will be an seven byte CDC short timestamp.
|
||||||
static constexpr uint8_t FSFW_MISSION_TIMESTAMP_SIZE = 8;
|
static constexpr uint8_t FSFW_MISSION_TIMESTAMP_SIZE = 7;
|
||||||
|
|
||||||
//! Configure the allocated pool sizes for the event manager.
|
//! Configure the allocated pool sizes for the event manager.
|
||||||
static constexpr size_t FSFW_EVENTMGMR_MATCHTREE_NODES = 240;
|
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
|
//! Defines the FIFO depth of each commanding service base which
|
||||||
//! also determines how many commands a CSB service can handle in one cycle
|
//! 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 !
|
//! each CSB service !
|
||||||
static constexpr uint8_t FSFW_CSB_FIFO_DEPTH = 6;
|
static constexpr uint8_t FSFW_CSB_FIFO_DEPTH = 6;
|
||||||
|
|
||||||
static constexpr size_t FSFW_PRINT_BUFFER_SIZE = 124;
|
static constexpr size_t FSFW_PRINT_BUFFER_SIZE = 124;
|
||||||
|
|
||||||
|
static constexpr size_t FSFW_MAX_TM_PACKET_SIZE = 2048;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_FSFWCONFIG_H_ */
|
#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_
|
#ifndef CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_
|
||||||
#define CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_
|
#define CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_
|
||||||
|
|
||||||
#include <fsfw/events/fwSubsystemIdRanges.h>
|
#include <common/config/commonSubsystemIds.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,17 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
namespace SUBSYSTEM_ID {
|
namespace SUBSYSTEM_ID {
|
||||||
enum: uint8_t {
|
enum: uint8_t {
|
||||||
SUBSYSTEM_ID_START = FW_SUBSYSTEM_ID_RANGE,
|
SUBSYSTEM_ID_START = COMMON_SUBSYSTEM_ID_END
|
||||||
PUS_SERVICE_2,
|
|
||||||
PUS_SERVICE_3,
|
|
||||||
PUS_SERVICE_5,
|
|
||||||
PUS_SERVICE_6,
|
|
||||||
PUS_SERVICE_8,
|
|
||||||
PUS_SERVICE_23,
|
|
||||||
MGM_LIS3MDL,
|
|
||||||
MGM_RM3100,
|
|
||||||
|
|
||||||
DUMMY_DEVICE,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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_
|
#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
|
||||||
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
|
#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_
|
||||||
|
|
||||||
@ -12,5 +5,4 @@
|
|||||||
|
|
||||||
const char * translateEvents(Event event);
|
const char * translateEvents(Event event);
|
||||||
|
|
||||||
|
|
||||||
#endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */
|
#endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */
|
@ -2,15 +2,11 @@
|
|||||||
#define HOSTED_CONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
|
#define HOSTED_CONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include <commonObjects.h>
|
||||||
|
|
||||||
// The objects will be instantiated in the ID order
|
// The objects will be instantiated in the ID order
|
||||||
namespace objects {
|
namespace objects {
|
||||||
enum sourceObjects: uint32_t {
|
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_3 = 0x51000300,
|
||||||
PUS_SERVICE_5 = 0x51000400,
|
PUS_SERVICE_5 = 0x51000400,
|
||||||
@ -27,21 +23,6 @@ namespace objects {
|
|||||||
DUMMY_INTERFACE = 0xCAFECAFE,
|
DUMMY_INTERFACE = 0xCAFECAFE,
|
||||||
DUMMY_HANDLER = 0x4400AFFE,
|
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 **/
|
/* 0x49 ('I') for Communication Interfaces **/
|
||||||
ARDUINO_COM_IF = 0x49000001
|
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_
|
#ifndef FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_
|
||||||
#define 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);
|
const char* translateObject(object_id_t object);
|
||||||
|
|
||||||
|
|
||||||
#endif /* FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_ */
|
#endif /* FSFWCONFIG_OBJECTS_TRANSLATEOBJECTS_H_ */
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef CONFIG_RETURNVALUES_CLASSIDS_H_
|
#ifndef CONFIG_RETURNVALUES_CLASSIDS_H_
|
||||||
#define CONFIG_RETURNVALUES_CLASSIDS_H_
|
#define CONFIG_RETURNVALUES_CLASSIDS_H_
|
||||||
|
|
||||||
|
#include "commonClassIds.h"
|
||||||
#include <fsfw/returnvalues/FwClassIds.h>
|
#include <fsfw/returnvalues/FwClassIds.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,9 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
namespace CLASS_ID {
|
namespace CLASS_ID {
|
||||||
enum {
|
enum {
|
||||||
MISSION_CLASS_ID_START = FW_CLASS_ID_COUNT,
|
CLASS_ID_START = COMMON_CLASS_ID_END,
|
||||||
MGM_LIS3MDL,
|
|
||||||
MGM_RM3100
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,3 @@ target_sources(${TARGET_NAME} PUBLIC
|
|||||||
|
|
||||||
add_subdirectory(boardconfig)
|
add_subdirectory(boardconfig)
|
||||||
add_subdirectory(boardtest)
|
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 "InitMission.h"
|
||||||
#include "ObjectFactory.h"
|
#include "ObjectFactory.h"
|
||||||
|
|
||||||
#include <fsfwconfig/objects/systemObjectList.h>
|
#include "objects/systemObjectList.h"
|
||||||
#include <fsfwconfig/OBSWConfig.h>
|
#include "OBSWConfig.h"
|
||||||
#include <fsfwconfig/pollingsequence/pollingSequenceFactory.h>
|
#include "pollingsequence/pollingSequenceFactory.h"
|
||||||
|
|
||||||
#include <mission/utility/InitMission.h>
|
#include <mission/utility/InitMission.h>
|
||||||
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
||||||
@ -26,9 +26,9 @@ ObjectManagerIF *objectManager = nullptr;
|
|||||||
void initmission::initMission() {
|
void initmission::initMission() {
|
||||||
sif::info << "Building global objects.." << std::endl;
|
sif::info << "Building global objects.." << std::endl;
|
||||||
/* Instantiate global object manager and also create all objects */
|
/* 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;
|
sif::info << "Initializing all objects.." << std::endl;
|
||||||
objectManager->initialize();
|
ObjectManager::instance()->initialize();
|
||||||
|
|
||||||
/* This function creates and starts all tasks */
|
/* This function creates and starts all tasks */
|
||||||
initTasks();
|
initTasks();
|
||||||
@ -117,6 +117,10 @@ void initmission::initTasks() {
|
|||||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||||
initmission::printAddObjectError("PUS20", objects::PUS_SERVICE_20_PARAMETERS);
|
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(
|
PeriodicTaskIF* pusLowPrio = factory->createPeriodicTask(
|
||||||
"PUS_LOW_PRIO", 30, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.6, missedDeadlineFunc);
|
"PUS_LOW_PRIO", 30, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.6, missedDeadlineFunc);
|
||||||
@ -124,11 +128,16 @@ void initmission::initTasks() {
|
|||||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||||
initmission::printAddObjectError("PUS17", objects::PUS_SERVICE_17_TEST);
|
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
|
#if OBSW_ADD_TEST_PST == 1
|
||||||
FixedTimeslotTaskIF* acsTask = factory->createFixedTimeslotTask(
|
FixedTimeslotTaskIF* pstTestTask = factory->createFixedTimeslotTask(
|
||||||
"ACS_PST", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 2.0, missedDeadlineFunc);
|
"ACS_PST", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 2.0, missedDeadlineFunc);
|
||||||
result = pst::pollingSequenceAcsTest(acsTask);
|
result = pst::pollingSequenceTest(pstTestTask);
|
||||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||||
sif::warning << "initmission::initTasks: ACS PST initialization failed!" << std::endl;
|
sif::warning << "initmission::initTasks: ACS PST initialization failed!" << std::endl;
|
||||||
}
|
}
|
||||||
@ -154,6 +163,12 @@ void initmission::initTasks() {
|
|||||||
initmission::printAddObjectError("GPIOD_TEST", objects::LIBGPIOD_TEST);
|
initmission::printAddObjectError("GPIOD_TEST", objects::LIBGPIOD_TEST);
|
||||||
}
|
}
|
||||||
#endif /* RPI_ADD_GPIO_TEST == 1 */
|
#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;
|
sif::info << "Starting tasks.." << std::endl;
|
||||||
tmTcDistributor->startTask();
|
tmTcDistributor->startTask();
|
||||||
@ -170,8 +185,8 @@ void initmission::initTasks() {
|
|||||||
testTask->startTask();
|
testTask->startTask();
|
||||||
#endif /* OBSW_ADD_TEST_CODE == 1 */
|
#endif /* OBSW_ADD_TEST_CODE == 1 */
|
||||||
|
|
||||||
#if RPI_TEST_ACS_BOARD == 1
|
#if OBSW_ADD_TEST_PST == 1
|
||||||
acsTask->startTask();
|
pstTestTask->startTask();
|
||||||
#endif /* RPI_TEST_ACS_BOARD == 1 */
|
#endif /* RPI_TEST_ACS_BOARD == 1 */
|
||||||
sif::info << "Tasks started.." << std::endl;
|
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_
|
#ifndef BSP_LINUX_OBJECTFACTORY_H_
|
||||||
#define BSP_LINUX_OBJECTFACTORY_H_
|
#define BSP_LINUX_OBJECTFACTORY_H_
|
||||||
|
|
||||||
|
|
||||||
namespace ObjectFactory {
|
namespace ObjectFactory {
|
||||||
void setStatics();
|
void setStatics();
|
||||||
void produce();
|
void produce(void* args);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* BSP_LINUX_OBJECTFACTORY_H_ */
|
#endif /* BSP_LINUX_OBJECTFACTORY_H_ */
|
@ -5,6 +5,3 @@ target_sources(${TARGET_NAME} PRIVATE
|
|||||||
target_include_directories(${TARGET_NAME} PUBLIC
|
target_include_directories(${TARGET_NAME} PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -6,9 +6,18 @@
|
|||||||
#define RPI_ADD_GPIO_TEST 0
|
#define RPI_ADD_GPIO_TEST 0
|
||||||
#define RPI_LOOPBACK_TEST_GPIO 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
|
#define RPI_ADD_SPI_TEST 0
|
||||||
|
#if RPI_ADD_SPI_TEST == 0
|
||||||
#define RPI_TEST_ACS_BOARD 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 */
|
/* Adapt these values accordingly */
|
||||||
namespace gpio {
|
namespace gpio {
|
@ -5,6 +5,14 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#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.
|
* @brief This is the main program and entry point for the Raspberry Pi.
|
||||||
* @return
|
* @return
|
||||||
@ -12,7 +20,7 @@
|
|||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
std::cout << "-- EIVE OBSW --" << std::endl;
|
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 << "."
|
std::cout << "-- Software version " << SW_NAME << " v" << SW_VERSION << "."
|
||||||
<< SW_SUBVERSION << "." << SW_SUBSUBVERSION << " -- " << std::endl;
|
<< SW_SUBVERSION << "." << SW_SUBSUBVERSION << " -- " << std::endl;
|
||||||
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
|
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
|
@ -6,9 +6,6 @@ target_sources(${TARGET_NAME} PUBLIC
|
|||||||
|
|
||||||
add_subdirectory(boardconfig)
|
add_subdirectory(boardconfig)
|
||||||
add_subdirectory(comIF)
|
add_subdirectory(comIF)
|
||||||
add_subdirectory(devices)
|
|
||||||
add_subdirectory(boardtest)
|
add_subdirectory(boardtest)
|
||||||
add_subdirectory(gpio)
|
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 "InitMission.h"
|
||||||
#include "ObjectFactory.h"
|
#include "ObjectFactory.h"
|
||||||
#include <OBSWConfig.h>
|
#include "OBSWConfig.h"
|
||||||
|
#include "pollingsequence/pollingSequenceFactory.h"
|
||||||
|
|
||||||
#include <mission/utility/InitMission.h>
|
#include <mission/utility/InitMission.h>
|
||||||
|
|
||||||
@ -11,7 +12,7 @@
|
|||||||
#include <fsfw/tasks/FixedTimeslotTaskIF.h>
|
#include <fsfw/tasks/FixedTimeslotTaskIF.h>
|
||||||
#include <fsfw/tasks/PeriodicTaskIF.h>
|
#include <fsfw/tasks/PeriodicTaskIF.h>
|
||||||
#include <fsfw/tasks/TaskFactory.h>
|
#include <fsfw/tasks/TaskFactory.h>
|
||||||
#include <fsfwconfig/pollingsequence/pollingSequenceFactory.h>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
/* This is configured for linux without CR */
|
/* This is configured for linux without CR */
|
||||||
@ -30,11 +31,12 @@ ServiceInterfaceStream sif::error("ERROR", true, false, true);
|
|||||||
ObjectManagerIF *objectManager = nullptr;
|
ObjectManagerIF *objectManager = nullptr;
|
||||||
|
|
||||||
void initmission::initMission() {
|
void initmission::initMission() {
|
||||||
|
|
||||||
sif::info << "Building global objects.." << std::endl;
|
sif::info << "Building global objects.." << std::endl;
|
||||||
/* Instantiate global object manager and also create all objects */
|
/* 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;
|
sif::info << "Initializing all objects.." << std::endl;
|
||||||
objectManager->initialize();
|
ObjectManager::instance()->initialize();
|
||||||
|
|
||||||
/* This function creates and starts all tasks */
|
/* This function creates and starts all tasks */
|
||||||
initTasks();
|
initTasks();
|
||||||
@ -83,6 +85,23 @@ void initmission::initTasks() {
|
|||||||
initmission::printAddObjectError("UDP_POLLING", objects::UDP_POLLING_TASK);
|
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 */
|
/* PUS Services */
|
||||||
PeriodicTaskIF* pusVerification = factory->createPeriodicTask(
|
PeriodicTaskIF* pusVerification = factory->createPeriodicTask(
|
||||||
"PUS_VERIF", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.200, missedDeadlineFunc);
|
"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);
|
initmission::printAddObjectError("PUS_17", objects::PUS_SERVICE_17_TEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if TE0720 == 0
|
||||||
|
|
||||||
//TODO: Add handling of missed deadlines
|
//TODO: Add handling of missed deadlines
|
||||||
/* Polling Sequence Table Default */
|
/* Polling Sequence Table Default */
|
||||||
#if Q7S_ADD_SPI_TEST == 0
|
#if Q7S_ADD_SPI_TEST == 0
|
||||||
@ -147,14 +168,22 @@ void initmission::initTasks() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if TE0720 == 0
|
|
||||||
FixedTimeslotTaskIF* gomSpacePstTask = factory->
|
FixedTimeslotTaskIF* gomSpacePstTask = factory->
|
||||||
createFixedTimeslotTask("GS_PST_TASK", 50,
|
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);
|
result = pst::gomspacePstInit(gomSpacePstTask);
|
||||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||||
sif::error << "InitMission::initTasks: GomSpace PST initialization failed!" << std::endl;
|
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
|
#endif
|
||||||
|
|
||||||
#if OBSW_ADD_TEST_CODE == 1
|
#if OBSW_ADD_TEST_CODE == 1
|
||||||
@ -184,12 +213,11 @@ void initmission::initTasks() {
|
|||||||
udpBridgeTask->startTask();
|
udpBridgeTask->startTask();
|
||||||
udpPollingTask->startTask();
|
udpPollingTask->startTask();
|
||||||
|
|
||||||
#if TE0720 == 0
|
#if TE0720 == 0 && Q7S_ADD_SPI_TEST == 0
|
||||||
gomSpacePstTask->startTask();
|
gomSpacePstTask->startTask();
|
||||||
#endif
|
|
||||||
|
|
||||||
#if Q7S_ADD_SPI_TEST == 0
|
|
||||||
pollingSequenceTableTaskDefault->startTask();
|
pollingSequenceTableTaskDefault->startTask();
|
||||||
|
#elif TE0720 == 1 && Q7S_ADD_SPI_TEST == 0
|
||||||
|
pollingSequenceTaskTE0720->startTask();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pusVerification->startTask();
|
pusVerification->startTask();
|
||||||
@ -198,8 +226,14 @@ void initmission::initTasks() {
|
|||||||
pusMedPrio->startTask();
|
pusMedPrio->startTask();
|
||||||
pusLowPrio->startTask();
|
pusLowPrio->startTask();
|
||||||
|
|
||||||
|
errorReporterTestTask->startTask();
|
||||||
|
|
||||||
#if OBSW_ADD_TEST_CODE == 1
|
#if OBSW_ADD_TEST_CODE == 1
|
||||||
testTask->startTask();
|
testTask->startTask();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if TEST_CCSDS_BRIDGE == 1
|
||||||
|
ptmeTestTask->startTask();
|
||||||
|
#endif
|
||||||
sif::info << "Tasks started.." << std::endl;
|
sif::info << "Tasks started.." << std::endl;
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,21 @@
|
|||||||
#include "ObjectFactory.h"
|
#include "ObjectFactory.h"
|
||||||
#include <OBSWConfig.h>
|
#include "OBSWConfig.h"
|
||||||
#include <tmtc/apid.h>
|
#include "tmtc/apid.h"
|
||||||
#include <devices/addresses.h>
|
#include "devices/addresses.h"
|
||||||
#include <devices/gpioIds.h>
|
#include "devices/gpioIds.h"
|
||||||
#include <tmtc/pusIds.h>
|
#include "tmtc/pusIds.h"
|
||||||
#include <devices/powerSwitcherList.h>
|
#include "devices/powerSwitcherList.h"
|
||||||
#include <devices/spi.h>
|
#include "spiConf.h"
|
||||||
|
|
||||||
#include <bsp_q7s/devices/HeaterHandler.h>
|
#include "bsp_q7s/gpio/gpioCallbacks.h"
|
||||||
#include <bsp_q7s/devices/SolarArrayDeploymentHandler.h>
|
#include "bsp_q7s/core/CoreController.h"
|
||||||
#include <bsp_q7s/gpio/gpioCallbacks.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/core/GenericFactory.h>
|
||||||
#include <mission/devices/PDU1Handler.h>
|
#include <mission/devices/PDU1Handler.h>
|
||||||
@ -20,22 +26,22 @@
|
|||||||
#include <mission/devices/Tmp1075Handler.h>
|
#include <mission/devices/Tmp1075Handler.h>
|
||||||
#include <mission/devices/Max31865PT1000Handler.h>
|
#include <mission/devices/Max31865PT1000Handler.h>
|
||||||
#include <mission/devices/IMTQHandler.h>
|
#include <mission/devices/IMTQHandler.h>
|
||||||
#include <mission/devices/devicedefinitions/Max31865Definitions.h>
|
|
||||||
#include <mission/devices/SyrlinksHkHandler.h>
|
#include <mission/devices/SyrlinksHkHandler.h>
|
||||||
#include <mission/devices/MGMHandlerLIS3MDL.h>
|
#include <mission/devices/MGMHandlerLIS3MDL.h>
|
||||||
#include <mission/devices/MGMHandlerRM3100.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/GomspaceDefinitions.h>
|
||||||
#include <mission/devices/devicedefinitions/SyrlinksDefinitions.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 <mission/utility/TmFunnel.h>
|
||||||
|
#include <linux/obc/CCSDSIPCoreBridge.h>
|
||||||
|
|
||||||
#include <linux/csp/CspCookie.h>
|
#include "fsfw_hal/linux/uart/UartComIF.h"
|
||||||
#include <linux/csp/CspComIF.h>
|
#include "fsfw_hal/linux/uart/UartCookie.h"
|
||||||
|
#include "fsfw_hal/devicehandlers/GyroL3GD20Handler.h"
|
||||||
#include <linux/uart/UartComIF.h>
|
|
||||||
#include <linux/uart/UartCookie.h>
|
|
||||||
|
|
||||||
#include <fsfw_hal/linux/i2c/I2cCookie.h>
|
#include <fsfw_hal/linux/i2c/I2cCookie.h>
|
||||||
#include <fsfw_hal/linux/i2c/I2cComIF.h>
|
#include <fsfw_hal/linux/i2c/I2cComIF.h>
|
||||||
#include <fsfw_hal/linux/spi/SpiCookie.h>
|
#include <fsfw_hal/linux/spi/SpiCookie.h>
|
||||||
@ -46,7 +52,7 @@
|
|||||||
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
|
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
|
||||||
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
||||||
#include <fsfw/tmtcservices/PusServiceBase.h>
|
#include <fsfw/tmtcservices/PusServiceBase.h>
|
||||||
#include <fsfw/tmtcpacket/pus/TmPacketStored.h>
|
#include <fsfw/tmtcpacket/pus/tm.h>
|
||||||
|
|
||||||
/* UDP server includes */
|
/* UDP server includes */
|
||||||
#include <fsfw/osal/common/UdpTmTcBridge.h>
|
#include <fsfw/osal/common/UdpTmTcBridge.h>
|
||||||
@ -76,9 +82,20 @@ void Factory::setStaticFrameworkObjectIds() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ObjectFactory::produce(){
|
void ObjectFactory::produce(void* args){
|
||||||
Factory::setStaticFrameworkObjectIds();
|
Factory::setStaticFrameworkObjectIds();
|
||||||
ObjectFactory::produceGenericObjects();
|
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
|
#if TE0720 == 1
|
||||||
I2cCookie* i2cCookieTmp1075tcs1 = new I2cCookie(addresses::TMP1075_TCS_1,
|
I2cCookie* i2cCookieTmp1075tcs1 = new I2cCookie(addresses::TMP1075_TCS_1,
|
||||||
@ -91,27 +108,16 @@ void ObjectFactory::produce(){
|
|||||||
I2cCookie* i2cCookieTmp1075tcs2 = new I2cCookie(addresses::TMP1075_TCS_2,
|
I2cCookie* i2cCookieTmp1075tcs2 = new I2cCookie(addresses::TMP1075_TCS_2,
|
||||||
TMP1075::MAX_REPLY_LENGTH, std::string("/dev/i2c-1"));
|
TMP1075::MAX_REPLY_LENGTH, std::string("/dev/i2c-1"));
|
||||||
#endif
|
#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 */
|
/* Temperature sensors */
|
||||||
Tmp1075Handler* tmp1075Handler_1 = new Tmp1075Handler(
|
Tmp1075Handler* tmp1075Handler_1 = new Tmp1075Handler(
|
||||||
objects::TMP1075_HANDLER_1, objects::I2C_COM_IF,
|
objects::TMP1075_HANDLER_1, objects::I2C_COM_IF,
|
||||||
i2cCookieTmp1075tcs1);
|
i2cCookieTmp1075tcs1);
|
||||||
tmp1075Handler_1->setStartUpImmediately();
|
(void) tmp1075Handler_1;
|
||||||
Tmp1075Handler* tmp1075Handler_2 = new Tmp1075Handler(
|
Tmp1075Handler* tmp1075Handler_2 = new Tmp1075Handler(
|
||||||
objects::TMP1075_HANDLER_2, objects::I2C_COM_IF,
|
objects::TMP1075_HANDLER_2, objects::I2C_COM_IF,
|
||||||
i2cCookieTmp1075tcs2);
|
i2cCookieTmp1075tcs2);
|
||||||
tmp1075Handler_2->setStartUpImmediately();
|
(void) tmp1075Handler_2;
|
||||||
|
|
||||||
GpioCookie* heaterGpiosCookie = new GpioCookie;
|
|
||||||
|
|
||||||
#if TE0720 == 0
|
#if TE0720 == 0
|
||||||
CspCookie* p60DockCspCookie = new CspCookie(P60Dock::MAX_REPLY_LENGTH,
|
CspCookie* p60DockCspCookie = new CspCookie(P60Dock::MAX_REPLY_LENGTH,
|
||||||
@ -147,16 +153,127 @@ void ObjectFactory::produce(){
|
|||||||
(void) pdu2handler;
|
(void) pdu2handler;
|
||||||
(void) acuhandler;
|
(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
|
#if OBSW_ADD_ACS_BOARD == 1
|
||||||
GpioCookie* gpioCookieAcsBoard = new GpioCookie();
|
GpioCookie* gpioCookieAcsBoard = new GpioCookie();
|
||||||
GpiodRegular* gpio = nullptr;
|
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);
|
gpio::OUT, gpio::HIGH);
|
||||||
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_0_ADIS_CS, gpio);
|
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);
|
gpio::OUT, gpio::HIGH);
|
||||||
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_1_L3G_CS, gpio);
|
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);
|
gpio::OUT, gpio::HIGH);
|
||||||
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_2_L3G_CS, gpio);
|
gpioCookieAcsBoard->addGpio(gpioIds::GYRO_2_L3G_CS, gpio);
|
||||||
|
|
||||||
@ -164,7 +281,7 @@ void ObjectFactory::produce(){
|
|||||||
gpio::OUT, gpio::HIGH);
|
gpio::OUT, gpio::HIGH);
|
||||||
gpioCookieAcsBoard->addGpio(gpioIds::MGM_0_LIS3_CS, gpio);
|
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);
|
gpio::OUT, gpio::HIGH);
|
||||||
gpioCookieAcsBoard->addGpio(gpioIds::MGM_1_RM3100_CS, gpio);
|
gpioCookieAcsBoard->addGpio(gpioIds::MGM_1_RM3100_CS, gpio);
|
||||||
|
|
||||||
@ -197,13 +314,31 @@ void ObjectFactory::produce(){
|
|||||||
objects::SPI_COM_IF, spiCookie);
|
objects::SPI_COM_IF, spiCookie);
|
||||||
mgmRm3100Handler->setStartUpImmediately();
|
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,
|
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);
|
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,
|
auto gyroL3gHandler = new GyroHandlerL3GD20H(objects::GYRO_1_L3G_HANDLER, objects::SPI_COM_IF,
|
||||||
spiCookie);
|
spiCookie);
|
||||||
gyroL3gHandler->setStartUpImmediately();
|
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
|
#endif
|
||||||
|
|
||||||
|
GpioCookie* heaterGpiosCookie = new GpioCookie;
|
||||||
|
|
||||||
/* Pin H2-11 on stack connector */
|
/* Pin H2-11 on stack connector */
|
||||||
GpiodRegular* gpioConfigHeater0 = new GpiodRegular(std::string("gpiochip7"), 6,
|
GpiodRegular* gpioConfigHeater0 = new GpiodRegular(std::string("gpiochip7"), 6,
|
||||||
std::string("Heater0"), gpio::OUT, 0);
|
std::string("Heater0"), gpio::OUT, 0);
|
||||||
@ -256,8 +391,8 @@ void ObjectFactory::produce(){
|
|||||||
solarArrayDeplCookie, objects::PCDU_HANDLER, pcduSwitches::DEPLOYMENT_MECHANISM,
|
solarArrayDeplCookie, objects::PCDU_HANDLER, pcduSwitches::DEPLOYMENT_MECHANISM,
|
||||||
gpioIds::DEPLSA1, gpioIds::DEPLSA2, 1000);
|
gpioIds::DEPLSA1, gpioIds::DEPLSA2, 1000);
|
||||||
|
|
||||||
UartCookie* syrlinksUartCookie = new UartCookie(
|
UartCookie* syrlinksUartCookie = new UartCookie(objects::SYRLINKS_HK_HANDLER,
|
||||||
std::string("/dev/ttyUL0"), 38400, SYRLINKS::MAX_REPLY_SIZE);
|
std::string("/dev/ttyUL0"), UartModes::NON_CANONICAL, 38400, SYRLINKS::MAX_REPLY_SIZE);
|
||||||
syrlinksUartCookie->setParityEven();
|
syrlinksUartCookie->setParityEven();
|
||||||
|
|
||||||
SyrlinksHkHandler* syrlinksHkHandler = new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER,
|
SyrlinksHkHandler* syrlinksHkHandler = new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER,
|
||||||
@ -267,61 +402,60 @@ void ObjectFactory::produce(){
|
|||||||
#if Q7S_ADD_RTD_DEVICES == 1
|
#if Q7S_ADD_RTD_DEVICES == 1
|
||||||
GpioCookie* rtdGpioCookie = new GpioCookie;
|
GpioCookie* rtdGpioCookie = new GpioCookie;
|
||||||
|
|
||||||
gpioCallbacks::initTcsBoardDecoder(gpioComIF);
|
|
||||||
GpioCallback* gpioRtdIc3 = new GpioCallback(std::string("Chip select RTD IC3"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC3, gpioRtdIc3);
|
||||||
GpioCallback* gpioRtdIc4 = new GpioCallback(std::string("Chip select RTD IC4"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC4, gpioRtdIc4);
|
||||||
GpioCallback* gpioRtdIc5 = new GpioCallback(std::string("Chip select RTD IC5"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC5, gpioRtdIc5);
|
||||||
GpioCallback* gpioRtdIc6 = new GpioCallback(std::string("Chip select RTD IC6"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC6, gpioRtdIc6);
|
||||||
GpioCallback* gpioRtdIc7 = new GpioCallback(std::string("Chip select RTD IC7"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC7, gpioRtdIc7);
|
||||||
GpioCallback* gpioRtdIc8 = new GpioCallback(std::string("Chip select RTD IC8"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC8, gpioRtdIc8);
|
||||||
GpioCallback* gpioRtdIc9 = new GpioCallback(std::string("Chip select RTD IC9"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC9, gpioRtdIc9);
|
||||||
GpioCallback* gpioRtdIc10 = new GpioCallback(std::string("Chip select RTD IC10"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC10, gpioRtdIc10);
|
||||||
GpioCallback* gpioRtdIc11 = new GpioCallback(std::string("Chip select RTD IC11"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC11, gpioRtdIc11);
|
||||||
GpioCallback* gpioRtdIc12 = new GpioCallback(std::string("Chip select RTD IC12"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC12, gpioRtdIc12);
|
||||||
GpioCallback* gpioRtdIc13 = new GpioCallback(std::string("Chip select RTD IC13"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC13, gpioRtdIc13);
|
||||||
GpioCallback* gpioRtdIc14 = new GpioCallback(std::string("Chip select RTD IC14"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC14, gpioRtdIc14);
|
||||||
GpioCallback* gpioRtdIc15 = new GpioCallback(std::string("Chip select RTD IC15"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC15, gpioRtdIc15);
|
||||||
GpioCallback* gpioRtdIc16 = new GpioCallback(std::string("Chip select RTD IC16"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC16, gpioRtdIc16);
|
||||||
GpioCallback* gpioRtdIc17 = new GpioCallback(std::string("Chip select RTD IC17"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC17, gpioRtdIc17);
|
||||||
GpioCallback* gpioRtdIc18 = new GpioCallback(std::string("Chip select RTD IC18"), gpio::OUT, 1,
|
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);
|
rtdGpioCookie->addGpio(gpioIds::RTD_IC18, gpioRtdIc18);
|
||||||
|
|
||||||
gpioComIF->addGpios(rtdGpioCookie);
|
gpioComIF->addGpios(rtdGpioCookie);
|
||||||
|
|
||||||
SpiCookie* spiRtdIc3 = new SpiCookie(addresses::RTD_IC3, gpioIds::RTD_IC3,
|
SpiCookie* spiRtdIc3 = new SpiCookie(addresses::RTD_IC3, gpioIds::RTD_IC3,
|
||||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
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,
|
SpiCookie* spiRtdIc4 = new SpiCookie(addresses::RTD_IC4, gpioIds::RTD_IC4,
|
||||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
||||||
spi::SpiModes::MODE_1, 2000000);
|
spi::SpiModes::MODE_1, 2000000);
|
||||||
@ -357,7 +491,7 @@ void ObjectFactory::produce(){
|
|||||||
spi::SpiModes::MODE_1, 2000000);
|
spi::SpiModes::MODE_1, 2000000);
|
||||||
SpiCookie* spiRtdIc15 = new SpiCookie(addresses::RTD_IC15, gpioIds::RTD_IC15,
|
SpiCookie* spiRtdIc15 = new SpiCookie(addresses::RTD_IC15, gpioIds::RTD_IC15,
|
||||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
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,
|
SpiCookie* spiRtdIc16 = new SpiCookie(addresses::RTD_IC16, gpioIds::RTD_IC16,
|
||||||
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
std::string("/dev/spidev2.0"), Max31865Definitions::MAX_REPLY_SIZE,
|
||||||
spi::SpiModes::MODE_1, 2000000);
|
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* 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* 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);
|
Max31865PT1000Handler* rtdIc18 = new Max31865PT1000Handler(objects::RTD_IC18, objects::SPI_COM_IF, spiRtdIc18, 0);
|
||||||
// rtdIc10->setStartUpImmediately();
|
rtdIc17->setStartUpImmediately();
|
||||||
// rtdIc4->setStartUpImmediately();
|
// rtdIc4->setStartUpImmediately();
|
||||||
|
|
||||||
(void) rtdIc3;
|
(void) rtdIc3;
|
||||||
@ -401,21 +535,26 @@ void ObjectFactory::produce(){
|
|||||||
(void) rtdIc14;
|
(void) rtdIc14;
|
||||||
(void) rtdIc15;
|
(void) rtdIc15;
|
||||||
(void) rtdIc16;
|
(void) rtdIc16;
|
||||||
(void) rtdIc17;
|
// (void) rtdIc17;
|
||||||
(void) rtdIc18;
|
(void) rtdIc18;
|
||||||
|
|
||||||
#endif /* Q7S_ADD_RTD_DEVICES == 1 */
|
#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,
|
I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE,
|
||||||
std::string("/dev/i2c-0"));
|
std::string("/dev/i2c-0"));
|
||||||
IMTQHandler* imtqHandler = new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie);
|
new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie);
|
||||||
imtqHandler->setStartUpImmediately();
|
|
||||||
|
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
|
#if TE0720 == 1 && TEST_LIBGPIOD == 1
|
||||||
/* Configure MIO0 as input */
|
/* Configure MIO0 as input */
|
||||||
@ -424,13 +563,68 @@ void ObjectFactory::produce(){
|
|||||||
GpioCookie* gpioCookie = new GpioCookie;
|
GpioCookie* gpioCookie = new GpioCookie;
|
||||||
gpioCookie->addGpio(gpioIds::TEST_ID_0, gpioConfigMio0);
|
gpioCookie->addGpio(gpioIds::TEST_ID_0, gpioConfigMio0);
|
||||||
new LibgpiodTest(objects::LIBGPIOD_TEST, objects::GPIO_IF, gpioCookie);
|
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 */
|
/* Configuration for MIO0 on TE0720-03-1CFA */
|
||||||
GpiodRegular gpioConfigForDummyHeater(std::string("gpiochip0"), 0,
|
GpiodRegular* heaterGpio = new GpiodRegular(std::string("gpiochip0"), 0, std::string("MIO0"), gpio::IN, 0);
|
||||||
std::string("Heater0"), gpio::OUT, 0);
|
GpioCookie* gpioCookie = new GpioCookie;
|
||||||
heaterGpiosCookie->addGpio(gpioIds::HEATER_0, gpioConfigForDummyHeater);
|
gpioCookie->addGpio(gpioIds::HEATER_0, heaterGpio);
|
||||||
new HeaterHandler(objects::HEATER_HANDLER, objects::GPIO_IF, heaterGpiosCookie,
|
new HeaterHandler(objects::HEATER_HANDLER, objects::GPIO_IF, gpioCookie, objects::PCDU_HANDLER,
|
||||||
objects::PCDU_HANDLER, pcduSwitches::TCS_BOARD_8V_HEATER_IN);
|
pcduSwitches::TCS_BOARD_8V_HEATER_IN);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if Q7S_ADD_SPI_TEST == 1
|
#if Q7S_ADD_SPI_TEST == 1
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
namespace ObjectFactory {
|
namespace ObjectFactory {
|
||||||
void setStatics();
|
void setStatics();
|
||||||
void produce();
|
void produce(void* args);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* BSP_Q7S_OBJECTFACTORY_H_ */
|
#endif /* BSP_Q7S_OBJECTFACTORY_H_ */
|
||||||
|
@ -5,6 +5,3 @@ target_sources(${TARGET_NAME} PRIVATE
|
|||||||
target_include_directories(${TARGET_NAME} PUBLIC
|
target_include_directories(${TARGET_NAME} PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${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;
|
GpioIF* gpioComInterface;
|
||||||
|
|
||||||
void initTcsBoardDecoder(GpioIF* gpioComIF) {
|
void initSpiCsDecoder(GpioIF* gpioComIF) {
|
||||||
|
|
||||||
ReturnValue_t result;
|
ReturnValue_t result;
|
||||||
|
|
||||||
if (gpioComIF == nullptr) {
|
if (gpioComIF == nullptr) {
|
||||||
sif::debug << "initTcsBoardDecoder: Invalid gpioComIF" << std::endl;
|
sif::debug << "initSpiCsDecoder: Invalid gpioComIF" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gpioComInterface = gpioComIF;
|
gpioComInterface = gpioComIF;
|
||||||
|
|
||||||
GpioCookie* spiMuxGpios = new GpioCookie;
|
GpioCookie* spiMuxGpios = new GpioCookie;
|
||||||
/**
|
|
||||||
* Initial values of the spi mux gpios can all be set to an arbitrary value expect for spi mux
|
/** Setting mux bit 1 to low will disable IC21 on the interface board */
|
||||||
* bit 1. Setting spi mux bit 1 to high will pull all decoder outputs to high voltage level.
|
|
||||||
*/
|
|
||||||
GpiodRegular* spiMuxBit1 = new GpiodRegular(std::string("gpiochip7"), 13,
|
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);
|
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,
|
GpiodRegular* spiMuxBit2 = new GpiodRegular(std::string("gpiochip7"), 14,
|
||||||
std::string("SPI Mux Bit 2"), gpio::OUT, 0);
|
std::string("SPI Mux Bit 2"), gpio::OUT, 0);
|
||||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_2, spiMuxBit2);
|
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,
|
GpiodRegular* spiMuxBit3 = new GpiodRegular(std::string("gpiochip7"), 15,
|
||||||
std::string("SPI Mux Bit 3"), gpio::OUT, 0);
|
std::string("SPI Mux Bit 3"), gpio::OUT, 0);
|
||||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_3, spiMuxBit3);
|
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_3, spiMuxBit3);
|
||||||
|
/** The following gpios can take arbitrary initial values */
|
||||||
GpiodRegular* spiMuxBit4 = new GpiodRegular(std::string("gpiochip7"), 16,
|
GpiodRegular* spiMuxBit4 = new GpiodRegular(std::string("gpiochip7"), 16,
|
||||||
std::string("SPI Mux Bit 4"), gpio::OUT, 0);
|
std::string("SPI Mux Bit 4"), gpio::OUT, 0);
|
||||||
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_4, spiMuxBit4);
|
spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_4, spiMuxBit4);
|
||||||
@ -47,175 +48,261 @@ void initTcsBoardDecoder(GpioIF* gpioComIF) {
|
|||||||
|
|
||||||
result = gpioComInterface->addGpios(spiMuxGpios);
|
result = gpioComInterface->addGpios(spiMuxGpios);
|
||||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
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;
|
<< std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void tcsBoardDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value,
|
void spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gpioOp, int value,
|
||||||
void* args) {
|
void* args) {
|
||||||
|
|
||||||
if (gpioComInterface == nullptr) {
|
if (gpioComInterface == nullptr) {
|
||||||
sif::debug << "tcsBoardDecoderCallback: No gpioComIF specified. Call initTcsBoardDecoder "
|
sif::debug << "spiCsDecoderCallback: No gpioComIF specified. Call initSpiCsDecoder "
|
||||||
<< "to specify gpioComIF" << std::endl;
|
<< "to specify gpioComIF" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read is not supported by the callback function */
|
/* Reading is not supported by the callback function */
|
||||||
if (gpioOp == gpio::GpioOperation::READ) {
|
if (gpioOp == gpio::GpioOperation::READ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value == 1) {
|
if (value == 1) {
|
||||||
/* This will pull all 16 decoder outputs to high */
|
disableAllDecoder();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_1);
|
|
||||||
}
|
}
|
||||||
else if (value == 0) {
|
else if (value == 0) {
|
||||||
switch (gpioId) {
|
switch (gpioId) {
|
||||||
case(gpioIds::RTD_IC3): {
|
case(gpioIds::RTD_IC3): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY7();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC4): {
|
case(gpioIds::RTD_IC4): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY6();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC5): {
|
case(gpioIds::RTD_IC5): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY5();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC6): {
|
case(gpioIds::RTD_IC6): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY4();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC7): {
|
case(gpioIds::RTD_IC7): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY3();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC8): {
|
case(gpioIds::RTD_IC8): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY2();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC9): {
|
case(gpioIds::RTD_IC9): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY1();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC10): {
|
case(gpioIds::RTD_IC10): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_2);
|
selectY0();
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC11): {
|
case(gpioIds::RTD_IC11): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY7();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC12): {
|
case(gpioIds::RTD_IC12): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY6();
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC13): {
|
case(gpioIds::RTD_IC13): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY5();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC14): {
|
case(gpioIds::RTD_IC14): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY4();
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC15): {
|
case(gpioIds::RTD_IC15): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY3();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC16): {
|
case(gpioIds::RTD_IC16): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY2();
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC17): {
|
case(gpioIds::RTD_IC17): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY1();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_4);
|
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case(gpioIds::RTD_IC18): {
|
case(gpioIds::RTD_IC18): {
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_1);
|
enableDecoderTcsIc2();
|
||||||
gpioComInterface->pullHigh(gpioIds::SPI_MUX_BIT_3);
|
selectY0();
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_4);
|
break;
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_5);
|
}
|
||||||
gpioComInterface->pullLow(gpioIds::SPI_MUX_BIT_6);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
sif::debug << "tcsBoardDecoderCallback: Invalid gpioid " << gpioId << std::endl;
|
sif::debug << "spiCsDecoderCallback: Invalid gpio id " << gpioId << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
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
|
* @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
|
* @brief This function implements the decoding to multiply gpios by using the decoder
|
||||||
* chips SN74LVC138APWR on the TCS board.
|
* 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_ */
|
#endif /* LINUX_GPIO_GPIOCALLBACKS_H_ */
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "InitMission.h"
|
#include "InitMission.h"
|
||||||
#include <OBSWVersion.h>
|
#include <OBSWVersion.h>
|
||||||
#include <fsfw/tasks/TaskFactory.h>
|
#include <fsfw/tasks/TaskFactory.h>
|
||||||
|
#include "OBSWConfig.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
@ -13,7 +14,11 @@
|
|||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
std::cout << "-- EIVE OBSW --" << std::endl;
|
std::cout << "-- EIVE OBSW --" << std::endl;
|
||||||
|
#if TE0720 == 0
|
||||||
std::cout << "-- Compiled for Linux (Xiphos Q7S) --" << std::endl;
|
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 << "."
|
std::cout << "-- Software version " << SW_NAME << " v" << SW_VERSION << "."
|
||||||
<< SW_SUBVERSION << "." << SW_SUBSUBVERSION << " -- " << std::endl;
|
<< SW_SUBVERSION << "." << SW_SUBSUBVERSION << " -- " << std::endl;
|
||||||
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << 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)
|
||||||
if (${TGT_BSP} MATCHES "arm/raspberrypi")
|
if (${TGT_BSP} MATCHES "arm/raspberrypi" OR ${TGT_BSP} MATCHES "arm/beagleboneblack")
|
||||||
set(BSP_PATH "bsp_rpi")
|
set(BSP_PATH "bsp_linux_board")
|
||||||
elseif(${TGT_BSP} MATCHES "arm/q7s")
|
elseif(${TGT_BSP} MATCHES "arm/q7s")
|
||||||
set(BSP_PATH "bsp_q7s")
|
set(BSP_PATH "bsp_q7s")
|
||||||
else()
|
else()
|
||||||
|
@ -11,7 +11,6 @@ endif()
|
|||||||
|
|
||||||
# Disable compiler checks for cross-compiling.
|
# Disable compiler checks for cross-compiling.
|
||||||
if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
||||||
|
|
||||||
if(${TGT_BSP} MATCHES "arm/q7s")
|
if(${TGT_BSP} MATCHES "arm/q7s")
|
||||||
set(CMAKE_TOOLCHAIN_FILE
|
set(CMAKE_TOOLCHAIN_FILE
|
||||||
"${CMAKE_SCRIPT_PATH}/Q7SCrossCompileConfig.cmake"
|
"${CMAKE_SCRIPT_PATH}/Q7SCrossCompileConfig.cmake"
|
||||||
@ -38,7 +37,7 @@ if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
|||||||
else()
|
else()
|
||||||
message(STATUS "Setting RASPBERRY_VERSION to ${RASPBERRY_VERSION}")
|
message(STATUS "Setting RASPBERRY_VERSION to ${RASPBERRY_VERSION}")
|
||||||
set(RASPBERRY_VERSION ${RASPBERRY_VERSION} CACHE STRING "Raspberry Pi version")
|
set(RASPBERRY_VERSION ${RASPBERRY_VERSION} CACHE STRING "Raspberry Pi version")
|
||||||
set(ENV{RASPBERRY_VERSION} ${RASPBERRY_VERSION})
|
set(ENV{RASPBERRY_VERSION} ${RASPBERRY_VERSION})
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(STATUS
|
message(STATUS
|
||||||
@ -51,7 +50,14 @@ if(${OS_FSFW} STREQUAL linux AND TGT_BSP)
|
|||||||
"${CMAKE_SCRIPT_PATH}/RPiCrossCompileConfig.cmake"
|
"${CMAKE_SCRIPT_PATH}/RPiCrossCompileConfig.cmake"
|
||||||
PARENT_SCOPE
|
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!")
|
message(WARNING "Target BSP (TGT_BSP) ${TGT_BSP} unknown!")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -6,7 +6,7 @@ if(NOT DEFINED ENV{Q7S_SYSROOT})
|
|||||||
# "point to the raspbian rootfs."
|
# "point to the raspbian rootfs."
|
||||||
# )
|
# )
|
||||||
else()
|
else()
|
||||||
set(SYSROOT_PATH "$ENV{Q7S_SYSROOT}")
|
set(SYSROOT_PATH "$ENV{Q7S_SYSROOT}" CACHE PATH "Q7S root filesystem path")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED ENV{CROSS_COMPILE})
|
if(NOT DEFINED ENV{CROSS_COMPILE})
|
||||||
|
@ -25,7 +25,7 @@ if(NOT DEFINED ENV{RASPBIAN_ROOTFS})
|
|||||||
"point to the raspbian rootfs."
|
"point to the raspbian rootfs."
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(SYSROOT_PATH "$ENV{RASPBIAN_ROOTFS}")
|
set(SYSROOT_PATH "$ENV{RASPBIAN_ROOTFS}" CACHE FILEPATH "RPi root filesystem path")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED ENV{CROSS_COMPILE})
|
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
|
fi
|
||||||
|
|
||||||
build_generator=""
|
build_generator=""
|
||||||
build_dir="Debug-Host"
|
build_dir="build-Debug-Host"
|
||||||
os_fsfw="host"
|
os_fsfw="host"
|
||||||
if [ "${OS}" = "Windows_NT" ]; then
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
build_generator="MinGW Makefiles"
|
build_generator="MinGW Makefiles"
|
||||||
|
@ -16,7 +16,7 @@ fi
|
|||||||
|
|
||||||
build_generator="Unix Makefiles"
|
build_generator="Unix Makefiles"
|
||||||
os_fsfw="linux"
|
os_fsfw="linux"
|
||||||
builddir="Debug-Linux"
|
builddir="build-Debug-Host"
|
||||||
|
|
||||||
echo "Running command (without the leading +):"
|
echo "Running command (without the leading +):"
|
||||||
set -x # Print command
|
set -x # Print command
|
||||||
|
@ -16,7 +16,7 @@ fi
|
|||||||
|
|
||||||
build_generator="Unix Makefiles"
|
build_generator="Unix Makefiles"
|
||||||
os_fsfw="linux"
|
os_fsfw="linux"
|
||||||
builddir="Release-Linux"
|
builddir="build-Release-Host"
|
||||||
|
|
||||||
echo "Running command (without the leading +):"
|
echo "Running command (without the leading +):"
|
||||||
set -x # Print command
|
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"
|
os_fsfw="linux"
|
||||||
tgt_bsp="arm/q7s"
|
tgt_bsp="arm/q7s"
|
||||||
|
build_dir="build-Debug-Q7S"
|
||||||
build_generator=""
|
build_generator=""
|
||||||
if [ "${OS}" = "Windows_NT" ]; then
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
build_generator="MinGW Makefiles"
|
build_generator="MinGW Makefiles"
|
||||||
@ -24,4 +25,5 @@ else
|
|||||||
build_generator="Unix Makefiles"
|
build_generator="Unix Makefiles"
|
||||||
fi
|
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"
|
os_fsfw="linux"
|
||||||
tgt_bsp="arm/q7s"
|
tgt_bsp="arm/q7s"
|
||||||
|
build_dir="build-Release-Q7S"
|
||||||
build_generator=""
|
build_generator=""
|
||||||
if [ "${OS}" = "Windows_NT" ]; then
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
build_generator="MinGW Makefiles"
|
build_generator="MinGW Makefiles"
|
||||||
@ -24,4 +25,5 @@ else
|
|||||||
build_generator="Unix Makefiles"
|
build_generator="Unix Makefiles"
|
||||||
fi
|
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"
|
os_fsfw="linux"
|
||||||
tgt_bsp="arm/q7s"
|
tgt_bsp="arm/q7s"
|
||||||
|
build_dir="build-Release-Q7S"
|
||||||
build_generator=""
|
build_generator=""
|
||||||
if [ "${OS}" = "Windows_NT" ]; then
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
build_generator="MinGW Makefiles"
|
build_generator="MinGW Makefiles"
|
||||||
@ -24,4 +25,5 @@ else
|
|||||||
build_generator="Unix Makefiles"
|
build_generator="Unix Makefiles"
|
||||||
fi
|
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"
|
os_fsfw="linux"
|
||||||
tgt_bsp="arm/raspberrypi"
|
tgt_bsp="arm/raspberrypi"
|
||||||
build_generator=""
|
build_generator=""
|
||||||
build_dir="Debug-RPi"
|
build_dir="build-Debug-RPi"
|
||||||
if [ "${OS}" = "Windows_NT" ]; then
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
build_generator="MinGW Makefiles"
|
build_generator="MinGW Makefiles"
|
||||||
# Could be other OS but this works for now.
|
# Could be other OS but this works for now.
|
||||||
|
@ -17,7 +17,7 @@ fi
|
|||||||
os_fsfw="linux"
|
os_fsfw="linux"
|
||||||
tgt_bsp="arm/raspberrypi"
|
tgt_bsp="arm/raspberrypi"
|
||||||
build_generator=""
|
build_generator=""
|
||||||
build_dir="Release-RPi"
|
build_dir="build-Release-RPi"
|
||||||
if [ "${OS}" = "Windows_NT" ]; then
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
build_generator="MinGW Makefiles"
|
build_generator="MinGW Makefiles"
|
||||||
# Could be other OS but this works for now.
|
# Could be other OS but this works for now.
|
||||||
|
@ -18,18 +18,26 @@ def main():
|
|||||||
print("-- Python CMake build configurator utility --")
|
print("-- Python CMake build configurator utility --")
|
||||||
|
|
||||||
print("Parsing command line arguments..")
|
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"],
|
parser.add_argument("-o", "--osal", type=str, choices=["freertos", "linux", "rtems", "host"],
|
||||||
help="FSFW OSAL. Valid arguments: host, linux, rtems, freertos")
|
help="FSFW OSAL. Valid arguments: host, linux, rtems, freertos")
|
||||||
parser.add_argument("-b", "--buildtype", type=str, choices=["debug", "release", "size", "reldeb"],
|
parser.add_argument(
|
||||||
help="CMake build type. Valid arguments: debug, release, size, reldeb (Release with Debug "
|
"-b", "--buildtype", type=str, choices=["debug", "release", "size", "reldeb"],
|
||||||
"Information)", default="debug")
|
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("-l", "--builddir", type=str, help="Specify build directory.")
|
||||||
parser.add_argument("-g", "--generator", type=str, help="CMake Generator")
|
parser.add_argument("-g", "--generator", type=str, help="CMake Generator")
|
||||||
parser.add_argument("-d", "--defines",
|
parser.add_argument(
|
||||||
help="Additional custom defines passed to CMake (supply without -D prefix!)",
|
"-d", "--defines",
|
||||||
nargs="*", type=str)
|
help="Additional custom defines passed to CMake (supply without -D prefix!)",
|
||||||
parser.add_argument("-t", "--target-bsp", type=str, help="Target BSP, combination of architecture and machine")
|
nargs="*", type=str
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-t", "--target-bsp", type=str, help="Target BSP, combination of architecture and machine"
|
||||||
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@ -64,6 +72,12 @@ def main():
|
|||||||
else:
|
else:
|
||||||
cmake_target_cfg_cmd = ""
|
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
|
build_folder = cmake_build_type
|
||||||
if args.builddir is not None:
|
if args.builddir is not None:
|
||||||
build_folder = args.builddir
|
build_folder = args.builddir
|
||||||
@ -85,7 +99,8 @@ def main():
|
|||||||
os.chdir(build_folder)
|
os.chdir(build_folder)
|
||||||
|
|
||||||
cmake_command = f"cmake {generator_cmake_arg} -DOS_FSFW=\"{osal}\" " \
|
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
|
# Remove redundant spaces
|
||||||
cmake_command = ' '.join(cmake_command.split())
|
cmake_command = ' '.join(cmake_command.split())
|
||||||
print("Running CMake command: ")
|
print("Running CMake command: ")
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
const char* const SW_NAME = "eive";
|
const char* const SW_NAME = "eive";
|
||||||
|
|
||||||
#define SW_VERSION 1
|
#define SW_VERSION 1
|
||||||
#define SW_SUBVERSION 1
|
#define SW_SUBVERSION 2
|
||||||
#define SW_SUBSUBVERSION 0
|
#define SW_SUBSUBVERSION 0
|
||||||
|
|
||||||
#endif /* COMMON_CONFIG_OBSWVERSION_H_ */
|
#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_
|
#ifndef COMMON_CONFIG_SPICONF_H_
|
||||||
#define FSFWCONFIG_DEVICES_SPI_H_
|
#define COMMON_CONFIG_SPICONF_H_
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <fsfw_hal/linux/spi/spiDefinitions.h>
|
#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 uint32_t DEFAULT_L3G_SPEED = 3'900'000;
|
||||||
static constexpr spi::SpiModes DEFAULT_L3G_MODE = spi::SpiModes::MODE_3;
|
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 /* COMMON_CONFIG_SPICONF_H_ */
|
||||||
|
|
||||||
#endif /* FSFWCONFIG_DEVICES_SPI_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