EIVE upstream #29
10
CHANGELOG.md
10
CHANGELOG.md
@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
## Fixes
|
## 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.
|
- 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.
|
Also properly reset the reply size for successfull transfers and erroneous transfers.
|
||||||
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/700
|
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
|
## Added
|
||||||
|
|
||||||
|
- `UioMapper` is able to resolve symlinks now.
|
||||||
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/709
|
||||||
- Add new `UnsignedByteField` class
|
- Add new `UnsignedByteField` class
|
||||||
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/660
|
PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/660
|
||||||
|
|
||||||
## Changes
|
## 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
|
- Remove default secondary header argument for
|
||||||
`uint16_t getTcSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)` and
|
`uint16_t getTcSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)` and
|
||||||
`uint16_t getTmSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)`
|
`uint16_t getTmSpacePacketIdFromApid(uint16_t apid, bool secondaryHeaderFlag)`
|
||||||
|
@ -51,7 +51,10 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
|||||||
html_theme = "alabaster"
|
html_theme = "alabaster"
|
||||||
|
|
||||||
html_theme_options = {
|
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",
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class TmTcBridge : public AcceptsTelemetryIF,
|
|||||||
ReturnValue_t performOperation(uint8_t operationCode = 0) override;
|
ReturnValue_t performOperation(uint8_t operationCode = 0) override;
|
||||||
|
|
||||||
/** AcceptsTelemetryIF override */
|
/** AcceptsTelemetryIF override */
|
||||||
MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel = 0) const override;
|
MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel) const override;
|
||||||
|
|
||||||
/** AcceptsTelecommandsIF override */
|
/** AcceptsTelecommandsIF override */
|
||||||
uint32_t getIdentifier() const override;
|
uint32_t getIdentifier() const override;
|
||||||
|
@ -21,12 +21,12 @@ UioMapper::UioMapper(std::string uioFile, int mapNum) : mapNum(mapNum) {
|
|||||||
char* res = realpath(uioFile.c_str(), nullptr);
|
char* res = realpath(uioFile.c_str(), nullptr);
|
||||||
if (res) {
|
if (res) {
|
||||||
this->uioFile = res;
|
this->uioFile = res;
|
||||||
|
free(res);
|
||||||
} else {
|
} else {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::error << "Could not resolve real path of UIO file " << uioFile << std::endl;
|
sif::error << "Could not resolve real path of UIO file " << uioFile << std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
free(res);
|
|
||||||
} else {
|
} else {
|
||||||
this->uioFile = std::move(uioFile);
|
this->uioFile = std::move(uioFile);
|
||||||
}
|
}
|
||||||
|
@ -1,55 +0,0 @@
|
|||||||
#include <array>
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
|
||||||
|
|
||||||
#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<uint8_t, 4> 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user