add CFDP user base
fsfw/fsfw/pipeline/pr-development There was a failure building this commit Details

This commit is contained in:
Robin Müller 2022-08-09 15:46:42 +02:00
parent 4ee01e395b
commit dce1ebcf65
No known key found for this signature in database
GPG Key ID: 71B58F8A3CDFA9AC
18 changed files with 90 additions and 33 deletions

8
src/fsfw/cfdp.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef FSFW_CFDP_H
#define FSFW_CFDP_H
#include "cfdp/definitions.h"
#include "cfdp/handler/DestHandler.h"
#include "cfdp/handler/FaultHandlerBase.h"
#endif // FSFW_CFDP_H

View File

@ -1,8 +1,5 @@
target_sources(
${LIB_FSFW_NAME}
PRIVATE CfdpMessage.cpp CfdpDistributor.cpp CfdpSourceHandler.cpp
CfdpDestHandler.cpp FaultHandlerBase.cpp)
target_sources(${LIB_FSFW_NAME} PRIVATE CfdpMessage.cpp CfdpDistributor.cpp)
# CfdpDistributor.cpp CfdpHandler.cpp
add_subdirectory(pdu)
add_subdirectory(tlv)
add_subdirectory(handler)

View File

@ -1 +0,0 @@
#include "CfdpDestHandler.h"

View File

@ -1,15 +0,0 @@
#ifndef FSFW_CFDP_CFDPDESTHANDLER_H
#define FSFW_CFDP_CFDPDESTHANDLER_H
#include <etl/flat_map.h>
#include "fsfw/cfdp/pdu/PduConfig.h"
class CfdpDestHandler {
public:
CfdpDestHandler();
private:
};
#endif // FSFW_CFDP_CFDPDESTHANDLER_H

View File

@ -1 +0,0 @@
#include "CfdpSourceHandler.h"

View File

@ -0,0 +1,2 @@
target_sources(${LIB_FSFW_NAME} PRIVATE SourceHandler.cpp DestHandler.cpp
FaultHandlerBase.cpp UserBase.cpp)

View File

@ -0,0 +1,5 @@
#include "DestHandler.h"
#include <utility>
cfdp::DestHandler::DestHandler(LocalEntityCfg cfg) : cfg(std::move(cfg)) {}

View File

@ -0,0 +1,19 @@
#ifndef FSFW_CFDP_CFDPDESTHANDLER_H
#define FSFW_CFDP_CFDPDESTHANDLER_H
#include "fsfw/cfdp/handler/mib.h"
#include "fsfw/cfdp/pdu/PduConfig.h"
namespace cfdp {
class DestHandler {
public:
DestHandler(LocalEntityCfg cfg /*, CfdpUserBase& user, RemoteConfigTableIF& remoteConfigTable*/);
private:
LocalEntityCfg cfg;
};
} // namespace cfdp
#endif // FSFW_CFDP_CFDPDESTHANDLER_H

View File

@ -3,7 +3,7 @@
#include <etl/flat_map.h>
#include "definitions.h"
#include "fsfw/cfdp/definitions.h"
namespace cfdp {

View File

@ -0,0 +1 @@
#include "SourceHandler.h"

View File

@ -1,6 +1,6 @@
#ifndef FSFW_CFDP_CFDPSOURCEHANDLER_H
#define FSFW_CFDP_CFDPSOURCEHANDLER_H
class CfdpSourceHandler {};
class SourceHandler {};
#endif // FSFW_CFDP_CFDPSOURCEHANDLER_H

View File

@ -0,0 +1,3 @@
#include "UserBase.h"
cfdp::UserBase::UserBase(HasFileSystemIF& vfs) : vfs(vfs) {}

View File

@ -0,0 +1,18 @@
#ifndef FSFW_CFDP_USERBASE_H
#define FSFW_CFDP_USERBASE_H
#include "fsfw/memory/HasFileSystemIF.h"
namespace cfdp {
class UserBase {
public:
explicit UserBase(HasFileSystemIF& vfs);
private:
HasFileSystemIF& vfs;
};
} // namespace cfdp
#endif // FSFW_CFDP_USERBASE_H

View File

@ -1,6 +1,12 @@
#ifndef FSFW_CFDP_MIB_H
#define FSFW_CFDP_MIB_H
#include <utility>
#include "FaultHandlerBase.h"
namespace cfdp {
struct IndicationCfg {
bool eofSentIndicRequired = true;
bool eofRecvIndicRequired = true;
@ -11,8 +17,14 @@ struct IndicationCfg {
};
struct LocalEntityCfg {
cfdp::EntityId localId;
LocalEntityCfg(EntityId localId, IndicationCfg indicationCfg, FaultHandlerBase& fhBase)
: localId(std::move(localId)), indicCfg(indicationCfg), fhBase(fhBase) {}
EntityId localId;
IndicationCfg indicCfg;
FaultHandlerBase& fhBase;
};
} // namespace cfdp
#endif // FSFW_CFDP_MIB_H

View File

@ -1,3 +1,11 @@
#include <catch2/catch_test_macros.hpp>
TEST_CASE("CFDP Dest Handler", "[cfdp]") {}
#include "fsfw/cfdp.h"
TEST_CASE("CFDP Dest Handler", "[cfdp]") {
using namespace cfdp;
// auto localEntityCfg = LocalEntityCfg();
// auto destHandler = DestHandler();
SECTION("State") {}
}

View File

@ -43,12 +43,13 @@ TEST_CASE("CFDP Fault Handler", "[cfdp]") {
SECTION("Invalid Reported Code") { CHECK(not fhMock.reportFault(ConditionCode::NO_ERROR)); }
SECTION("Invalid FH code"){
CHECK(not fhMock.setFaultHandler(ConditionCode::KEEP_ALIVE_LIMIT_REACHED, FaultHandlerCodes::RESERVED));
CHECK(fhMock.getFaultHandler(ConditionCode::KEEP_ALIVE_LIMIT_REACHED, fhCode));
CHECK(fhCode == FaultHandlerCodes::IGNORE_ERROR);
CHECK(not fhMock.setFaultHandler(ConditionCode::NO_ERROR, FaultHandlerCodes::IGNORE_ERROR));
CHECK(not fhMock.getFaultHandler(ConditionCode::NO_ERROR, fhCode));
SECTION("Invalid FH code") {
CHECK(not fhMock.setFaultHandler(ConditionCode::KEEP_ALIVE_LIMIT_REACHED,
FaultHandlerCodes::RESERVED));
CHECK(fhMock.getFaultHandler(ConditionCode::KEEP_ALIVE_LIMIT_REACHED, fhCode));
CHECK(fhCode == FaultHandlerCodes::IGNORE_ERROR);
CHECK(not fhMock.setFaultHandler(ConditionCode::NO_ERROR, FaultHandlerCodes::IGNORE_ERROR));
CHECK(not fhMock.getFaultHandler(ConditionCode::NO_ERROR, fhCode));
}
SECTION("Set Other Fault Handler") {

View File

@ -4,7 +4,7 @@
#include <map>
#include <queue>
#include "fsfw/cfdp/FaultHandlerBase.h"
#include "fsfw/cfdp/handler/FaultHandlerBase.h"
class CfdpFaultHandlerMock : public cfdp::FaultHandlerBase {
public: