Update FSFW #33

Merged
meierj merged 75 commits from mueller/master into eive/develop 2022-02-21 11:00:17 +01:00
7 changed files with 23 additions and 13 deletions
Showing only changes of commit f4f1174849 - Show all commits

View File

@ -60,6 +60,8 @@ if(FSFW_BUILD_UNITTESTS)
) )
FetchContent_MakeAvailable(Catch2) FetchContent_MakeAvailable(Catch2)
#fixes regression -preview4, to be confirmed in later releases
set_target_properties(Catch2 PROPERTIES DEBUG_POSTFIX "")
endif() endif()
set(FSFW_CONFIG_PATH tests/src/fsfw_tests/unit/testcfg) set(FSFW_CONFIG_PATH tests/src/fsfw_tests/unit/testcfg)

View File

@ -6,9 +6,3 @@ RUN apt-get --yes upgrade
#tzdata is a dependency, won't install otherwise #tzdata is a dependency, won't install otherwise
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get --yes install gcc g++ cmake make lcov git valgrind nano iputils-ping RUN apt-get --yes install gcc g++ cmake make lcov git valgrind nano iputils-ping
RUN git clone https://github.com/catchorg/Catch2.git && \
cd Catch2 && \
git checkout v3.0.0-preview4 && \
cmake -Bbuild -H. -DBUILD_TESTING=OFF && \
cmake --build build/ --target install

View File

@ -3,13 +3,7 @@ pipeline {
BUILDDIR = 'build-tests' BUILDDIR = 'build-tests'
} }
agent { agent {
dockerfile { docker { image 'fsfw-ci:d1'}
dir 'automation'
//force docker to redownload base image and rebuild all steps instead of caching them
//this way, we always get an up to date docker image one each build
additionalBuildArgs '--no-cache --pull'
reuseNode true
}
} }
stages { stages {
stage('Clean') { stage('Clean') {

View File

@ -291,3 +291,5 @@ float LocalPoolDataSetBase::getCollectionInterval() const {
return 0.0; return 0.0;
} }
} }
void LocalPoolDataSetBase::printSet() { return; }

View File

@ -171,6 +171,11 @@ class LocalPoolDataSetBase : public PoolDataSetBase, public MarkChangedIF {
*/ */
float getCollectionInterval() const; float getCollectionInterval() const;
/**
* @brief Can be overwritten by a specific implementation of a dataset to print the set.
*/
virtual void printSet();
protected: protected:
sid_t sid; sid_t sid;
//! This mutex is used if the data is created by one object only. //! This mutex is used if the data is created by one object only.

View File

@ -665,6 +665,11 @@ void DeviceHandlerBase::doGetWrite() {
void DeviceHandlerBase::doSendRead() { void DeviceHandlerBase::doSendRead() {
ReturnValue_t result; ReturnValue_t result;
result = doSendReadHook();
if (result != RETURN_OK) {
return;
}
size_t replyLen = 0; size_t replyLen = 0;
if (cookieInfo.pendingCommand != deviceCommandMap.end()) { if (cookieInfo.pendingCommand != deviceCommandMap.end()) {
replyLen = getNextReplyLength(cookieInfo.pendingCommand->first); replyLen = getNextReplyLength(cookieInfo.pendingCommand->first);
@ -920,6 +925,8 @@ void DeviceHandlerBase::commandSwitch(ReturnValue_t onOff) {
} }
} }
ReturnValue_t DeviceHandlerBase::doSendReadHook() { return RETURN_OK; }
ReturnValue_t DeviceHandlerBase::getSwitches(const uint8_t** switches, uint8_t* numberOfSwitches) { ReturnValue_t DeviceHandlerBase::getSwitches(const uint8_t** switches, uint8_t* numberOfSwitches) {
return DeviceHandlerBase::NO_SWITCH; return DeviceHandlerBase::NO_SWITCH;
} }

View File

@ -1082,6 +1082,12 @@ class DeviceHandlerBase : public DeviceHandlerIF,
*/ */
void commandSwitch(ReturnValue_t onOff); void commandSwitch(ReturnValue_t onOff);
/**
* @brief This function can be used to insert device specific code during the do-send-read
* step.
*/
virtual ReturnValue_t doSendReadHook();
private: private:
/** /**
* State a cookie is in. * State a cookie is in.