Some more fixes #174

Merged
meggert merged 5 commits from fdir-fix-fresh-dhb into develop 2024-04-29 11:45:29 +02:00
3 changed files with 7 additions and 5 deletions

View File

@ -11,6 +11,7 @@ FreshDeviceHandlerBase::FreshDeviceHandlerBase(DhbConfig config)
healthHelper(this, getObjectId()), healthHelper(this, getObjectId()),
paramHelper(this), paramHelper(this),
poolManager(this, nullptr), poolManager(this, nullptr),
fdirInstance(config.fdirInstance),
defaultFdirParent(config.defaultFdirParent) { defaultFdirParent(config.defaultFdirParent) {
auto mqArgs = MqArgs(config.objectId, static_cast<void*>(this)); auto mqArgs = MqArgs(config.objectId, static_cast<void*>(this));
messageQueue = QueueFactory::instance()->createMessageQueue( messageQueue = QueueFactory::instance()->createMessageQueue(
@ -30,6 +31,7 @@ FreshDeviceHandlerBase::~FreshDeviceHandlerBase() {
ReturnValue_t FreshDeviceHandlerBase::performOperation(uint8_t opCode) { ReturnValue_t FreshDeviceHandlerBase::performOperation(uint8_t opCode) {
performDeviceOperationPreQueueHandling(opCode); performDeviceOperationPreQueueHandling(opCode);
handleQueue(); handleQueue();
fdirInstance->checkForFailures();
performDeviceOperation(opCode); performDeviceOperation(opCode);
poolManager.performHkOperation(); poolManager.performHkOperation();
return returnvalue::OK; return returnvalue::OK;

View File

@ -129,7 +129,7 @@ class FreshDeviceHandlerBase : public SystemObject,
ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy, ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t* data, size_t size) override = 0; const uint8_t* data, size_t size) override = 0;
// Executable overrides. // Executable overrides.
ReturnValue_t performOperation(uint8_t opCode) override; virtual ReturnValue_t performOperation(uint8_t opCode) override;
ReturnValue_t initializeAfterTaskCreation() override; ReturnValue_t initializeAfterTaskCreation() override;
/** /**

View File

@ -110,7 +110,7 @@ void serial::setBaudrate(struct termios& options, UartBaudRate baud) {
#endif // ! __APPLE__ #endif // ! __APPLE__
default: default:
#if FSFW_CPP_OSTREAM_ENABLED == 1 #if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "UartComIF::configureBaudrate: Baudrate not supported" << std::endl; sif::warning << "serial::configureBaudrate: Baudrate not supported" << std::endl;
#endif #endif
break; break;
} }
@ -155,12 +155,11 @@ int serial::readCountersAndErrors(int serialPort, serial_icounter_struct& icount
} }
void serial::setStopbits(struct termios& options, StopBits bits) { void serial::setStopbits(struct termios& options, StopBits bits) {
// Regular case: One stop bit.
options.c_cflag &= ~CSTOPB;
if (bits == StopBits::TWO_STOP_BITS) { if (bits == StopBits::TWO_STOP_BITS) {
// Use two stop bits // Use two stop bits
options.c_cflag |= CSTOPB; options.c_cflag |= CSTOPB;
} else {
// Clear stop field, only one stop bit used in communication
options.c_cflag &= ~CSTOPB;
} }
} }
@ -169,3 +168,4 @@ void serial::flushRxBuf(int fd) { tcflush(fd, TCIFLUSH); }
void serial::flushTxBuf(int fd) { tcflush(fd, TCOFLUSH); } void serial::flushTxBuf(int fd) { tcflush(fd, TCOFLUSH); }
void serial::flushTxRxBuf(int fd) { tcflush(fd, TCIOFLUSH); } void serial::flushTxRxBuf(int fd) { tcflush(fd, TCIOFLUSH); }