bugfix in fsfw
This commit is contained in:
parent
e94ef79978
commit
22585773e7
@ -19,3 +19,15 @@ enum ServiceIds : uint8_t {
|
|||||||
PUS_SERVICE_200 = 200
|
PUS_SERVICE_200 = 200
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace common {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The APID is a 14 bit identifier which can be used to distinguish processes and applications
|
||||||
|
* on a spacecraft. For more details, see the related ECSS/CCSDS standards.
|
||||||
|
* For this example, we are going to use a constant APID
|
||||||
|
*/
|
||||||
|
static constexpr uint16_t COMMON_PUS_APID = 0xEF;
|
||||||
|
static constexpr uint16_t COMMON_CFDP_APID = 0xF0;
|
||||||
|
|
||||||
|
} // namespace common
|
||||||
|
@ -36,21 +36,8 @@
|
|||||||
#define OBSW_ADD_CONTROLLER_DEMO 1
|
#define OBSW_ADD_CONTROLLER_DEMO 1
|
||||||
#define OBSW_CONTROLLER_PRINTOUT 1
|
#define OBSW_CONTROLLER_PRINTOUT 1
|
||||||
|
|
||||||
/**
|
|
||||||
* The APID is a 14 bit identifier which can be used to distinguish processes and applications
|
|
||||||
* on a spacecraft. For more details, see the related ECSS/CCSDS standards.
|
|
||||||
* For this example, we are going to use a constant APID
|
|
||||||
*/
|
|
||||||
static const uint16_t COMMON_APID = 0xEF;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
namespace cfg {
|
|
||||||
|
|
||||||
static constexpr uint32_t OBSW_MAX_SCHEDULED_TCS = @OBSW_MAX_SCHEDULED_TCS@;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
#endif /* COMMON_COMMONCONFIG_H_ */
|
#endif /* COMMON_COMMONCONFIG_H_ */
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "OBSWConfig.h"
|
#include "OBSWConfig.h"
|
||||||
#include "common/definitions.h"
|
#include "common/definitions.h"
|
||||||
|
#include "definitions.h"
|
||||||
#include "example/test/FsfwExampleTask.h"
|
#include "example/test/FsfwExampleTask.h"
|
||||||
#include "example/test/FsfwReaderTask.h"
|
#include "example/test/FsfwReaderTask.h"
|
||||||
#include "example/utility/TmFunnel.h"
|
#include "example/utility/TmFunnel.h"
|
||||||
@ -33,9 +34,9 @@
|
|||||||
#include "fsfw_tests/integration/devices/TestEchoComIF.h"
|
#include "fsfw_tests/integration/devices/TestEchoComIF.h"
|
||||||
#include "fsfw_tests/internal/InternalUnitTester.h"
|
#include "fsfw_tests/internal/InternalUnitTester.h"
|
||||||
#include "objects/systemObjectList.h"
|
#include "objects/systemObjectList.h"
|
||||||
#include "tmtc/apid.h"
|
|
||||||
|
|
||||||
void ObjectFactory::produceGenericObjects(TmFunnel **tmFunnel, StorageManagerIF &tcStore) {
|
void ObjectFactory::produceGenericObjects(TmFunnel **tmFunnel, CcsdsDistributor **ccsdsDistrib,
|
||||||
|
StorageManagerIF &tcStore) {
|
||||||
#if OBSW_ADD_CORE_COMPONENTS == 1
|
#if OBSW_ADD_CORE_COMPONENTS == 1
|
||||||
/* Framework objects */
|
/* Framework objects */
|
||||||
new EventManager(objects::EVENT_MANAGER);
|
new EventManager(objects::EVENT_MANAGER);
|
||||||
@ -43,33 +44,36 @@ void ObjectFactory::produceGenericObjects(TmFunnel **tmFunnel, StorageManagerIF
|
|||||||
new InternalErrorReporter(objects::INTERNAL_ERROR_REPORTER);
|
new InternalErrorReporter(objects::INTERNAL_ERROR_REPORTER);
|
||||||
auto *stamperAndReader = new CdsShortTimeStamper(objects::TIME_STAMPER);
|
auto *stamperAndReader = new CdsShortTimeStamper(objects::TIME_STAMPER);
|
||||||
new VerificationReporter();
|
new VerificationReporter();
|
||||||
auto *ccsdsDistrib = new CcsdsDistributor(apid::APID, objects::CCSDS_DISTRIBUTOR);
|
*ccsdsDistrib = new CcsdsDistributor(common::COMMON_PUS_APID, objects::CCSDS_DISTRIBUTOR, &tcStore);
|
||||||
new PusDistributor(apid::APID, objects::PUS_DISTRIBUTOR, ccsdsDistrib);
|
new PusDistributor(common::COMMON_PUS_APID, objects::PUS_DISTRIBUTOR, *ccsdsDistrib);
|
||||||
*tmFunnel = new TmFunnel(*stamperAndReader, objects::TM_FUNNEL);
|
*tmFunnel = new TmFunnel(*stamperAndReader, objects::TM_FUNNEL);
|
||||||
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */
|
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */
|
||||||
|
|
||||||
/* PUS stack */
|
/* PUS stack */
|
||||||
#if OBSW_ADD_PUS_STACK == 1
|
#if OBSW_ADD_PUS_STACK == 1
|
||||||
new Service1TelecommandVerification(objects::PUS_SERVICE_1_VERIFICATION, apid::APID,
|
new Service1TelecommandVerification(objects::PUS_SERVICE_1_VERIFICATION, common::COMMON_PUS_APID,
|
||||||
pus::PUS_SERVICE_1, objects::TM_FUNNEL, 5);
|
pus::PUS_SERVICE_1, objects::TM_FUNNEL, 5);
|
||||||
new Service2DeviceAccess(objects::PUS_SERVICE_2_DEVICE_ACCESS, apid::APID, pus::PUS_SERVICE_2, 3,
|
new Service2DeviceAccess(objects::PUS_SERVICE_2_DEVICE_ACCESS, common::COMMON_PUS_APID,
|
||||||
10);
|
pus::PUS_SERVICE_2, 3, 10);
|
||||||
new Service3Housekeeping(objects::PUS_SERVICE_3_HOUSEKEEPING, apid::APID, pus::PUS_SERVICE_3);
|
new Service3Housekeeping(objects::PUS_SERVICE_3_HOUSEKEEPING, common::COMMON_PUS_APID,
|
||||||
new Service5EventReporting(
|
pus::PUS_SERVICE_3);
|
||||||
PsbParams(objects::PUS_SERVICE_5_EVENT_REPORTING, apid::APID, pus::PUS_SERVICE_5), 20, 40);
|
new Service5EventReporting(PsbParams(objects::PUS_SERVICE_5_EVENT_REPORTING,
|
||||||
new Service8FunctionManagement(objects::PUS_SERVICE_8_FUNCTION_MGMT, apid::APID,
|
common::COMMON_PUS_APID, pus::PUS_SERVICE_5),
|
||||||
|
20, 40);
|
||||||
|
new Service8FunctionManagement(objects::PUS_SERVICE_8_FUNCTION_MGMT, common::COMMON_PUS_APID,
|
||||||
pus::PUS_SERVICE_8, 3, 10);
|
pus::PUS_SERVICE_8, 3, 10);
|
||||||
new Service9TimeManagement(
|
new Service9TimeManagement(
|
||||||
PsbParams(objects::PUS_SERVICE_9_TIME_MGMT, apid::APID, pus::PUS_SERVICE_9));
|
PsbParams(objects::PUS_SERVICE_9_TIME_MGMT, common::COMMON_PUS_APID, pus::PUS_SERVICE_9));
|
||||||
new Service17Test(PsbParams(objects::PUS_SERVICE_17_TEST, apid::APID, pus::PUS_SERVICE_17));
|
new Service17Test(
|
||||||
new Service20ParameterManagement(objects::PUS_SERVICE_20_PARAMETERS, apid::APID,
|
PsbParams(objects::PUS_SERVICE_17_TEST, common::COMMON_PUS_APID, pus::PUS_SERVICE_17));
|
||||||
|
new Service20ParameterManagement(objects::PUS_SERVICE_20_PARAMETERS, common::COMMON_PUS_APID,
|
||||||
pus::PUS_SERVICE_20);
|
pus::PUS_SERVICE_20);
|
||||||
#if OBSW_ADD_CORE_COMPONENTS == 1
|
#if OBSW_ADD_CORE_COMPONENTS == 1
|
||||||
new Service11TelecommandScheduling<cfg::OBSW_MAX_SCHEDULED_TCS>(
|
new Service11TelecommandScheduling<cfg::OBSW_MAX_SCHEDULED_TCS>(
|
||||||
PsbParams(objects::PUS_SERVICE_11_TC_SCHEDULER, apid::APID, pus::PUS_SERVICE_11),
|
PsbParams(objects::PUS_SERVICE_11_TC_SCHEDULER, common::COMMON_PUS_APID, pus::PUS_SERVICE_11),
|
||||||
ccsdsDistrib);
|
*ccsdsDistrib);
|
||||||
#endif
|
#endif
|
||||||
new CService200ModeCommanding(objects::PUS_SERVICE_200_MODE_MGMT, apid::APID,
|
new CService200ModeCommanding(objects::PUS_SERVICE_200_MODE_MGMT, common::COMMON_PUS_APID,
|
||||||
pus::PUS_SERVICE_200);
|
pus::PUS_SERVICE_200);
|
||||||
#endif /* OBSW_ADD_PUS_STACK == 1 */
|
#endif /* OBSW_ADD_PUS_STACK == 1 */
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "fsfw/storagemanager/StorageManagerIF.h"
|
#include "fsfw/storagemanager/StorageManagerIF.h"
|
||||||
|
|
||||||
class TmFunnel;
|
class TmFunnel;
|
||||||
|
class CcsdsDistributor;
|
||||||
|
|
||||||
namespace ObjectFactory {
|
namespace ObjectFactory {
|
||||||
|
|
||||||
@ -13,7 +14,8 @@ namespace ObjectFactory {
|
|||||||
* @brief Produce hardware independant objects. Called by bsp specific
|
* @brief Produce hardware independant objects. Called by bsp specific
|
||||||
* object factory.
|
* object factory.
|
||||||
*/
|
*/
|
||||||
void produceGenericObjects(TmFunnel** funnel, StorageManagerIF& tcStore);
|
void produceGenericObjects(TmFunnel** funnel, CcsdsDistributor** ccsdsDistributor,
|
||||||
|
StorageManagerIF& tcStore);
|
||||||
|
|
||||||
} // namespace ObjectFactory
|
} // namespace ObjectFactory
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user