Merge pull request 'Improvement for PCDU Handler' (#221) from mueller/minor-tweaks-pcdu-handler into develop
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good

Reviewed-on: #221
Reviewed-by: Jakob.Meier <meierj@irs.uni-stuttgart.de>
This commit is contained in:
Jakob Meier 2022-04-28 17:14:09 +02:00
commit 199acec3b5
3 changed files with 12 additions and 9 deletions

View File

@ -15,6 +15,7 @@ list yields a list of all related PRs for each release.
## Changed ## Changed
- PCDU handler only called once in PST, but can handle multiple messages now
- Update rootfs base of Linux, all related OBSW changes - Update rootfs base of Linux, all related OBSW changes
- Use gpsd version 3.17 now. Includes API changes - Use gpsd version 3.17 now. Includes API changes
- Add `/usr/local/bin` to PATH. All shell scripts are there now - Add `/usr/local/bin` to PATH. All shell scripts are there now

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

@ -95,17 +95,20 @@ void PCDUHandler::initializeSwitchStates() {
} }
void PCDUHandler::readCommandQueue() { void PCDUHandler::readCommandQueue() {
ReturnValue_t result; ReturnValue_t result = RETURN_OK;
CommandMessage command; CommandMessage command;
result = commandQueue->receiveMessage(&command); for (result = commandQueue->receiveMessage(&command); result == RETURN_OK;
if (result != RETURN_OK) { result = commandQueue->receiveMessage(&command)) {
return; result = commandQueue->receiveMessage(&command);
} if (result != RETURN_OK) {
return;
}
result = poolManager.handleHousekeepingMessage(&command); result = poolManager.handleHousekeepingMessage(&command);
if (result == RETURN_OK) { if (result == RETURN_OK) {
return; return;
}
} }
} }