diff --git a/src/fsfw/devicehandlers/FreshDeviceHandlerBase.cpp b/src/fsfw/devicehandlers/FreshDeviceHandlerBase.cpp index 2b4ab27b..1aa4431c 100644 --- a/src/fsfw/devicehandlers/FreshDeviceHandlerBase.cpp +++ b/src/fsfw/devicehandlers/FreshDeviceHandlerBase.cpp @@ -11,6 +11,7 @@ FreshDeviceHandlerBase::FreshDeviceHandlerBase(DhbConfig config) healthHelper(this, getObjectId()), paramHelper(this), poolManager(this, nullptr), + fdirInstance(config.fdirInstance), defaultFdirParent(config.defaultFdirParent) { auto mqArgs = MqArgs(config.objectId, static_cast(this)); messageQueue = QueueFactory::instance()->createMessageQueue( @@ -30,6 +31,7 @@ FreshDeviceHandlerBase::~FreshDeviceHandlerBase() { ReturnValue_t FreshDeviceHandlerBase::performOperation(uint8_t opCode) { performDeviceOperationPreQueueHandling(opCode); handleQueue(); + fdirInstance->checkForFailures(); performDeviceOperation(opCode); poolManager.performHkOperation(); return returnvalue::OK; diff --git a/src/fsfw/devicehandlers/FreshDeviceHandlerBase.h b/src/fsfw/devicehandlers/FreshDeviceHandlerBase.h index c911c1dd..8f2dd24f 100644 --- a/src/fsfw/devicehandlers/FreshDeviceHandlerBase.h +++ b/src/fsfw/devicehandlers/FreshDeviceHandlerBase.h @@ -129,7 +129,7 @@ class FreshDeviceHandlerBase : public SystemObject, ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy, const uint8_t* data, size_t size) override = 0; // Executable overrides. - ReturnValue_t performOperation(uint8_t opCode) override; + virtual ReturnValue_t performOperation(uint8_t opCode) override; ReturnValue_t initializeAfterTaskCreation() override; /** diff --git a/src/fsfw_hal/linux/serial/helper.cpp b/src/fsfw_hal/linux/serial/helper.cpp index 6cf86d95..3a0dbb7a 100644 --- a/src/fsfw_hal/linux/serial/helper.cpp +++ b/src/fsfw_hal/linux/serial/helper.cpp @@ -110,7 +110,7 @@ void serial::setBaudrate(struct termios& options, UartBaudRate baud) { #endif // ! __APPLE__ default: #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 break; } @@ -155,12 +155,11 @@ int serial::readCountersAndErrors(int serialPort, serial_icounter_struct& icount } void serial::setStopbits(struct termios& options, StopBits bits) { + // Regular case: One stop bit. + options.c_cflag &= ~CSTOPB; if (bits == StopBits::TWO_STOP_BITS) { // Use two stop bits 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::flushTxRxBuf(int fd) { tcflush(fd, TCIOFLUSH); } +