Compare commits
19 Commits
v0.4.0
...
nehlichp-r
Author | SHA1 | Date | |
---|---|---|---|
c9ccae25a9 | |||
d411865394 | |||
81905090b2 | |||
8a9e079790 | |||
f63ae969a7 | |||
a9ccd5e146 | |||
40c7b5e7d8 | |||
a68a3503a1 | |||
dd1f1050da | |||
75e592fc10 | |||
f12a31b710 | |||
5e0c6b2c41 | |||
438e543203 | |||
278b878525 | |||
5f59186ace | |||
45c1ba70e3 | |||
9eedbe3810 | |||
cafd8a7e52 | |||
e1d2849436 |
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -7,12 +7,6 @@
|
||||
[submodule "fsfw"]
|
||||
path = fsfw
|
||||
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw.git
|
||||
[submodule "tmtc/tmtccmd"]
|
||||
path = tmtc/deps/tmtccmd
|
||||
url = https://github.com/robamu-org/tmtccmd.git
|
||||
[submodule "tmtc/common_tmtc"]
|
||||
path = tmtc/common_tmtc
|
||||
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw-example-tmtc-common.git
|
||||
[submodule "tmtc/spacepackets"]
|
||||
path = tmtc/deps/spacepackets
|
||||
url = https://github.com/robamu-org/py-spacepackets.git
|
||||
|
32
README.md
32
README.md
@ -52,12 +52,44 @@ the host abstraction layer of the FSFW.
|
||||
This demo provides the opportunity to to test functionality of the
|
||||
FSFW on a host computer without the need of setting up external embedded hardware.
|
||||
|
||||
After cloning, make sure to clone and initialize the submodules
|
||||
|
||||
```sh
|
||||
git submodule update --init
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Quickstart
|
||||
|
||||
With a fresh activated Windows Subsystem for Linux (WSL), using `wsl --install archlinux` the following steps are sufficient to build the flight software with cmake or just:
|
||||
|
||||
´´´sh
|
||||
pacman –Syu
|
||||
pacman -S base-devel zsh git sudo cmake wget curl rustup
|
||||
rustup default nightly # Only for just
|
||||
cargo install just # Only for just
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # Only for better git integration in shell
|
||||
|
||||
cd ~
|
||||
git clone https://egit.irs.uni-stuttgart.de/fsfw/fsfw-example-hosted --recursive
|
||||
cd fsfw-example-hosted
|
||||
mkdir build # Create Build Folder
|
||||
cd build
|
||||
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DFSFW_OSAL=linux .. # Create Makefiles
|
||||
cmake --build . -j # Build Flight Software
|
||||
./fsfw-example-hosted # execute Flight software
|
||||
code .. # Open source code in Windows Visual Studio Code
|
||||
´´´
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
If you need to set up these prerequisites, you can find some more information in the dedicated
|
||||
[chapter](#prereqsetup).
|
||||
|
||||
Caution: Some assertions block the build with gcc 15 when building the `host` version. Please use `linux` as target or install gcc14.
|
||||
|
||||
1. Makefile build: make installed (bundled with MSYS2 on Windows or via [xPacks Windows Build Tools](https://xpack.github.io/windows-build-tools/install/)). Natively installed on Linux.
|
||||
2. Recommended for application code development: [Eclipse for C/C++](https://www.eclipse.org/downloads/packages/) .
|
||||
Project files and launch configuration are provided for Eclipse to ease development.
|
||||
|
@ -52,9 +52,8 @@ void ObjectFactory::produce(void* args) {
|
||||
{30, 128}, {20, 1024}, {10, 2048}};
|
||||
new PoolManager(objects::IPC_STORE, poolCfg);
|
||||
}
|
||||
TmFunnel* funnel;
|
||||
PusTmFunnel* funnel;
|
||||
CcsdsDistributor* ccsdsDistrib;
|
||||
ObjectFactory::produceGenericObjects(&funnel, &ccsdsDistrib, *tcStore, *tmStore);
|
||||
// TMTC Reception via TCP/IP socket
|
||||
#if OBSW_USE_TCP_SERVER == 0
|
||||
auto tmtcBridge = new UdpTmTcBridge(objects::TCPIP_TMTC_BRIDGE, objects::CCSDS_DISTRIBUTOR);
|
||||
@ -66,7 +65,9 @@ void ObjectFactory::produce(void* args) {
|
||||
tmtcBridge->setMaxNumberOfPacketsStored(50);
|
||||
auto tmtcServer = new TcpTmTcServer(objects::TCPIP_TMTC_POLLING_TASK, objects::TCPIP_TMTC_BRIDGE);
|
||||
sif::info << "Opening TCP TMTC server on port " << tmtcServer->getTcpPort() << std::endl;
|
||||
// TODO: Set the set of valid space packet IDs. Otherwise, parsing might fail
|
||||
#endif
|
||||
ObjectFactory::produceGenericObjects(&funnel, *tmtcBridge, &ccsdsDistrib, *tcStore, *tmStore);
|
||||
|
||||
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */
|
||||
|
||||
|
Submodule example_common updated: d959489cf3...5b2af728fd
2
fsfw
2
fsfw
Submodule fsfw updated: bdbe0cc9da...bf311757a2
24
tmtc/.idea/runConfigurations/CFDP_Test_NAK_No_Closure.xml
generated
Normal file
24
tmtc/.idea/runConfigurations/CFDP_Test_NAK_No_Closure.xml
generated
Normal file
@ -0,0 +1,24 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="CFDP Test NAK No Closure" type="PythonConfigurationType" factoryName="Python" folderName="CFDP">
|
||||
<module name="tmtc" />
|
||||
<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$/tmtcc.py" />
|
||||
<option name="PARAMETERS" value="cfdp filetest/cfdp_test.txt /tmp/hello-cpy.txt --no-closure -d 0.2" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
@ -1,5 +1,5 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="CFDP Test" type="PythonConfigurationType" factoryName="Python" folderName="CFDP">
|
||||
<configuration default="false" name="CFDP Test NAK With Closure" type="PythonConfigurationType" factoryName="Python" folderName="CFDP">
|
||||
<module name="tmtc" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
Submodule tmtc/common_tmtc updated: 73ba9f5d90...c9ae13c16f
4
tmtc/deps/.gitignore
vendored
Normal file
4
tmtc/deps/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
/*
|
||||
!/*.sh
|
||||
!/.gitignore
|
||||
|
3
tmtc/deps/install_spacepackets.sh
Executable file
3
tmtc/deps/install_spacepackets.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
git clone https://github.com/us-irs/spacepackets-py.git
|
3
tmtc/deps/install_tmtccmd.sh
Executable file
3
tmtc/deps/install_tmtccmd.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
git clone https://github.com/robamu-org/tmtccmd.git
|
Submodule tmtc/deps/spacepackets deleted from 66fa442c83
Submodule tmtc/deps/tmtccmd deleted from dc98ef09b0
@ -1 +1 @@
|
||||
tmtccmd >= 3.0.0rc1
|
||||
tmtccmd == 4.0.0a1
|
||||
|
@ -42,13 +42,15 @@ def main():
|
||||
try:
|
||||
while True:
|
||||
state = backend.periodic_op(None)
|
||||
tc_handler.cfdp_in_ccsds_wrapper.handler.fsm()
|
||||
if state.request == BackendRequest.TERMINATION_NO_ERROR:
|
||||
sys.exit(0)
|
||||
elif state.request == BackendRequest.DELAY_IDLE:
|
||||
LOGGER.info("TMTC Client in IDLE mode")
|
||||
time.sleep(3.0)
|
||||
elif state.request == BackendRequest.DELAY_LISTENER:
|
||||
if tc_handler.cfdp_done:
|
||||
if tc_handler.cfdp_done():
|
||||
LOGGER.info("CFDP transaction done, closing client")
|
||||
sys.exit(0)
|
||||
time.sleep(0.8)
|
||||
elif state.request == BackendRequest.DELAY_CUSTOM:
|
||||
|
Reference in New Issue
Block a user