COM Subsystem #358
@ -48,6 +48,7 @@
|
|||||||
#include "mission/system/objects/RwAssembly.h"
|
#include "mission/system/objects/RwAssembly.h"
|
||||||
#include "mission/system/objects/TcsBoardAssembly.h"
|
#include "mission/system/objects/TcsBoardAssembly.h"
|
||||||
#include "mission/system/tree/acsModeTree.h"
|
#include "mission/system/tree/acsModeTree.h"
|
||||||
|
#include "mission/system/tree/comModeTree.h"
|
||||||
#include "mission/system/tree/payloadModeTree.h"
|
#include "mission/system/tree/payloadModeTree.h"
|
||||||
#include "mission/system/tree/tcsModeTree.h"
|
#include "mission/system/tree/tcsModeTree.h"
|
||||||
#include "tmtc/pusIds.h"
|
#include "tmtc/pusIds.h"
|
||||||
@ -590,6 +591,7 @@ void ObjectFactory::createSyrlinksComponents(PowerSwitchIF* pwrSwitcher) {
|
|||||||
pcdu::PDU1_CH1_SYRLINKS_12V, syrlinksFdir);
|
pcdu::PDU1_CH1_SYRLINKS_12V, syrlinksFdir);
|
||||||
syrlinksHandler->setPowerSwitcher(pwrSwitcher);
|
syrlinksHandler->setPowerSwitcher(pwrSwitcher);
|
||||||
syrlinksHandler->setStartUpImmediately();
|
syrlinksHandler->setStartUpImmediately();
|
||||||
|
syrlinksHandler->connectModeTreeParent(satsystem::com::SUBSYSTEM);
|
||||||
#if OBSW_DEBUG_SYRLINKS == 1
|
#if OBSW_DEBUG_SYRLINKS == 1
|
||||||
syrlinksHandler->setDebugMode(true);
|
syrlinksHandler->setDebugMode(true);
|
||||||
#endif
|
#endif
|
||||||
@ -800,6 +802,13 @@ ReturnValue_t ObjectFactory::createCcsdsComponents(LinuxLibgpioIF* gpioComIF,
|
|||||||
vc = new VirtualChannel(ccsds::VC3, config::VC3_QUEUE_SIZE, objects::CCSDS_HANDLER);
|
vc = new VirtualChannel(ccsds::VC3, config::VC3_QUEUE_SIZE, objects::CCSDS_HANDLER);
|
||||||
(*ipCoreHandler)->addVirtualChannel(ccsds::VC3, vc);
|
(*ipCoreHandler)->addVirtualChannel(ccsds::VC3, vc);
|
||||||
|
|
||||||
|
ReturnValue_t result = (*ipCoreHandler)->connectModeTreeParent(satsystem::com::SUBSYSTEM);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
sif::error
|
||||||
|
<< "ObjectFactory::createCcsdsComponents: Connecting COM subsystem to CCSDS handler failed"
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
GpioCookie* gpioCookiePdec = new GpioCookie;
|
GpioCookie* gpioCookiePdec = new GpioCookie;
|
||||||
consumer.str("");
|
consumer.str("");
|
||||||
consumer << "0x" << std::hex << objects::PDEC_HANDLER;
|
consumer << "0x" << std::hex << objects::PDEC_HANDLER;
|
||||||
|
2
fsfw
2
fsfw
@ -1 +1 @@
|
|||||||
Subproject commit 049e3b431da51ac2069c2d48c5715bb12f3234bc
|
Subproject commit da124953351d6fc0910f2f14e92dac607c09b827
|
@ -1,5 +1,6 @@
|
|||||||
#include "CcsdsIpCoreHandler.h"
|
#include "CcsdsIpCoreHandler.h"
|
||||||
|
|
||||||
|
#include <fsfw/subsystem/helper.h>
|
||||||
#include <linux/ipcore/PdecHandler.h>
|
#include <linux/ipcore/PdecHandler.h>
|
||||||
#include <linux/ipcore/PtmeConfig.h>
|
#include <linux/ipcore/PtmeConfig.h>
|
||||||
|
|
||||||
@ -410,3 +411,15 @@ void CcsdsIpCoreHandler::disableTransmit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char* CcsdsIpCoreHandler::getName() const { return "CCSDS Handler"; }
|
const char* CcsdsIpCoreHandler::getName() const { return "CCSDS Handler"; }
|
||||||
|
|
||||||
|
const HasHealthIF* CcsdsIpCoreHandler::getOptHealthIF() const { return nullptr; }
|
||||||
|
|
||||||
|
const HasModesIF& CcsdsIpCoreHandler::getModeIF() const { return *this; }
|
||||||
|
|
||||||
|
ReturnValue_t CcsdsIpCoreHandler::connectModeTreeParent(HasModeTreeChildrenIF& parent) {
|
||||||
|
return modetree::connectModeTreeParent(parent, *this, nullptr, modeHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
ModeTreeChildIF& CcsdsIpCoreHandler::getModeTreeChildIF() { return *this; }
|
||||||
|
|
||||||
|
object_id_t CcsdsIpCoreHandler::getObjectId() const { return SystemObject::getObjectId(); }
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "fsfw/objectmanager/SystemObject.h"
|
#include "fsfw/objectmanager/SystemObject.h"
|
||||||
#include "fsfw/parameters/ParameterHelper.h"
|
#include "fsfw/parameters/ParameterHelper.h"
|
||||||
#include "fsfw/returnvalues/returnvalue.h"
|
#include "fsfw/returnvalues/returnvalue.h"
|
||||||
|
#include "fsfw/subsystem/ModeTreeConnectionIF.h"
|
||||||
#include "fsfw/tasks/ExecutableObjectIF.h"
|
#include "fsfw/tasks/ExecutableObjectIF.h"
|
||||||
#include "fsfw/timemanager/Countdown.h"
|
#include "fsfw/timemanager/Countdown.h"
|
||||||
#include "fsfw/tmtcservices/AcceptsTelecommandsIF.h"
|
#include "fsfw/tmtcservices/AcceptsTelecommandsIF.h"
|
||||||
@ -35,6 +36,8 @@
|
|||||||
*/
|
*/
|
||||||
class CcsdsIpCoreHandler : public SystemObject,
|
class CcsdsIpCoreHandler : public SystemObject,
|
||||||
public ExecutableObjectIF,
|
public ExecutableObjectIF,
|
||||||
|
public ModeTreeChildIF,
|
||||||
|
public ModeTreeConnectionIF,
|
||||||
public HasModesIF,
|
public HasModesIF,
|
||||||
public AcceptsTelemetryIF,
|
public AcceptsTelemetryIF,
|
||||||
public AcceptsTelecommandsIF,
|
public AcceptsTelecommandsIF,
|
||||||
@ -91,6 +94,11 @@ class CcsdsIpCoreHandler : public SystemObject,
|
|||||||
|
|
||||||
virtual ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
|
virtual ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
|
||||||
const uint8_t* data, size_t size);
|
const uint8_t* data, size_t size);
|
||||||
|
const HasHealthIF* getOptHealthIF() const override;
|
||||||
|
const HasModesIF& getModeIF() const override;
|
||||||
|
object_id_t getObjectId() const override;
|
||||||
|
ReturnValue_t connectModeTreeParent(HasModeTreeChildrenIF& parent) override;
|
||||||
|
ModeTreeChildIF& getModeTreeChildIF() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const uint8_t INTERFACE_ID = CLASS_ID::CCSDS_HANDLER;
|
static const uint8_t INTERFACE_ID = CLASS_ID::CCSDS_HANDLER;
|
||||||
|
Loading…
Reference in New Issue
Block a user