Improvement for PCDU Handler #221

Merged
meierj merged 7 commits from mueller/minor-tweaks-pcdu-handler into develop 2022-04-28 17:14:10 +02:00
3 changed files with 21 additions and 15 deletions
Showing only changes of commit e5d5af68c1 - Show all commits

2
fsfw

@ -1 +1 @@
Subproject commit e949368b062e8703c35d2043ece8d7258cd2608b Subproject commit cec12c007336441ea0f5ce912c181c3f14e574ca

View File

@ -514,7 +514,6 @@ ReturnValue_t pst::pstGompaceCan(FixedTimeslotTaskIF *thisSequence) {
#if Q7S_EM != 1 #if Q7S_EM != 1
// PCDU handlers receives two messages and both must be handled // PCDU handlers receives two messages and both must be handled
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION); thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::PCDU_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::P60DOCK_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION); thisSequence->addSlot(objects::P60DOCK_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::PDU1_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION); thisSequence->addSlot(objects::PDU1_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);

View File

@ -81,19 +81,25 @@ ReturnValue_t PCDUHandler::initialize() {
void PCDUHandler::initializeSwitchStates() { void PCDUHandler::initializeSwitchStates() {
using namespace pcdu; using namespace pcdu;
try {
for (uint8_t idx = 0; idx < NUMBER_OF_SWITCHES; idx++) { for (uint8_t idx = 0; idx < NUMBER_OF_SWITCHES; idx++) {
if (idx < PDU::CHANNELS_LEN) { if (idx < PDU::CHANNELS_LEN) {
switchStates[idx] = INIT_SWITCHES_PDU1[idx]; switchStates[idx] = INIT_SWITCHES_PDU1.at(idx);
} else { } else {
switchStates[idx] = INIT_SWITCHES_PDU2[idx]; switchStates[idx] = INIT_SWITCHES_PDU2.at(idx - PDU::CHANNELS_LEN);
} }
} }
} catch (const std::out_of_range& err) {
sif::error << "PCDUHandler::initializeSwitchStates: " << err.what() << std::endl;
}
} }
void PCDUHandler::readCommandQueue() { void PCDUHandler::readCommandQueue() {
ReturnValue_t result; ReturnValue_t result = RETURN_OK;
CommandMessage command; CommandMessage command;
for (result = commandQueue->receiveMessage(&command); result == RETURN_OK;
result = commandQueue->receiveMessage(&command)) {
result = commandQueue->receiveMessage(&command); result = commandQueue->receiveMessage(&command);
if (result != RETURN_OK) { if (result != RETURN_OK) {
return; return;
@ -103,6 +109,7 @@ void PCDUHandler::readCommandQueue() {
if (result == RETURN_OK) { if (result == RETURN_OK) {
return; return;
} }
}
} }
MessageQueueId_t PCDUHandler::getCommandQueue() const { return commandQueue->getId(); } MessageQueueId_t PCDUHandler::getCommandQueue() const { return commandQueue->getId(); }