Merge pull request 'Refactor Power Module' (#49) from mueller/refactor-power-switch-if-etc-eive into eive/develop
Reviewed-on: #49
This commit is contained in:
commit
61d0815de8
@ -1,7 +1,7 @@
|
|||||||
target_sources(${LIB_FSFW_NAME}
|
target_sources(${LIB_FSFW_NAME} PRIVATE
|
||||||
PRIVATE
|
|
||||||
Fuse.cpp
|
Fuse.cpp
|
||||||
PowerComponent.cpp
|
PowerComponent.cpp
|
||||||
PowerSensor.cpp
|
PowerSensor.cpp
|
||||||
PowerSwitcher.cpp
|
PowerSwitcher.cpp
|
||||||
|
DummyPowerSwitcher.cpp
|
||||||
)
|
)
|
46
src/fsfw/power/DummyPowerSwitcher.cpp
Normal file
46
src/fsfw/power/DummyPowerSwitcher.cpp
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#include "DummyPowerSwitcher.h"
|
||||||
|
|
||||||
|
DummyPowerSwitcher::DummyPowerSwitcher(object_id_t objectId, size_t numberOfSwitches,
|
||||||
|
size_t numberOfFuses, uint32_t switchDelayMs)
|
||||||
|
: SystemObject(objectId),
|
||||||
|
switcherList(numberOfSwitches),
|
||||||
|
fuseList(numberOfFuses),
|
||||||
|
switchDelayMs(switchDelayMs) {}
|
||||||
|
|
||||||
|
void DummyPowerSwitcher::setInitialSwitcherList(std::vector<ReturnValue_t> switcherList) {
|
||||||
|
this->switcherList = switcherList;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DummyPowerSwitcher::setInitialFusesList(std::vector<ReturnValue_t> fuseList) {
|
||||||
|
this->fuseList = fuseList;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnValue_t DummyPowerSwitcher::sendSwitchCommand(power::Switch_t switchNr, ReturnValue_t onOff) {
|
||||||
|
if (switchNr < switcherList.capacity()) {
|
||||||
|
switcherList[switchNr] = onOff;
|
||||||
|
}
|
||||||
|
return RETURN_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnValue_t DummyPowerSwitcher::sendFuseOnCommand(uint8_t fuseNr) {
|
||||||
|
if (fuseNr < fuseList.capacity()) {
|
||||||
|
fuseList[fuseNr] = FUSE_ON;
|
||||||
|
}
|
||||||
|
return RETURN_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnValue_t DummyPowerSwitcher::getSwitchState(power::Switch_t switchNr) const {
|
||||||
|
if (switchNr < switcherList.capacity()) {
|
||||||
|
return switcherList[switchNr];
|
||||||
|
}
|
||||||
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnValue_t DummyPowerSwitcher::getFuseState(uint8_t fuseNr) const {
|
||||||
|
if (fuseNr < fuseList.capacity()) {
|
||||||
|
return fuseList[fuseNr];
|
||||||
|
}
|
||||||
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t DummyPowerSwitcher::getSwitchDelayMs(void) const { return switchDelayMs; }
|
31
src/fsfw/power/DummyPowerSwitcher.h
Normal file
31
src/fsfw/power/DummyPowerSwitcher.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef FSFW_SRC_FSFW_POWER_DUMMYPOWERSWITCHER_H_
|
||||||
|
#define FSFW_SRC_FSFW_POWER_DUMMYPOWERSWITCHER_H_
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "PowerSwitchIF.h"
|
||||||
|
#include "definitions.h"
|
||||||
|
#include "fsfw/objectmanager/SystemObject.h"
|
||||||
|
|
||||||
|
class DummyPowerSwitcher : public SystemObject, public PowerSwitchIF {
|
||||||
|
public:
|
||||||
|
DummyPowerSwitcher(object_id_t objectId, size_t numberOfSwitches, size_t numberOfFuses,
|
||||||
|
uint32_t switchDelayMs = 5000);
|
||||||
|
|
||||||
|
void setInitialSwitcherList(std::vector<ReturnValue_t> switcherList);
|
||||||
|
void setInitialFusesList(std::vector<ReturnValue_t> switcherList);
|
||||||
|
|
||||||
|
virtual ReturnValue_t sendSwitchCommand(power::Switch_t switchNr, ReturnValue_t onOff) override;
|
||||||
|
virtual ReturnValue_t sendFuseOnCommand(uint8_t fuseNr) override;
|
||||||
|
virtual ReturnValue_t getSwitchState(power::Switch_t switchNr) const override;
|
||||||
|
virtual ReturnValue_t getFuseState(uint8_t fuseNr) const override;
|
||||||
|
virtual uint32_t getSwitchDelayMs(void) const override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::vector<ReturnValue_t> switcherList;
|
||||||
|
std::vector<ReturnValue_t> fuseList;
|
||||||
|
uint32_t switchDelayMs = 5000;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* FSFW_SRC_FSFW_POWER_DUMMYPOWERSWITCHER_H_ */
|
@ -4,6 +4,7 @@
|
|||||||
#include "definitions.h"
|
#include "definitions.h"
|
||||||
#include "../events/Event.h"
|
#include "../events/Event.h"
|
||||||
#include "../returnvalues/HasReturnvaluesIF.h"
|
#include "../returnvalues/HasReturnvaluesIF.h"
|
||||||
|
#include "definitions.h"
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @brief This interface defines a connection to a device that is capable of
|
* @brief This interface defines a connection to a device that is capable of
|
||||||
@ -38,11 +39,11 @@ class PowerSwitchIF : public HasReturnvaluesIF {
|
|||||||
* @param switchNr
|
* @param switchNr
|
||||||
* @param onOff on == @c SWITCH_ON; off != @c SWITCH_ON
|
* @param onOff on == @c SWITCH_ON; off != @c SWITCH_ON
|
||||||
*/
|
*/
|
||||||
virtual void sendSwitchCommand(power::Switch_t switchNr, ReturnValue_t onOff) const = 0;
|
virtual ReturnValue_t sendSwitchCommand(power::Switch_t switchNr, ReturnValue_t onOff) = 0;
|
||||||
/**
|
/**
|
||||||
* Sends a command to the Power Unit to enable a certain fuse.
|
* Sends a command to the Power Unit to enable a certain fuse.
|
||||||
*/
|
*/
|
||||||
virtual void sendFuseOnCommand(uint8_t fuseNr) const = 0;
|
virtual ReturnValue_t sendFuseOnCommand(uint8_t fuseNr) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the state of the Switches.
|
* get the state of the Switches.
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "definitions.h"
|
#include "definitions.h"
|
||||||
#include "fsfw/power/PowerSwitcher.h"
|
#include "fsfw/power/PowerSwitcher.h"
|
||||||
|
|
||||||
|
#include "definitions.h"
|
||||||
#include "fsfw/objectmanager/ObjectManager.h"
|
#include "fsfw/objectmanager/ObjectManager.h"
|
||||||
#include "fsfw/serviceinterface/ServiceInterface.h"
|
#include "fsfw/serviceinterface/ServiceInterface.h"
|
||||||
|
|
||||||
|
@ -8,6 +8,6 @@ namespace power {
|
|||||||
using Switch_t = uint8_t;
|
using Switch_t = uint8_t;
|
||||||
static constexpr Switch_t NO_SWITCH = 0xFF;
|
static constexpr Switch_t NO_SWITCH = 0xFF;
|
||||||
|
|
||||||
}
|
} // namespace power
|
||||||
|
|
||||||
#endif /* FSFW_SRC_FSFW_POWER_DEFINITIONS_H_ */
|
#endif /* FSFW_SRC_FSFW_POWER_DEFINITIONS_H_ */
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "fsfw/FSFWVersion.h"
|
|
||||||
|
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
|
#include "fsfw/FSFWVersion.h"
|
||||||
|
|
||||||
#ifdef major
|
#ifdef major
|
||||||
#undef major
|
#undef major
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user