handle syrlinks overheating in COM SS
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
This commit is contained in:
parent
096253a9a3
commit
350ed59033
@ -1,5 +1,6 @@
|
|||||||
#include "ComSubsystem.h"
|
#include "ComSubsystem.h"
|
||||||
|
|
||||||
|
#include <fsfw/events/Event.h>
|
||||||
#include <fsfw/events/EventManagerIF.h>
|
#include <fsfw/events/EventManagerIF.h>
|
||||||
#include <fsfw/ipc/MutexGuard.h>
|
#include <fsfw/ipc/MutexGuard.h>
|
||||||
#include <fsfw/ipc/QueueFactory.h>
|
#include <fsfw/ipc/QueueFactory.h>
|
||||||
@ -7,6 +8,7 @@
|
|||||||
#include <linux/ipcore/PdecHandler.h>
|
#include <linux/ipcore/PdecHandler.h>
|
||||||
#include <mission/comDefs.h>
|
#include <mission/comDefs.h>
|
||||||
#include <mission/config/comCfg.h>
|
#include <mission/config/comCfg.h>
|
||||||
|
#include <mission/controller/controllerdefinitions/tcsCtrlDefs.h>
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
@ -93,7 +95,11 @@ ReturnValue_t ComSubsystem::initialize() {
|
|||||||
"listener"
|
"listener"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
}
|
||||||
|
result = manager->subscribeToEvent(eventQueue->getId(),
|
||||||
|
event::getEventId(tcsCtrl::SYRLINKS_OVERHEATING));
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
return ObjectManager::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
result = manager->subscribeToEventRange(eventQueue->getId(),
|
result = manager->subscribeToEventRange(eventQueue->getId(),
|
||||||
event::getEventId(PdecHandler::CARRIER_LOCK),
|
event::getEventId(PdecHandler::CARRIER_LOCK),
|
||||||
@ -144,6 +150,13 @@ void ComSubsystem::readEventQueue() {
|
|||||||
void ComSubsystem::handleEventMessage(EventMessage *eventMessage) {
|
void ComSubsystem::handleEventMessage(EventMessage *eventMessage) {
|
||||||
Event event = eventMessage->getEvent();
|
Event event = eventMessage->getEvent();
|
||||||
switch (event) {
|
switch (event) {
|
||||||
|
case tcsCtrl::SYRLINKS_OVERHEATING: {
|
||||||
|
// TODO: To prevent simply overwriting/cancelling on-going transitions, set flag here and
|
||||||
|
// execute transition at a later stage.
|
||||||
|
modeHelper.setForced(true);
|
||||||
|
startTransition(com::RX_ONLY, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case PdecHandler::BIT_LOCK_PDEC: {
|
case PdecHandler::BIT_LOCK_PDEC: {
|
||||||
handleBitLockEvent();
|
handleBitLockEvent();
|
||||||
break;
|
break;
|
||||||
|
@ -69,7 +69,6 @@ ReturnValue_t EiveSystem::initialize() {
|
|||||||
#endif
|
#endif
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(tcsCtrl::SYRLINKS_OVERHEATING));
|
|
||||||
manager->subscribeToEvent(eventQueue->getId(),
|
manager->subscribeToEvent(eventQueue->getId(),
|
||||||
event::getEventId(tcsCtrl::PCDU_SYSTEM_OVERHEATING));
|
event::getEventId(tcsCtrl::PCDU_SYSTEM_OVERHEATING));
|
||||||
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(tcsCtrl::OBC_OVERHEATING));
|
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(tcsCtrl::OBC_OVERHEATING));
|
||||||
@ -84,17 +83,6 @@ void EiveSystem::handleEventMessages() {
|
|||||||
switch (event.getMessageId()) {
|
switch (event.getMessageId()) {
|
||||||
case EventMessage::EVENT_MESSAGE:
|
case EventMessage::EVENT_MESSAGE:
|
||||||
switch (event.getEvent()) {
|
switch (event.getEvent()) {
|
||||||
case tcsCtrl::SYRLINKS_OVERHEATING: {
|
|
||||||
CommandMessage msg;
|
|
||||||
ModeMessage::setModeMessage(&msg, ModeMessage::CMD_MODE_COMMAND_FORCED, com::RX_ONLY,
|
|
||||||
0);
|
|
||||||
ReturnValue_t result =
|
|
||||||
commandQueue->sendMessage(childrenMap[objects::COM_SUBSYSTEM].commandQueue, &msg);
|
|
||||||
if (result != returnvalue::OK) {
|
|
||||||
sif::error << "EiveSystem: Commanding COM to RX_ONLY failed" << std::endl;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case tcsCtrl::OBC_OVERHEATING:
|
case tcsCtrl::OBC_OVERHEATING:
|
||||||
case tcsCtrl::PCDU_SYSTEM_OVERHEATING: {
|
case tcsCtrl::PCDU_SYSTEM_OVERHEATING: {
|
||||||
commandSelfToSafe();
|
commandSelfToSafe();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user