diff --git a/CMakeLists.txt b/CMakeLists.txt index 74bd0eb6..9200010b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,11 +95,17 @@ set(OBSW_ADD_SUS_BOARD_ASS set(OBSW_ADD_ACS_BOARD ${INIT_VAL} CACHE STRING "Add ACS board module") -set(OBSW_ADD_ACS_HANDLERS +set(OBSW_ADD_GPS_CTRL ${INIT_VAL} - CACHE STRING "Add ACS handlers") + CACHE STRING "Add GPS controllers") +set(OBSW_ADD_TCS_CTRL + ${INIT_VAL} + CACHE STRING "Add TCS controllers") +set(OBSW_ADD_ACS_CTRL + ${INIT_VAL} + CACHE STRING "Add ACS controller") set(OBSW_ADD_RTD_DEVICES - ${INIT_VAL} + 1 CACHE STRING "Add RTD devices") set(OBSW_ADD_RAD_SENSORS ${INIT_VAL} diff --git a/bsp_hosted/ObjectFactory.cpp b/bsp_hosted/ObjectFactory.cpp index 174a46ad..ef5d3c98 100644 --- a/bsp_hosted/ObjectFactory.cpp +++ b/bsp_hosted/ObjectFactory.cpp @@ -43,7 +43,7 @@ #include #include #include - +#include "dummies/helpers.h" #include "mission/utility/GlobalConfigHandler.h" void Factory::setStaticFrameworkObjectIds() { @@ -64,28 +64,8 @@ void ObjectFactory::produce(void* args) { Factory::setStaticFrameworkObjectIds(); ObjectFactory::produceGenericObjects(); - new ComIFDummy(objects::DUMMY_COM_IF); - ComCookieDummy* comCookieDummy = new ComCookieDummy(); - new BpxDummy(objects::BPX_BATT_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new CoreControllerDummy(objects::CORE_CONTROLLER); - new RwDummy(objects::RW1, objects::DUMMY_COM_IF, comCookieDummy); - new RwDummy(objects::RW2, objects::DUMMY_COM_IF, comCookieDummy); - new RwDummy(objects::RW3, objects::DUMMY_COM_IF, comCookieDummy); - new RwDummy(objects::RW4, objects::DUMMY_COM_IF, comCookieDummy); - new StarTrackerDummy(objects::STAR_TRACKER, objects::DUMMY_COM_IF, comCookieDummy); - new SyrlinksDummy(objects::SYRLINKS_HK_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new ImtqDummy(objects::IMTQ_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new AcuDummy(objects::ACU_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new PduDummy(objects::PDU1_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new PduDummy(objects::PDU2_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new P60DockDummy(objects::P60DOCK_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new GyroAdisDummy(objects::GYRO_0_ADIS_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new GyroL3GD20Dummy(objects::GYRO_1_L3G_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new GyroAdisDummy(objects::GYRO_2_ADIS_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new GyroL3GD20Dummy(objects::GYRO_3_L3G_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new MgmLIS3MDLDummy(objects::MGM_0_LIS3_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new MgmLIS3MDLDummy(objects::MGM_2_LIS3_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); - new PlPcduDummy(objects::PLPCDU_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + dummy::DummyCfg cfg; + dummy::createDummies(cfg); new TemperatureSensorsDummy(); new SusDummy(); new ThermalController(objects::THERMAL_CONTROLLER, objects::NO_OBJECT); diff --git a/bsp_q7s/OBSWConfig.h.in b/bsp_q7s/OBSWConfig.h.in index db73b4bc..260ccc2d 100644 --- a/bsp_q7s/OBSWConfig.h.in +++ b/bsp_q7s/OBSWConfig.h.in @@ -30,7 +30,9 @@ #define OBSW_ADD_SUN_SENSORS @OBSW_ADD_SUN_SENSORS@ #define OBSW_ADD_SUS_BOARD_ASS @OBSW_ADD_SUS_BOARD_ASS@ #define OBSW_ADD_ACS_BOARD @OBSW_ADD_ACS_BOARD@ -#define OBSW_ADD_ACS_HANDLERS @OBSW_ADD_ACS_HANDLERS@ +#define OBSW_ADD_ACS_CTRL @OBSW_ADD_ACS_CTRL@ +#define OBSW_ADD_GPS_CTRL @OBSW_ADD_GPS_CTRL@ +#define OBSW_ADD_TCS_CTRL @OBSW_ADD_TCS_CTRL@ #define OBSW_ADD_RW @OBSW_ADD_RW@ #define OBSW_ADD_RTD_DEVICES @OBSW_ADD_RTD_DEVICES@ #define OBSW_ADD_SCEX_DEVICE @OBSW_ADD_SCEX_DEVICE@ diff --git a/bsp_q7s/core/InitMission.cpp b/bsp_q7s/core/InitMission.cpp index 7587ea38..4e5efe52 100644 --- a/bsp_q7s/core/InitMission.cpp +++ b/bsp_q7s/core/InitMission.cpp @@ -140,22 +140,24 @@ void initmission::initTasks() { PeriodicTaskIF* acsTask = factory->createPeriodicTask( "ACS_TASK", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 0.4, missedDeadlineFunc); -#if OBSW_ADD_ACS_HANDLERS == 1 +#if OBSW_ADD_GPS_CTRL == 1 result = acsTask->addComponent(objects::GPS_CONTROLLER); if (result != returnvalue::OK) { initmission::printAddObjectError("GPS_CTRL", objects::GPS_CONTROLLER); } -#endif /* OBSW_ADD_ACS_HANDLERS */ +#endif /* OBSW_ADD_GPS_CTRL */ +#if OBSW_ADD_ACS_CTRL == 1 acsTask->addComponent(objects::ACS_CONTROLLER); if (result != returnvalue::OK) { initmission::printAddObjectError("ACS_CTRL", objects::ACS_CONTROLLER); } +#endif PeriodicTaskIF* sysTask = factory->createPeriodicTask( "SYS_TASK", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 0.4, missedDeadlineFunc); static_cast(sysTask); -#if OBSW_ADD_ACS_HANDLERS == 1 +#if OBSW_ADD_ACS_BOARD == 1 result = sysTask->addComponent(objects::ACS_BOARD_ASS); if (result != returnvalue::OK) { initmission::printAddObjectError("ACS_BOARD_ASS", objects::ACS_BOARD_ASS); @@ -201,8 +203,7 @@ void initmission::initTasks() { objects::RTD_14_IC17_TCS_BOARD, objects::RTD_15_IC18_IMTQ, }; - tcsTask->addComponent(objects::TCS_BOARD_ASS); - tcsTask->addComponent(objects::THERMAL_CONTROLLER); + for (const auto& rtd : rtdIds) { tcsTask->addComponent(rtd, DeviceHandlerIF::PERFORM_OPERATION); tcsTask->addComponent(rtd, DeviceHandlerIF::SEND_WRITE); @@ -210,8 +211,13 @@ void initmission::initTasks() { tcsTask->addComponent(rtd, DeviceHandlerIF::SEND_READ); tcsTask->addComponent(rtd, DeviceHandlerIF::GET_READ); } + tcsTask->addComponent(objects::TCS_BOARD_ASS); #endif /* OBSW_ADD_RTD_DEVICES */ +#if OBSW_ADD_TCS_CTRL == 1 + tcsTask->addComponent(objects::THERMAL_CONTROLLER); +#endif + #if OBSW_ADD_STAR_TRACKER == 1 PeriodicTaskIF* strHelperTask = factory->createPeriodicTask( "STR_HELPER", 20, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc); @@ -307,9 +313,7 @@ void initmission::initTasks() { strHelperTask->startTask(); #endif /* OBSW_ADD_STAR_TRACKER == 1 */ -#if OBSW_ADD_ACS_HANDLERS == 1 acsTask->startTask(); -#endif /* OBSW_ADD_ACS_HANDLERS == 1 */ sysTask->startTask(); #if OBSW_ADD_RTD_DEVICES == 1 tcsPollingTask->startTask(); diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index 37aebcc6..80dcb55e 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -332,7 +332,7 @@ void ObjectFactory::createAcsBoardComponents(LinuxLibgpioIF* gpioComIF, UartComI AcsBoardFdir* fdir = nullptr; static_cast(fdir); -#if OBSW_ADD_ACS_HANDLERS == 1 +#if OBSW_ADD_ACS_BOARD == 1 std::string spiDev = q7s::SPI_DEFAULT_DEV; SpiCookie* spiCookie = new SpiCookie(addresses::MGM_0_LIS3, gpioIds::MGM_0_LIS3_CS, MGMLIS3MDL::MAX_BUFFER_SIZE, diff --git a/bsp_q7s/em/emObjectFactory.cpp b/bsp_q7s/em/emObjectFactory.cpp index d1e9ba56..b8e83862 100644 --- a/bsp_q7s/em/emObjectFactory.cpp +++ b/bsp_q7s/em/emObjectFactory.cpp @@ -1,10 +1,12 @@ #include +#include #include "OBSWConfig.h" #include "bsp_q7s/core/CoreController.h" #include "bsp_q7s/core/ObjectFactory.h" #include "busConf.h" #include "devConf.h" +#include "dummies/helpers.h" #include "eive/objects.h" #include "fsfw_hal/linux/gpio/LinuxLibgpioIF.h" #include "linux/ObjectFactory.h" @@ -20,31 +22,34 @@ void ObjectFactory::produce(void* args) { UartComIF* uartComIF = nullptr; SpiComIF* spiMainComIF = nullptr; I2cComIF* i2cComIF = nullptr; - PowerSwitchIF* pwrSwitcher = nullptr; SpiComIF* spiRwComIF = nullptr; createCommunicationInterfaces(&gpioComIF, &uartComIF, &spiMainComIF, &i2cComIF, &spiRwComIF); - createTmpComponents(); + + // Hardware is usually not connected to EM, so we need to create dummies which replace lower + // level components. + dummy::DummyCfg dummyCfg; + dummyCfg.addCoreCtrlCfg = false; + dummy::createDummies(dummyCfg); + new CoreController(objects::CORE_CONTROLLER); gpioCallbacks::disableAllDecoder(gpioComIF); - createPcduComponents(gpioComIF, &pwrSwitcher); + PowerSwitchIF* pwrSwitcher = new DummyPowerSwitcher(objects::PCDU_HANDLER, 18, 0); + + // Regular FM code, does not work for EM if the hardware is not connected + // createPcduComponents(gpioComIF, &pwrSwitcher); + // createPlPcduComponents(gpioComIF, spiMainComIF, pwrSwitcher); + // createSyrlinksComponents(pwrSwitcher); + // createSunSensorComponents(gpioComIF, spiMainComIF, pwrSwitcher, q7s::SPI_DEFAULT_DEV); + // createRtdComponents(q7s::SPI_DEFAULT_DEV, gpioComIF, pwrSwitcher, spiMainComIF); + // createTmpComponents(); createRadSensorComponent(gpioComIF); - createSunSensorComponents(gpioComIF, spiMainComIF, pwrSwitcher, q7s::SPI_DEFAULT_DEV); #if OBSW_ADD_ACS_BOARD == 1 createAcsBoardComponents(gpioComIF, uartComIF, pwrSwitcher); #endif createHeaterComponents(gpioComIF, pwrSwitcher, healthTable); createSolarArrayDeploymentComponents(); - createPlPcduComponents(gpioComIF, spiMainComIF, pwrSwitcher); -#if OBSW_ADD_SYRLINKS == 1 -#if OBSW_Q7S_EM == 1 - createSyrlinksComponents(nullptr); -#else - createSyrlinksComponents(pwrSwitcher); -#endif /* OBSW_Q7S_EM == 1 */ -#endif /* OBSW_ADD_SYRLINKS == 1 */ - createRtdComponents(q7s::SPI_DEFAULT_DEV, gpioComIF, pwrSwitcher, spiMainComIF); createPayloadComponents(gpioComIF); #if OBSW_ADD_MGT == 1 @@ -68,4 +73,5 @@ void ObjectFactory::produce(void* args) { #endif /* OBSW_ADD_TEST_CODE == 1 */ createMiscComponents(); + createAcsController(); } diff --git a/common/config/eive/objects.h b/common/config/eive/objects.h index 8663a749..67fb36d2 100644 --- a/common/config/eive/objects.h +++ b/common/config/eive/objects.h @@ -109,6 +109,9 @@ enum commonObjects : uint32_t { SYRLINKS_HK_HANDLER = 0x445300A3, + /* 0x49 ('I') for Communication Interfaces */ + SPI_RTD_COM_IF = 0x49020006, + // 0x60 for other stuff HEATER_0_PLOC_PROC_BRD = 0x60000000, HEATER_1_PCDU_BRD = 0x60000001, diff --git a/dummies/CMakeLists.txt b/dummies/CMakeLists.txt index d855b155..4cb05289 100644 --- a/dummies/CMakeLists.txt +++ b/dummies/CMakeLists.txt @@ -16,4 +16,6 @@ target_sources( GyroL3GD20Dummy.cpp MgmLIS3MDLDummy.cpp PlPcduDummy.cpp - CoreControllerDummy.cpp) + CoreControllerDummy.cpp + helpers.cpp + MgmRm3100Dummy.cpp) diff --git a/dummies/GyroAdisDummy.cpp b/dummies/GyroAdisDummy.cpp index de4e7f91..42af6412 100644 --- a/dummies/GyroAdisDummy.cpp +++ b/dummies/GyroAdisDummy.cpp @@ -3,7 +3,7 @@ #include "mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h" GyroAdisDummy::GyroAdisDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie) - : DeviceHandlerBase(objectId, comif, comCookie) {} + : DeviceHandlerBase(objectId, comif, comCookie), dataset(this) {} GyroAdisDummy::~GyroAdisDummy() {} diff --git a/dummies/GyroAdisDummy.h b/dummies/GyroAdisDummy.h index 89f7c06e..b3aad620 100644 --- a/dummies/GyroAdisDummy.h +++ b/dummies/GyroAdisDummy.h @@ -3,6 +3,8 @@ #include +#include "mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h" + class GyroAdisDummy : public DeviceHandlerBase { public: static const DeviceCommandId_t SIMPLE_COMMAND = 1; @@ -15,6 +17,7 @@ class GyroAdisDummy : public DeviceHandlerBase { virtual ~GyroAdisDummy(); protected: + AdisGyroPrimaryDataset dataset; void doStartUp() override; void doShutDown() override; ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override; diff --git a/dummies/MgmLIS3MDLDummy.cpp b/dummies/MgmLIS3MDLDummy.cpp index ea84c4b2..7aa5fdf7 100644 --- a/dummies/MgmLIS3MDLDummy.cpp +++ b/dummies/MgmLIS3MDLDummy.cpp @@ -3,7 +3,7 @@ #include "fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h" MgmLIS3MDLDummy::MgmLIS3MDLDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie) - : DeviceHandlerBase(objectId, comif, comCookie) {} + : DeviceHandlerBase(objectId, comif, comCookie), dataset(this) {} MgmLIS3MDLDummy::~MgmLIS3MDLDummy() {} diff --git a/dummies/MgmLIS3MDLDummy.h b/dummies/MgmLIS3MDLDummy.h index 86b3e433..f63ed578 100644 --- a/dummies/MgmLIS3MDLDummy.h +++ b/dummies/MgmLIS3MDLDummy.h @@ -3,6 +3,8 @@ #include +#include "fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h" + class MgmLIS3MDLDummy : public DeviceHandlerBase { public: static const DeviceCommandId_t SIMPLE_COMMAND = 1; @@ -15,6 +17,7 @@ class MgmLIS3MDLDummy : public DeviceHandlerBase { virtual ~MgmLIS3MDLDummy(); protected: + MGMLIS3MDL::MgmPrimaryDataset dataset; void doStartUp() override; void doShutDown() override; ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override; diff --git a/dummies/MgmRm3100Dummy.cpp b/dummies/MgmRm3100Dummy.cpp new file mode 100644 index 00000000..ad97e7be --- /dev/null +++ b/dummies/MgmRm3100Dummy.cpp @@ -0,0 +1,40 @@ +#include "MgmRm3100Dummy.h" + +using namespace returnvalue; + +MgmRm3100Dummy::MgmRm3100Dummy(object_id_t objectId, object_id_t comif, CookieIF* comCookie) + : DeviceHandlerBase(objectId, comif, comCookie), dataset(this) {} + +MgmRm3100Dummy::~MgmRm3100Dummy() = default; + +void MgmRm3100Dummy::doStartUp() {} + +void MgmRm3100Dummy::doShutDown() {} + +ReturnValue_t MgmRm3100Dummy::buildNormalDeviceCommand(DeviceCommandId_t* id) { return OK; } + +ReturnValue_t MgmRm3100Dummy::buildTransitionDeviceCommand(DeviceCommandId_t* id) { return OK; } + +ReturnValue_t MgmRm3100Dummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand, + const uint8_t* commandData, + size_t commandDataLen) { + return OK; +} + +ReturnValue_t MgmRm3100Dummy::scanForReply(const uint8_t* start, size_t len, + DeviceCommandId_t* foundId, size_t* foundLen) { + return OK; +} + +ReturnValue_t MgmRm3100Dummy::interpretDeviceReply(DeviceCommandId_t id, const uint8_t* packet) { + return OK; +} + +void MgmRm3100Dummy::fillCommandAndReplyMap() {} + +uint32_t MgmRm3100Dummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 0; } + +ReturnValue_t MgmRm3100Dummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap, + LocalDataPoolManager& poolManager) { + return OK; +} diff --git a/dummies/MgmRm3100Dummy.h b/dummies/MgmRm3100Dummy.h new file mode 100644 index 00000000..857e6f69 --- /dev/null +++ b/dummies/MgmRm3100Dummy.h @@ -0,0 +1,29 @@ +#ifndef DUMMIES_MGMRM3100DUMMY_H_ +#define DUMMIES_MGMRM3100DUMMY_H_ + +#include "fsfw/devicehandlers/DeviceHandlerBase.h" +#include "fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h" + +class MgmRm3100Dummy : public DeviceHandlerBase { + public: + MgmRm3100Dummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie); + virtual ~MgmRm3100Dummy(); + + protected: + RM3100::Rm3100PrimaryDataset dataset; + void doStartUp() override; + void doShutDown() override; + ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override; + ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override; + ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData, + size_t commandDataLen) override; + ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, + size_t *foundLen) override; + ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override; + void fillCommandAndReplyMap() override; + uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override; + ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, + LocalDataPoolManager &poolManager) override; +}; + +#endif /* DUMMIES_MGMRM3100DUMMY_H_ */ diff --git a/dummies/helpers.cpp b/dummies/helpers.cpp new file mode 100644 index 00000000..8eb73250 --- /dev/null +++ b/dummies/helpers.cpp @@ -0,0 +1,67 @@ +#include "helpers.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace dummy; + +void dummy::createDummies(DummyCfg cfg) { + new ComIFDummy(objects::DUMMY_COM_IF); + ComCookieDummy* comCookieDummy = new ComCookieDummy(); + new BpxDummy(objects::BPX_BATT_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + if (cfg.addCoreCtrlCfg) { + new CoreControllerDummy(objects::CORE_CONTROLLER); + } + if (cfg.addRtdComIFDummy) { + new ComIFDummy(objects::SPI_RTD_COM_IF); + } + new RwDummy(objects::RW1, objects::DUMMY_COM_IF, comCookieDummy); + new RwDummy(objects::RW2, objects::DUMMY_COM_IF, comCookieDummy); + new RwDummy(objects::RW3, objects::DUMMY_COM_IF, comCookieDummy); + new RwDummy(objects::RW4, objects::DUMMY_COM_IF, comCookieDummy); + new StarTrackerDummy(objects::STAR_TRACKER, objects::DUMMY_COM_IF, comCookieDummy); + new SyrlinksDummy(objects::SYRLINKS_HK_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new ImtqDummy(objects::IMTQ_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + if (cfg.addPowerDummies) { + new AcuDummy(objects::ACU_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new PduDummy(objects::PDU1_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new PduDummy(objects::PDU2_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new P60DockDummy(objects::P60DOCK_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + } + + if (cfg.addAcsBoardDummies) { + new GyroAdisDummy(objects::GYRO_0_ADIS_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new GyroL3GD20Dummy(objects::GYRO_1_L3G_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new GyroAdisDummy(objects::GYRO_2_ADIS_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new GyroL3GD20Dummy(objects::GYRO_3_L3G_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new MgmLIS3MDLDummy(objects::MGM_0_LIS3_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new MgmLIS3MDLDummy(objects::MGM_2_LIS3_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new MgmRm3100Dummy(objects::MGM_1_RM3100_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new MgmRm3100Dummy(objects::MGM_3_RM3100_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + } + + if (cfg.addSusDummies) { + new SusDummy(); + } + + if (cfg.addTempSensorDummies) { + new TemperatureSensorsDummy(); + } + new PlPcduDummy(objects::PLPCDU_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); +} diff --git a/dummies/helpers.h b/dummies/helpers.h new file mode 100644 index 00000000..680f97c1 --- /dev/null +++ b/dummies/helpers.h @@ -0,0 +1,16 @@ +#pragma once + +namespace dummy { + +struct DummyCfg { + bool addCoreCtrlCfg = true; + bool addPowerDummies = true; + bool addAcsBoardDummies = true; + bool addSusDummies = true; + bool addTempSensorDummies = true; + bool addRtdComIFDummy = true; +}; + +void createDummies(DummyCfg cfg); + +} // namespace dummy diff --git a/generators/events/translateEvents.cpp b/generators/events/translateEvents.cpp index 95c40d66..8711750b 100644 --- a/generators/events/translateEvents.cpp +++ b/generators/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** * @brief Auto-generated event translation file. Contains 225 translations. * @details - * Generated on: 2022-10-10 10:17:44 + * Generated on: 2022-10-10 11:15:49 */ #include "translateEvents.h" diff --git a/generators/objects/translateObjects.cpp b/generators/objects/translateObjects.cpp index e2079825..910fe8fd 100644 --- a/generators/objects/translateObjects.cpp +++ b/generators/objects/translateObjects.cpp @@ -2,7 +2,7 @@ * @brief Auto-generated object translation file. * @details * Contains 138 translations. - * Generated on: 2022-10-10 10:17:44 + * Generated on: 2022-10-10 11:15:49 */ #include "translateObjects.h" diff --git a/linux/fsfwconfig/events/translateEvents.cpp b/linux/fsfwconfig/events/translateEvents.cpp index 95c40d66..8711750b 100644 --- a/linux/fsfwconfig/events/translateEvents.cpp +++ b/linux/fsfwconfig/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** * @brief Auto-generated event translation file. Contains 225 translations. * @details - * Generated on: 2022-10-10 10:17:44 + * Generated on: 2022-10-10 11:15:49 */ #include "translateEvents.h" diff --git a/linux/fsfwconfig/objects/systemObjectList.h b/linux/fsfwconfig/objects/systemObjectList.h index 4d230ff8..51f6b919 100644 --- a/linux/fsfwconfig/objects/systemObjectList.h +++ b/linux/fsfwconfig/objects/systemObjectList.h @@ -53,7 +53,6 @@ enum sourceObjects : uint32_t { /* Custom device handler */ SPI_RW_COM_IF = 0x49020005, - SPI_RTD_COM_IF = 0x49020006, /* 0x54 ('T') for test handlers */ TEST_TASK = 0x54694269, diff --git a/linux/fsfwconfig/objects/translateObjects.cpp b/linux/fsfwconfig/objects/translateObjects.cpp index e2079825..910fe8fd 100644 --- a/linux/fsfwconfig/objects/translateObjects.cpp +++ b/linux/fsfwconfig/objects/translateObjects.cpp @@ -2,7 +2,7 @@ * @brief Auto-generated object translation file. * @details * Contains 138 translations. - * Generated on: 2022-10-10 10:17:44 + * Generated on: 2022-10-10 11:15:49 */ #include "translateObjects.h" diff --git a/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp b/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp index 2535a10e..e11632c8 100644 --- a/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp +++ b/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp @@ -370,7 +370,7 @@ ReturnValue_t pst::pstSpi(FixedTimeslotTaskIF *thisSequence) { thisSequence->addSlot(objects::RAD_SENSOR, length * 0.8, DeviceHandlerIF::GET_READ); #endif -#if OBSW_ADD_ACS_BOARD == 1 && OBSW_ADD_ACS_HANDLERS == 1 +#if OBSW_ADD_ACS_BOARD == 1 bool enableAside = true; bool enableBside = true; if (enableAside) { @@ -436,7 +436,7 @@ ReturnValue_t pst::pstSpi(FixedTimeslotTaskIF *thisSequence) { thisSequence->addSlot(objects::GYRO_3_L3G_HANDLER, length * 0.7, DeviceHandlerIF::SEND_READ); thisSequence->addSlot(objects::GYRO_3_L3G_HANDLER, length * 0.85, DeviceHandlerIF::GET_READ); } -#endif /* OBSW_ADD_ACS_BOARD == 1 && OBSW_ADD_ACS_HANDLERS == 1 */ +#endif /* OBSW_ADD_ACS_BOARD == 1 */ return thisSequence->checkSequence(); } diff --git a/misc/eclipse/.cproject b/misc/eclipse/.cproject index 082b64f2..aaecb53e 100644 --- a/misc/eclipse/.cproject +++ b/misc/eclipse/.cproject @@ -57,7 +57,7 @@ - + @@ -119,7 +119,7 @@ - + @@ -187,7 +187,7 @@ - + @@ -255,7 +255,7 @@ - + diff --git a/mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h b/mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h index a09d2fb7..5932b756 100644 --- a/mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h +++ b/mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h @@ -113,6 +113,8 @@ class AdisGyroPrimaryDataset : public StaticLocalDataSet<8> { private: friend class GyroADIS1650XHandler; + friend class GyroAdisDummy; + /** Constructor for the data creator */ AdisGyroPrimaryDataset(HasLocalDataPoolIF* hkOwner) : StaticLocalDataSet(hkOwner, ADIS1650X::ADIS_DATASET_ID) {} diff --git a/tmtc b/tmtc index a91d40f3..f35c96ee 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit a91d40f3337a948bc061b033e194dd629fd34be1 +Subproject commit f35c96eecc893f529fe0494dd526b60d25ab669c