diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dcc6aa2..e0b3afe1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Fixes +- Only delete health table entry in `HealthHelper` destructor if + health table was set. + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/710/files - I2C Bugfixes: Do not keep iterator as member and fix some incorrect handling with the iterator. Also properly reset the reply size for successfull transfers and erroneous transfers. PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/700 @@ -24,11 +27,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Added +- `UioMapper` is able to resolve symlinks now. + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/709 - Add new `UnsignedByteField` class PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/660 ## Changes +- `AcceptsTelemetryIF`: `getReportReceptionQueue` is const now + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/712 +- Moved some container returnvalues to dedicated header and namespace + to they can be used without template specification. + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/707 - Remove default secondary header argument for `uint16_t getTcSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)` and `uint16_t getTmSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)` diff --git a/docs/conf.py b/docs/conf.py index a4232026..dad85e61 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -51,7 +51,10 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] html_theme = "alabaster" html_theme_options = { - "extra_nav_links": {"Impressum" : "https://www.uni-stuttgart.de/impressum", "Datenschutz": "https://info.irs.uni-stuttgart.de/datenschutz/datenschutzWebmit.html"} + "extra_nav_links": { + "Impressum": "https://www.uni-stuttgart.de/impressum", + "Datenschutz": "https://info.irs.uni-stuttgart.de/datenschutz/datenschutzWebmit.html", + } } diff --git a/src/fsfw/tmtcservices/TmTcBridge.h b/src/fsfw/tmtcservices/TmTcBridge.h index e5c60bc6..f2637abd 100644 --- a/src/fsfw/tmtcservices/TmTcBridge.h +++ b/src/fsfw/tmtcservices/TmTcBridge.h @@ -65,7 +65,7 @@ class TmTcBridge : public AcceptsTelemetryIF, ReturnValue_t performOperation(uint8_t operationCode = 0) override; /** AcceptsTelemetryIF override */ - MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel = 0) const override; + MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel) const override; /** AcceptsTelecommandsIF override */ uint32_t getIdentifier() const override; diff --git a/src/fsfw_hal/linux/uio/UioMapper.cpp b/src/fsfw_hal/linux/uio/UioMapper.cpp index e34c209a..33e4fd97 100644 --- a/src/fsfw_hal/linux/uio/UioMapper.cpp +++ b/src/fsfw_hal/linux/uio/UioMapper.cpp @@ -21,12 +21,12 @@ UioMapper::UioMapper(std::string uioFile, int mapNum) : mapNum(mapNum) { char* res = realpath(uioFile.c_str(), nullptr); if (res) { this->uioFile = res; + free(res); } else { #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::error << "Could not resolve real path of UIO file " << uioFile << std::endl; #endif } - free(res); } else { this->uioFile = std::move(uioFile); } diff --git a/unittests/util/testDataWrapper.cpp b/unittests/util/testDataWrapper.cpp deleted file mode 100644 index ef381a62..00000000 --- a/unittests/util/testDataWrapper.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include - -#include "fsfw/util/dataWrapper.h" -#include "mocks/SimpleSerializable.h" - -TEST_CASE("Data Wrapper", "[util]") { - util::DataWrapper wrapper; - SECTION("State") { - REQUIRE(wrapper.isNull()); - REQUIRE(wrapper.type == util::DataTypes::NONE); - } - - SECTION("Set Raw Data") { - util::DataWrapper* instance = &wrapper; - bool deleteInst = false; - REQUIRE(wrapper.isNull()); - std::array data = {1, 2, 3, 4}; - SECTION("Setter") { wrapper.setRawData({data.data(), data.size()}); } - SECTION("Direct Construction Pair") { - instance = new util::DataWrapper(util::BufPair(data.data(), data.size())); - deleteInst = true; - } - SECTION("Direct Construction Single Args") { - instance = new util::DataWrapper(data.data(), data.size()); - deleteInst = true; - } - REQUIRE(not instance->isNull()); - REQUIRE(instance->type == util::DataTypes::RAW); - REQUIRE(instance->dataUnion.raw.data == data.data()); - REQUIRE(instance->dataUnion.raw.len == data.size()); - if (deleteInst) { - delete instance; - } - } - - SECTION("Simple Serializable") { - util::DataWrapper* instance = &wrapper; - bool deleteInst = false; - REQUIRE(instance->isNull()); - SimpleSerializable serializable; - SECTION("Setter") { wrapper.setSerializable(serializable); } - SECTION("Direct Construction") { - instance = new util::DataWrapper(serializable); - deleteInst = true; - } - - REQUIRE(not instance->isNull()); - REQUIRE(instance->type == util::DataTypes::SERIALIZABLE); - REQUIRE(instance->dataUnion.serializable == &serializable); - if (deleteInst) { - delete instance; - } - } -} \ No newline at end of file