Compare commits

..

No commits in common. "main" and "v0.4.0" have entirely different histories.
main ... v0.4.0

15 changed files with 16 additions and 50 deletions

6
.gitmodules vendored
View File

@ -7,6 +7,12 @@
[submodule "fsfw"] [submodule "fsfw"]
path = fsfw path = fsfw
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw.git 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"] [submodule "tmtc/common_tmtc"]
path = tmtc/common_tmtc path = tmtc/common_tmtc
url = https://egit.irs.uni-stuttgart.de/fsfw/fsfw-example-tmtc-common.git 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

View File

@ -52,11 +52,6 @@ the host abstraction layer of the FSFW.
This demo provides the opportunity to to test functionality of the 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. 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
```
## Prerequisites ## Prerequisites

View File

@ -52,8 +52,9 @@ void ObjectFactory::produce(void* args) {
{30, 128}, {20, 1024}, {10, 2048}}; {30, 128}, {20, 1024}, {10, 2048}};
new PoolManager(objects::IPC_STORE, poolCfg); new PoolManager(objects::IPC_STORE, poolCfg);
} }
PusTmFunnel* funnel; TmFunnel* funnel;
CcsdsDistributor* ccsdsDistrib; CcsdsDistributor* ccsdsDistrib;
ObjectFactory::produceGenericObjects(&funnel, &ccsdsDistrib, *tcStore, *tmStore);
// TMTC Reception via TCP/IP socket // TMTC Reception via TCP/IP socket
#if OBSW_USE_TCP_SERVER == 0 #if OBSW_USE_TCP_SERVER == 0
auto tmtcBridge = new UdpTmTcBridge(objects::TCPIP_TMTC_BRIDGE, objects::CCSDS_DISTRIBUTOR); auto tmtcBridge = new UdpTmTcBridge(objects::TCPIP_TMTC_BRIDGE, objects::CCSDS_DISTRIBUTOR);
@ -65,9 +66,7 @@ void ObjectFactory::produce(void* args) {
tmtcBridge->setMaxNumberOfPacketsStored(50); tmtcBridge->setMaxNumberOfPacketsStored(50);
auto tmtcServer = new TcpTmTcServer(objects::TCPIP_TMTC_POLLING_TASK, objects::TCPIP_TMTC_BRIDGE); 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; 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 #endif
ObjectFactory::produceGenericObjects(&funnel, *tmtcBridge, &ccsdsDistrib, *tcStore, *tmStore);
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */ #endif /* OBSW_ADD_CORE_COMPONENTS == 1 */

@ -1 +1 @@
Subproject commit 5b2af728fdabdd8be6b802e022806f03f3d2a959 Subproject commit d959489cf39b2b1f5c51e3045d33cdcb3f597daa

2
fsfw

@ -1 +1 @@
Subproject commit bf311757a2fefd66955c9450a4377934b57be411 Subproject commit bdbe0cc9da5edcaa8b01af4f6462a2f46d4628bd

View File

@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager"> <component name="ProjectRunConfigurationManager">
<configuration default="false" name="CFDP Test NAK With Closure" type="PythonConfigurationType" factoryName="Python" folderName="CFDP"> <configuration default="false" name="CFDP Test" type="PythonConfigurationType" factoryName="Python" folderName="CFDP">
<module name="tmtc" /> <module name="tmtc" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />

View File

@ -1,24 +0,0 @@
<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 +1 @@
Subproject commit c9ae13c16f09cc2fa410b7cf7ee683b0b77e6b7b Subproject commit 73ba9f5d90a91badc765c2ae980a50b0fdc49b74

View File

@ -1,4 +0,0 @@
/*
!/*.sh
!/.gitignore

View File

@ -1,3 +0,0 @@
#!/bin/bash
git clone https://github.com/us-irs/spacepackets-py.git

View File

@ -1,3 +0,0 @@
#!/bin/bash
git clone https://github.com/robamu-org/tmtccmd.git

@ -0,0 +1 @@
Subproject commit 66fa442c837f00ce16412d5b730b9f5d7f375a16

1
tmtc/deps/tmtccmd Submodule

@ -0,0 +1 @@
Subproject commit dc98ef09b0c3b7aaaa89163bc94be59547b77cbb

View File

@ -1 +1 @@
tmtccmd == 4.0.0a1 tmtccmd >= 3.0.0rc1

View File

@ -42,15 +42,13 @@ def main():
try: try:
while True: while True:
state = backend.periodic_op(None) state = backend.periodic_op(None)
tc_handler.cfdp_in_ccsds_wrapper.handler.fsm()
if state.request == BackendRequest.TERMINATION_NO_ERROR: if state.request == BackendRequest.TERMINATION_NO_ERROR:
sys.exit(0) sys.exit(0)
elif state.request == BackendRequest.DELAY_IDLE: elif state.request == BackendRequest.DELAY_IDLE:
LOGGER.info("TMTC Client in IDLE mode") LOGGER.info("TMTC Client in IDLE mode")
time.sleep(3.0) time.sleep(3.0)
elif state.request == BackendRequest.DELAY_LISTENER: 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) sys.exit(0)
time.sleep(0.8) time.sleep(0.8)
elif state.request == BackendRequest.DELAY_CUSTOM: elif state.request == BackendRequest.DELAY_CUSTOM: