clang -Weverything -Wno-gnu-anonymous-struct

This commit is contained in:
Ulrich Mohr 2023-01-26 23:22:13 +01:00
parent 9589d702dd
commit bc312243df
39 changed files with 97 additions and 86 deletions

View File

@ -472,8 +472,12 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
endif() endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(FSFW_WARNING_FLAGS -Weverything -Wno-gnu-anonymous-struct)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set(COMPILER_FLAGS "/permissive-") set(COMPILER_FLAGS "/permissive-" "/Wall")
add_compile_definitions(NOMINMAX not=! and=&& or=||) add_compile_definitions(NOMINMAX not=! and=&& or=||)
endif() endif()

View File

@ -21,7 +21,7 @@ struct FileSize : public SerializeIF {
this->largeFile = isLarge; this->largeFile = isLarge;
return serialize(buffer, size, maxSize, streamEndianness); return serialize(buffer, size, maxSize, streamEndianness);
} }
using SerializeIF::serialize;
ReturnValue_t serialize(uint8_t **buffer, size_t *size, size_t maxSize, ReturnValue_t serialize(uint8_t **buffer, size_t *size, size_t maxSize,
Endianness streamEndianness) const override { Endianness streamEndianness) const override {
if (not largeFile) { if (not largeFile) {

View File

@ -53,6 +53,7 @@ class VarLenField : public SerializeIF {
#endif #endif
private: private:
using SerializeIF::deSerialize;
ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size, ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
Endianness streamEndianness) override; Endianness streamEndianness) override;

View File

@ -23,6 +23,7 @@ class EntityIdTlv : public TlvIF {
*/ */
ReturnValue_t deSerialize(cfdp::Tlv& tlv, Endianness endianness); ReturnValue_t deSerialize(cfdp::Tlv& tlv, Endianness endianness);
using SerializeIF::deSerialize;
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size, ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness) override; Endianness streamEndianness) override;

View File

@ -26,6 +26,7 @@ class FilestoreRequestTlv : public cfdp::FilestoreTlvBase {
*/ */
ReturnValue_t deSerialize(cfdp::Tlv &tlv, Endianness endianness); ReturnValue_t deSerialize(cfdp::Tlv &tlv, Endianness endianness);
using SerializeIF::deSerialize;
ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size, ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
Endianness streamEndianness) override; Endianness streamEndianness) override;

View File

@ -29,6 +29,7 @@ class FilestoreResponseTlv : public cfdp::FilestoreTlvBase {
*/ */
ReturnValue_t deSerialize(const cfdp::Tlv& tlv, Endianness endianness); ReturnValue_t deSerialize(const cfdp::Tlv& tlv, Endianness endianness);
using SerializeIF::deSerialize;
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size, ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
Endianness streamEndianness) override; Endianness streamEndianness) override;

View File

@ -364,6 +364,10 @@ class LocalDataPoolManager : public ProvidesDataPoolSubscriptionIF, public Acces
void printWarningOrError(sif::OutputTypes outputType, const char* functionName, void printWarningOrError(sif::OutputTypes outputType, const char* functionName,
ReturnValue_t errorCode = returnvalue::FAILED, ReturnValue_t errorCode = returnvalue::FAILED,
const char* errorPrint = nullptr); const char* errorPrint = nullptr);
private:
using ProvidesDataPoolSubscriptionIF::subscribeForPeriodicPacket;
using ProvidesDataPoolSubscriptionIF::subscribeForUpdatePacket;
}; };
template <class T> template <class T>

View File

@ -206,9 +206,9 @@ class DeviceHandlerBase : public DeviceHandlerIF,
Mode_t getTransitionSourceMode() const; Mode_t getTransitionSourceMode() const;
Submode_t getTransitionSourceSubMode() const; Submode_t getTransitionSourceSubMode() const;
virtual void getMode(Mode_t *mode, Submode_t *submode); virtual void getMode(Mode_t *mode, Submode_t *submode) override;
HealthState getHealth(); HealthState getHealth() override;
ReturnValue_t setHealth(HealthState health); ReturnValue_t setHealth(HealthState health) override;
virtual ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId, virtual ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId,
ParameterWrapper *parameterWrapper, ParameterWrapper *parameterWrapper,
const ParameterWrapper *newValues, const ParameterWrapper *newValues,
@ -1073,7 +1073,7 @@ class DeviceHandlerBase : public DeviceHandlerIF,
bool forceDirectTm = false); bool forceDirectTm = false);
virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode, virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode); uint32_t *msToReachTheMode) override;
virtual ReturnValue_t letChildHandleMessage(CommandMessage *message); virtual ReturnValue_t letChildHandleMessage(CommandMessage *message);

View File

@ -28,22 +28,23 @@ class EventManager : public EventManagerIF, public ExecutableObjectIF, public Sy
void setMutexTimeout(MutexIF::TimeoutType timeoutType, uint32_t timeoutMs); void setMutexTimeout(MutexIF::TimeoutType timeoutType, uint32_t timeoutMs);
MessageQueueId_t getEventReportQueue(); MessageQueueId_t getEventReportQueue() override;
ReturnValue_t registerListener(MessageQueueId_t listener, bool forwardAllButSelected = false); ReturnValue_t registerListener(MessageQueueId_t listener,
bool forwardAllButSelected = false) override;
ReturnValue_t unregisterListener(MessageQueueId_t listener) override; ReturnValue_t unregisterListener(MessageQueueId_t listener) override;
ReturnValue_t subscribeToEvent(MessageQueueId_t listener, EventId_t event); ReturnValue_t subscribeToEvent(MessageQueueId_t listener, EventId_t event) override;
ReturnValue_t subscribeToAllEventsFrom(MessageQueueId_t listener, object_id_t object); ReturnValue_t subscribeToAllEventsFrom(MessageQueueId_t listener, object_id_t object) override;
ReturnValue_t subscribeToEventRange(MessageQueueId_t listener, EventId_t idFrom = 0, ReturnValue_t subscribeToEventRange(MessageQueueId_t listener, EventId_t idFrom = 0,
EventId_t idTo = 0, bool idInverted = false, EventId_t idTo = 0, bool idInverted = false,
object_id_t reporterFrom = 0, object_id_t reporterTo = 0, object_id_t reporterFrom = 0, object_id_t reporterTo = 0,
bool reporterInverted = false); bool reporterInverted = false) override;
ReturnValue_t unsubscribeFromAllEvents(MessageQueueId_t listener, object_id_t object); ReturnValue_t unsubscribeFromAllEvents(MessageQueueId_t listener, object_id_t object) override;
ReturnValue_t unsubscribeFromEventRange(MessageQueueId_t listener, EventId_t idFrom = 0, ReturnValue_t unsubscribeFromEventRange(MessageQueueId_t listener, EventId_t idFrom = 0,
EventId_t idTo = 0, bool idInverted = false, EventId_t idTo = 0, bool idInverted = false,
object_id_t reporterFrom = 0, object_id_t reporterTo = 0, object_id_t reporterFrom = 0, object_id_t reporterTo = 0,
bool reporterInverted = false); bool reporterInverted = false) override;
ReturnValue_t performOperation(uint8_t opCode); ReturnValue_t performOperation(uint8_t opCode) override;
protected: protected:
MessageQueueIF* eventReportQueue = nullptr; MessageQueueIF* eventReportQueue = nullptr;

View File

@ -55,7 +55,7 @@ class HousekeepingSnapshot : public SerializeIF {
: timeStamp(timeStamp), timeStampSize(timeStampSize), updateData(dataSetPtr){}; : timeStamp(timeStamp), timeStampSize(timeStampSize), updateData(dataSetPtr){};
virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize, virtual ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize,
Endianness streamEndianness) const { Endianness streamEndianness) const override {
if (timeStamp != nullptr) { if (timeStamp != nullptr) {
/* Endianness will always be MACHINE, so we can simply use memcpy /* Endianness will always be MACHINE, so we can simply use memcpy
here. */ here. */
@ -70,7 +70,7 @@ class HousekeepingSnapshot : public SerializeIF {
return updateData->serialize(buffer, size, maxSize, streamEndianness); return updateData->serialize(buffer, size, maxSize, streamEndianness);
} }
virtual size_t getSerializedSize() const { virtual size_t getSerializedSize() const override {
if (updateData == nullptr) { if (updateData == nullptr) {
return 0; return 0;
} }

View File

@ -18,7 +18,7 @@ class AbsLimitMonitor : public MonitorBase<T> {
violationEvent(violationEvent), violationEvent(violationEvent),
aboveIsViolation(aboveIsViolation) {} aboveIsViolation(aboveIsViolation) {}
virtual ~AbsLimitMonitor() {} virtual ~AbsLimitMonitor() {}
virtual ReturnValue_t checkSample(T sample, T *crossedLimit) { ReturnValue_t checkSample(T sample, T *crossedLimit) override {
*crossedLimit = limit; *crossedLimit = limit;
if (aboveIsViolation) { if (aboveIsViolation) {
if ((std::abs(sample) > limit)) { if ((std::abs(sample) > limit)) {
@ -32,9 +32,9 @@ class AbsLimitMonitor : public MonitorBase<T> {
return returnvalue::OK; // We're not out of range. return returnvalue::OK; // We're not out of range.
} }
virtual ReturnValue_t getParameter(uint8_t domainId, uint16_t parameterId, ReturnValue_t getParameter(uint8_t domainId, uint8_t parameterId,
ParameterWrapper *parameterWrapper, ParameterWrapper *parameterWrapper, const ParameterWrapper *newValues,
const ParameterWrapper *newValues, uint16_t startAtIndex) { uint16_t startAtIndex) override {
ReturnValue_t result = this->MonitorBase<T>::getParameter( ReturnValue_t result = this->MonitorBase<T>::getParameter(
domainId, parameterId, parameterWrapper, newValues, startAtIndex); domainId, parameterId, parameterWrapper, newValues, startAtIndex);
// We'll reuse the DOMAIN_ID of MonitorReporter, // We'll reuse the DOMAIN_ID of MonitorReporter,
@ -61,7 +61,7 @@ class AbsLimitMonitor : public MonitorBase<T> {
void setLimit(T value) { limit = value; } void setLimit(T value) { limit = value; }
protected: protected:
void sendTransitionEvent(T currentValue, ReturnValue_t state) { void sendTransitionEvent(T currentValue, ReturnValue_t state) override {
switch (state) { switch (state) {
case MonitoringIF::OUT_OF_RANGE: case MonitoringIF::OUT_OF_RANGE:
EventManagerIF::triggerEvent(this->reportingId, violationEvent, this->globalPoolId.objectId, EventManagerIF::triggerEvent(this->reportingId, violationEvent, this->globalPoolId.objectId,

View File

@ -116,7 +116,7 @@ class TcpTmTcServer : public SystemObject, public TcpIpBase, public ExecutableOb
ReceptionModes receptionMode; ReceptionModes receptionMode;
TcpConfig tcpConfig; TcpConfig tcpConfig;
struct sockaddr tcpAddress = {}; // struct sockaddr tcpAddress = {};
socket_t listenerTcpSocket = 0; socket_t listenerTcpSocket = 0;
MessageQueueId_t targetTcDestination = MessageQueueIF::NO_QUEUE; MessageQueueId_t targetTcDestination = MessageQueueIF::NO_QUEUE;

View File

@ -45,6 +45,7 @@ class ParameterWrapper : public SerializeIF {
virtual size_t getSerializedSize() const override; virtual size_t getSerializedSize() const override;
using SerializeIF::deSerialize;
virtual ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size, virtual ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
Endianness streamEndianness) override; Endianness streamEndianness) override;

View File

@ -62,13 +62,13 @@ class Fuse : public SystemObject,
SerializeIF::Endianness streamEndianness) override; SerializeIF::Endianness streamEndianness) override;
void setAllMonitorsToUnchecked(); void setAllMonitorsToUnchecked();
ReturnValue_t performOperation(uint8_t opCode); ReturnValue_t performOperation(uint8_t opCode);
MessageQueueId_t getCommandQueue() const; MessageQueueId_t getCommandQueue() const override;
void setDataPoolEntriesInvalid(); void setDataPoolEntriesInvalid();
ReturnValue_t setHealth(HealthState health); ReturnValue_t setHealth(HealthState health) override;
HasHealthIF::HealthState getHealth(); HasHealthIF::HealthState getHealth() override;
ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId, ParameterWrapper *parameterWrapper, ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId, ParameterWrapper *parameterWrapper,
const ParameterWrapper *newValues, uint16_t startAtIndex); const ParameterWrapper *newValues, uint16_t startAtIndex) override;
private: private:
uint8_t oldFuseState; uint8_t oldFuseState;

View File

@ -10,15 +10,15 @@ class PowerComponent : public PowerComponentIF {
PowerComponent(object_id_t setId, uint8_t moduleId, float minPower, float maxPower, PowerComponent(object_id_t setId, uint8_t moduleId, float minPower, float maxPower,
uint8_t switchId1, bool twoSwitches = false, uint8_t switchId2 = 0xFF); uint8_t switchId1, bool twoSwitches = false, uint8_t switchId2 = 0xFF);
virtual object_id_t getDeviceObjectId(); object_id_t getDeviceObjectId() override;
virtual uint8_t getSwitchId1(); uint8_t getSwitchId1() override;
virtual uint8_t getSwitchId2(); uint8_t getSwitchId2() override;
bool hasTwoSwitches(); bool hasTwoSwitches() override;
float getMin(); float getMin() override;
float getMax(); float getMax() override;
ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize, ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize,
Endianness streamEndianness) const override; Endianness streamEndianness) const override;
@ -29,7 +29,7 @@ class PowerComponent : public PowerComponentIF {
Endianness streamEndianness) override; Endianness streamEndianness) override;
ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId, ParameterWrapper* parameterWrapper, ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId, ParameterWrapper* parameterWrapper,
const ParameterWrapper* newValues, uint16_t startAtIndex); const ParameterWrapper* newValues, uint16_t startAtIndex) override;
private: private:
const object_id_t deviceObjectId = objects::NO_OBJECT; const object_id_t deviceObjectId = objects::NO_OBJECT;

View File

@ -13,7 +13,7 @@ Service1TelecommandVerification::Service1TelecommandVerification(object_id_t obj
uint16_t messageQueueDepth, uint16_t messageQueueDepth,
TimeWriterIF* timeStamper) TimeWriterIF* timeStamper)
: SystemObject(objectId), : SystemObject(objectId),
apid(apid), // apid(apid),
serviceId(serviceId), serviceId(serviceId),
targetDestination(targetDestination), targetDestination(targetDestination),
storeHelper(apid), storeHelper(apid),

View File

@ -72,7 +72,7 @@ class Service1TelecommandVerification : public AcceptsVerifyMessageIF,
ReturnValue_t initialize() override; ReturnValue_t initialize() override;
private: private:
uint16_t apid = 0; // uint16_t apid = 0;
uint8_t serviceId = 0; uint8_t serviceId = 0;
object_id_t targetDestination = objects::NO_OBJECT; object_id_t targetDestination = objects::NO_OBJECT;

View File

@ -69,7 +69,7 @@ class FailureReport : public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 2, 4, 6
return result; return result;
} }
virtual size_t getSerializedSize() const { virtual size_t getSerializedSize() const override {
size_t size = 0; size_t size = 0;
size += SerializeAdapter::getSerializedSize(&packetId); size += SerializeAdapter::getSerializedSize(&packetId);
size += sizeof(packetSequenceControl); size += sizeof(packetSequenceControl);

View File

@ -109,7 +109,8 @@ ReturnValue_t LocalPool::deleteData(uint8_t* ptr, size_t size, store_address_t*
ReturnValue_t result = ILLEGAL_ADDRESS; ReturnValue_t result = ILLEGAL_ADDRESS;
for (uint16_t n = 0; n < NUMBER_OF_SUBPOOLS; n++) { for (uint16_t n = 0; n < NUMBER_OF_SUBPOOLS; n++) {
// Not sure if new allocates all stores in order. so better be careful. // Not sure if new allocates all stores in order. so better be careful.
if ((store[n].data() <= ptr) and (&store[n][numberOfElements[n] * elementSizes[n] - 1] >= ptr)) { if ((store[n].data() <= ptr) and
(&store[n][numberOfElements[n] * elementSizes[n] - 1] >= ptr)) {
localId.poolIndex = n; localId.poolIndex = n;
uint32_t deltaAddress = ptr - store[n].data(); uint32_t deltaAddress = ptr - store[n].data();
// Getting any data from the right "block" is ok. // Getting any data from the right "block" is ok.

View File

@ -585,7 +585,12 @@ void Subsystem::sendSerializablesAsCommandMessage(Command_t command, SerializeIF
return; return;
} }
for (uint8_t i = 0; i < count; i++) { for (uint8_t i = 0; i < count; i++) {
elements[i]->serialize(&storeBuffer, &size, maxSize, SerializeIF::Endianness::BIG); result = elements[i]->serialize(&storeBuffer, &size, maxSize, SerializeIF::Endianness::BIG);
if (result != returnvalue::OK) {
replyToCommand(result, 0);
IPCStore->deleteData(address);
return;
}
} }
CommandMessage reply; CommandMessage reply;
ModeSequenceMessage::setModeSequenceMessage(&reply, command, address); ModeSequenceMessage::setModeSequenceMessage(&reply, command, address);

View File

@ -9,7 +9,6 @@ class FixedTimeslotTaskBase : public FixedTimeslotTaskIF {
public: public:
explicit FixedTimeslotTaskBase(TaskPeriod period, TaskDeadlineMissedFunction dlmFunc = nullptr); explicit FixedTimeslotTaskBase(TaskPeriod period, TaskDeadlineMissedFunction dlmFunc = nullptr);
~FixedTimeslotTaskBase() override = default; ~FixedTimeslotTaskBase() override = default;
;
protected: protected:
/** /**

View File

@ -196,7 +196,7 @@ void Heater::setSwitch(uint8_t number, ReturnValue_t state, uint32_t* uptimeOfSw
if (powerSwitcher->getSwitchState(number) == state) { if (powerSwitcher->getSwitchState(number) == state) {
*uptimeOfSwitching = INVALID_UPTIME; *uptimeOfSwitching = INVALID_UPTIME;
} else { } else {
if ((*uptimeOfSwitching == INVALID_UPTIME)) { if (*uptimeOfSwitching == INVALID_UPTIME) {
powerSwitcher->sendSwitchCommand(number, state); powerSwitcher->sendSwitchCommand(number, state);
*uptimeOfSwitching = Clock::getUptime_ms(); *uptimeOfSwitching = Clock::getUptime_ms();
} else { } else {

View File

@ -1,4 +1,9 @@
target_sources( target_sources(
${LIB_FSFW_NAME} ${LIB_FSFW_NAME}
PRIVATE CCSDSTime.cpp Countdown.cpp Stopwatch.cpp TimeMessage.cpp PRIVATE CCSDSTime.cpp
CdsShortTimeStamper.cpp ClockCommon.cpp boost_timegm.cpp) Countdown.cpp
Stopwatch.cpp
TimeMessage.cpp
CdsShortTimeStamper.cpp
ClockCommon.cpp
boost_timegm.cpp)

View File

@ -2,7 +2,6 @@
#include <ctime> #include <ctime>
#include "boost_timegm.h" #include "boost_timegm.h"
#include "fsfw/ipc/MutexGuard.h" #include "fsfw/ipc/MutexGuard.h"
#include "fsfw/timemanager/Clock.h" #include "fsfw/timemanager/Clock.h"

View File

@ -1,17 +1,19 @@
#ifndef FSFW_TIMEMANAGER_TIMEREADERIF_H #ifndef FSFW_TIMEMANAGER_TIMEREADERIF_H
#define FSFW_TIMEMANAGER_TIMEREADERIF_H #define FSFW_TIMEMANAGER_TIMEREADERIF_H
#include <ctime>
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>
#include <ctime>
#include "fsfw/platform.h" #include "fsfw/platform.h"
#ifdef PLATFORM_WIN #ifdef PLATFORM_WIN
// wtf? Required for timeval! // wtf? Required for timeval!
// Thanks, windows
// clang-format off
#include <winsock2.h> #include <winsock2.h>
#include <winsock.h> #include <winsock.h>
// clang-format off
#endif #endif
#include "TimeStampIF.h" #include "TimeStampIF.h"

View File

@ -17,12 +17,10 @@
// on chrono i/o to Boost and some functions from libc++/locale to emulate the missing // on chrono i/o to Boost and some functions from libc++/locale to emulate the missing
// time_get::get() // time_get::get()
#include "boost_timegm.h" #include "boost_timegm.h"
#include <cstdint> #include <cstdint>
int32_t is_leap(int32_t year) { int32_t is_leap(int32_t year) {
if (year % 400 == 0) return 1; if (year % 400 == 0) return 1;
if (year % 100 == 0) return 0; if (year % 100 == 0) return 0;
@ -44,7 +42,6 @@ int32_t days_from_1jan(int32_t year, int32_t month, int32_t day) {
return days[is_leap(year)][month - 1] + day - 1; return days[is_leap(year)][month - 1] + day - 1;
} }
time_t internal_timegm(std::tm const *t) { time_t internal_timegm(std::tm const *t) {
int year = t->tm_year + 1900; int year = t->tm_year + 1900;
int month = t->tm_mon; int month = t->tm_mon;

View File

@ -1,5 +1,3 @@
#include <ctime> #include <ctime>
time_t internal_timegm(std::tm const *t); time_t internal_timegm(std::tm const *t);

View File

@ -72,7 +72,7 @@ class MgmLIS3MDLHandler : public DeviceHandlerBase {
uint32_t transitionDelay; uint32_t transitionDelay;
// Single SPI command has 2 bytes, first for adress, second for content // Single SPI command has 2 bytes, first for adress, second for content
size_t singleComandSize = 2; // size_t singleComandSize = 2;
// Has the size for all adresses of the lis3mdl + the continous write bit // Has the size for all adresses of the lis3mdl + the continous write bit
uint8_t commandBuffer[MGMLIS3MDL::NR_OF_DATA_AND_CFG_REGISTERS + 1]; uint8_t commandBuffer[MGMLIS3MDL::NR_OF_DATA_AND_CFG_REGISTERS + 1];
@ -87,7 +87,7 @@ class MgmLIS3MDLHandler : public DeviceHandlerBase {
*/ */
uint8_t registers[MGMLIS3MDL::NR_OF_CTRL_REGISTERS]; uint8_t registers[MGMLIS3MDL::NR_OF_CTRL_REGISTERS];
uint8_t statusRegister = 0; // uint8_t statusRegister = 0;
bool goToNormalMode = false; bool goToNormalMode = false;
enum class InternalState { enum class InternalState {

View File

@ -329,8 +329,8 @@ ReturnValue_t MgmRM3100Handler::handleDataReadout(const uint8_t *packet) {
// Now scale to physical value in microtesla // Now scale to physical value in microtesla
float fieldStrengthX = fieldStrengthRawX * scaleFactorX; float fieldStrengthX = fieldStrengthRawX * scaleFactorX;
float fieldStrengthY = fieldStrengthRawY * scaleFactorX; float fieldStrengthY = fieldStrengthRawY * scaleFactorY;
float fieldStrengthZ = fieldStrengthRawZ * scaleFactorX; float fieldStrengthZ = fieldStrengthRawZ * scaleFactorZ;
if (periodicPrintout) { if (periodicPrintout) {
if (debugDivider.checkAndIncrement()) { if (debugDivider.checkAndIncrement()) {

View File

@ -72,7 +72,7 @@ class MgmRM3100Handler : public DeviceHandlerBase {
RM3100::Rm3100PrimaryDataset primaryDataset; RM3100::Rm3100PrimaryDataset primaryDataset;
uint8_t commandBuffer[10]; uint8_t commandBuffer[10];
uint8_t commandBufferLen = 0; // uint8_t commandBufferLen = 0;
uint8_t cmmRegValue = RM3100::CMM_VALUE; uint8_t cmmRegValue = RM3100::CMM_VALUE;
uint8_t tmrcRegValue = RM3100::TMRC_DEFAULT_VALUE; uint8_t tmrcRegValue = RM3100::TMRC_DEFAULT_VALUE;

View File

@ -69,8 +69,7 @@ ReturnValue_t HostFilesystem::createFile(FilesystemParams params, const uint8_t
return returnvalue::OK; return returnvalue::OK;
} }
ReturnValue_t HostFilesystem::removeFile(const char *path_, ReturnValue_t HostFilesystem::removeFile(const char *path_, FileSystemArgsIF *args) {
FileSystemArgsIF *args) {
if (path_ == nullptr) { if (path_ == nullptr) {
return returnvalue::FAILED; return returnvalue::FAILED;
} }

View File

@ -15,12 +15,10 @@ class HostFilesystem : public HasFileSystemIF {
ReturnValue_t readFromFile(FileOpParams fileOpInfo, uint8_t **buffer, size_t &readSize, ReturnValue_t readFromFile(FileOpParams fileOpInfo, uint8_t **buffer, size_t &readSize,
size_t maxSize) override; size_t maxSize) override;
ReturnValue_t createFile(FilesystemParams params, const uint8_t *data, size_t size) override; ReturnValue_t createFile(FilesystemParams params, const uint8_t *data, size_t size) override;
ReturnValue_t removeFile(const char *path, ReturnValue_t removeFile(const char *path, FileSystemArgsIF *args) override;
FileSystemArgsIF *args) override;
ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override; ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override;
ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override; ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override;
ReturnValue_t rename(const char *oldPath, const char *newPath, ReturnValue_t rename(const char *oldPath, const char *newPath, FileSystemArgsIF *args) override;
FileSystemArgsIF *args) override;
std::error_code errorCode; std::error_code errorCode;
using HasFileSystemIF::createDirectory; using HasFileSystemIF::createDirectory;

View File

@ -146,8 +146,9 @@ ReturnValue_t testserialize::test_autoserialization() {
} }
// These epsilon values were just guessed.. It appears to work though. // These epsilon values were just guessed.. It appears to work though.
if (abs(tv_float - tv::tv_float) > 0.0001 or abs(tv_double - tv::tv_double) > 0.01 or if (std::abs(tv_float - tv::tv_float) > 0.0001 or std::abs(tv_double - tv::tv_double) > 0.01 or
abs(tv_sfloat - tv::tv_sfloat) > 0.0001 or abs(tv_sdouble - tv::tv_sdouble) > 0.01) { std::abs(tv_sfloat - tv::tv_sfloat) > 0.0001 or
std::abs(tv_sdouble - tv::tv_sdouble) > 0.01) {
return unitt::put_error(id); return unitt::put_error(id);
} }

View File

@ -69,8 +69,8 @@ TEST_CASE("File Data PDU", "[cfdp][pdu]") {
// Bit 4: Segment metadata flag is set // Bit 4: Segment metadata flag is set
// Bit 5 to seven: length of transaction seq num is 2 // Bit 5 to seven: length of transaction seq num is 2
REQUIRE(fileDataBuffer[3] == 0b10101010); REQUIRE(fileDataBuffer[3] == 0b10101010);
REQUIRE((fileDataBuffer[10] >> 6) & REQUIRE(((fileDataBuffer[10] >> 6) & 0b11) ==
0b11 == cfdp::RecordContinuationState::CONTAINS_START_AND_END); cfdp::RecordContinuationState::CONTAINS_START_AND_END);
// Segment metadata length // Segment metadata length
REQUIRE((fileDataBuffer[10] & 0x3f) == 10); REQUIRE((fileDataBuffer[10] & 0x3f) == 10);
buffer = fileDataBuffer.data() + 11; buffer = fileDataBuffer.data() + 11;

View File

@ -14,7 +14,7 @@ class DeviceHandlerCommander : public ExecutableObjectIF,
DeviceHandlerCommander(object_id_t objectId); DeviceHandlerCommander(object_id_t objectId);
virtual ~DeviceHandlerCommander(); virtual ~DeviceHandlerCommander();
ReturnValue_t performOperation(uint8_t operationCode = 0); ReturnValue_t performOperation(uint8_t operationCode = 0) override;
ReturnValue_t initialize() override; ReturnValue_t initialize() override;
MessageQueueIF* getCommandQueuePtr() override; MessageQueueIF* getCommandQueuePtr() override;
void stepSuccessfulReceived(ActionId_t actionId, uint8_t step) override; void stepSuccessfulReceived(ActionId_t actionId, uint8_t step) override;

View File

@ -226,8 +226,7 @@ TEST_CASE("Host Filesystem", "[hal][host]") {
CHECK(fs::is_regular_file(fileInDir0)); CHECK(fs::is_regular_file(fileInDir0));
// See note at the top // See note at the top
std::string dir0_string = dir0.string(); std::string dir0_string = dir0.string();
REQUIRE(hostFs.removeDirectory(FilesystemParams(dir0_string.c_str()), true) == REQUIRE(hostFs.removeDirectory(FilesystemParams(dir0_string.c_str()), true) == returnvalue::OK);
returnvalue::OK);
CHECK(not fs::is_directory(dir0)); CHECK(not fs::is_directory(dir0));
CHECK(not fs::is_regular_file(fileInDir0)); CHECK(not fs::is_regular_file(fileInDir0));
} }

View File

@ -6,8 +6,7 @@
ReturnValue_t FilesystemMock::feedFile(const std::string &filename, std::ifstream &file) { ReturnValue_t FilesystemMock::feedFile(const std::string &filename, std::ifstream &file) {
// not multibyte encoding safe! // not multibyte encoding safe!
std::filesystem::path::string_type native_filename(filename.begin(), std::filesystem::path::string_type native_filename(filename.begin(), filename.end());
filename.end());
if (not std::filesystem::exists(native_filename)) { if (not std::filesystem::exists(native_filename)) {
return returnvalue::FAILED; return returnvalue::FAILED;
@ -58,8 +57,7 @@ ReturnValue_t FilesystemMock::createFile(FilesystemParams params, const uint8_t
return returnvalue::OK; return returnvalue::OK;
} }
ReturnValue_t FilesystemMock::removeFile(const char *path, ReturnValue_t FilesystemMock::removeFile(const char *path, FileSystemArgsIF *args) {
FileSystemArgsIF *args) {
std::string filename_c(path); std::string filename_c(path);
std::filesystem::path::string_type filename(filename_c.cbegin(), filename_c.cend()); std::filesystem::path::string_type filename(filename_c.cbegin(), filename_c.cend());
@ -88,8 +86,7 @@ ReturnValue_t FilesystemMock::removeDirectory(FilesystemParams params, bool dele
return returnvalue::OK; return returnvalue::OK;
} }
ReturnValue_t FilesystemMock::rename(const char *oldPath, ReturnValue_t FilesystemMock::rename(const char *oldPath, const char *newPath,
const char *newPath,
FileSystemArgsIF *args) { FileSystemArgsIF *args) {
renameQueue.push(RenameInfo(oldPath, newPath)); renameQueue.push(RenameInfo(oldPath, newPath));
return returnvalue::OK; return returnvalue::OK;

View File

@ -1,12 +1,12 @@
#ifndef FSFW_MOCKS_FILESYSTEMMOCK_H #ifndef FSFW_MOCKS_FILESYSTEMMOCK_H
#define FSFW_MOCKS_FILESYSTEMMOCK_H #define FSFW_MOCKS_FILESYSTEMMOCK_H
#include <filesystem>
#include <fstream> #include <fstream>
#include <map> #include <map>
#include <queue> #include <queue>
#include <string> #include <string>
#include <utility> #include <utility>
#include <filesystem>
#include "fsfw/filesystem.h" #include "fsfw/filesystem.h"
@ -21,8 +21,8 @@
class FilesystemMock : public HasFileSystemIF { class FilesystemMock : public HasFileSystemIF {
public: public:
struct FileWriteInfo { struct FileWriteInfo {
FileWriteInfo(std::filesystem::path::string_type filename, size_t offset, FileWriteInfo(std::filesystem::path::string_type filename, size_t offset, const uint8_t *data,
const uint8_t *data, size_t len) size_t len)
: offset(offset) { : offset(offset) {
this->filename = filename; this->filename = filename;
this->data.insert(this->data.end(), data, data + len); this->data.insert(this->data.end(), data, data + len);
@ -66,13 +66,10 @@ class FilesystemMock : public HasFileSystemIF {
ReturnValue_t readFromFile(FileOpParams params, uint8_t **buffer, size_t &readSize, ReturnValue_t readFromFile(FileOpParams params, uint8_t **buffer, size_t &readSize,
size_t maxSize) override; size_t maxSize) override;
ReturnValue_t createFile(FilesystemParams params, const uint8_t *data, size_t size) override; ReturnValue_t createFile(FilesystemParams params, const uint8_t *data, size_t size) override;
ReturnValue_t removeFile(const char *path, ReturnValue_t removeFile(const char *path, FileSystemArgsIF *args) override;
FileSystemArgsIF *args) override;
ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override; ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override;
ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override; ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override;
ReturnValue_t rename(const char *oldPath, ReturnValue_t rename(const char *oldPath, const char *newPath, FileSystemArgsIF *args) override;
const char *newPath,
FileSystemArgsIF *args) override;
void reset(); void reset();

View File

@ -13,7 +13,7 @@ ReturnValue_t pst::pollingSequenceInitDefault(FixedTimeslotTaskIF *thisSequence)
/* Add polling sequence table here */ /* Add polling sequence table here */
thisSequence->addSlot(objects::TEST_DEVICE, 0, DeviceHandlerIF::PERFORM_OPERATION); thisSequence->addSlot(objects::TEST_DEVICE, 0, DeviceHandlerIF::PERFORM_OPERATION);
thisSequence->addSlot(objects::TEST_DEVICE, 0.3, DeviceHandlerIF::SEND_WRITE); thisSequence->addSlot(objects::TEST_DEVICE, 0.3 * length, DeviceHandlerIF::SEND_WRITE);
thisSequence->addSlot(objects::TEST_DEVICE, 0.45 * length, DeviceHandlerIF::GET_WRITE); thisSequence->addSlot(objects::TEST_DEVICE, 0.45 * length, DeviceHandlerIF::GET_WRITE);
thisSequence->addSlot(objects::TEST_DEVICE, 0.6 * length, DeviceHandlerIF::SEND_READ); thisSequence->addSlot(objects::TEST_DEVICE, 0.6 * length, DeviceHandlerIF::SEND_READ);
thisSequence->addSlot(objects::TEST_DEVICE, 0.8 * length, DeviceHandlerIF::GET_READ); thisSequence->addSlot(objects::TEST_DEVICE, 0.8 * length, DeviceHandlerIF::GET_READ);