Major update for power handling
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
and various smaller updates
This commit is contained in:
@ -8,13 +8,16 @@
|
||||
#include <fsfw/tasks/ExecutableObjectIF.h>
|
||||
#include <fsfw/timemanager/CCSDSTime.h>
|
||||
#include <mission/devices/GomspaceDeviceHandler.h>
|
||||
#include <mission/devices/devicedefinitions/GomspaceDefinitions.h>
|
||||
|
||||
#include "devicedefinitions/GomspaceDefinitions.h"
|
||||
#include "devicedefinitions/powerDefinitions.h"
|
||||
|
||||
/**
|
||||
* @brief The PCDUHandler provides a compact interface to handle all devices related to the
|
||||
* control of power. This is necessary because the fsfw manages all power
|
||||
* related functionalities via one power object. This includes for example the switch on and off of
|
||||
* devices.
|
||||
* control of power.
|
||||
* @details
|
||||
* This is necessary because the FSFW manages all power related functionalities via one
|
||||
* power object. This includes for example switching on and off of devices.
|
||||
*/
|
||||
class PCDUHandler : public PowerSwitchIF,
|
||||
public HasLocalDataPoolIF,
|
||||
@ -27,7 +30,8 @@ class PCDUHandler : public PowerSwitchIF,
|
||||
virtual ReturnValue_t initialize() override;
|
||||
virtual ReturnValue_t performOperation(uint8_t counter) override;
|
||||
virtual void handleChangedDataset(sid_t sid,
|
||||
store_address_t storeId = storeId::INVALID_STORE_ADDRESS);
|
||||
store_address_t storeId = storeId::INVALID_STORE_ADDRESS,
|
||||
bool* clearMessage = nullptr) override;
|
||||
|
||||
virtual void sendSwitchCommand(uint8_t switchNr, ReturnValue_t onOff) const override;
|
||||
virtual void sendFuseOnCommand(uint8_t fuseNr) const override;
|
||||
@ -47,6 +51,7 @@ class PCDUHandler : public PowerSwitchIF,
|
||||
|
||||
private:
|
||||
uint32_t pstIntervalMs = 0;
|
||||
MutexIF* pwrMutex = nullptr;
|
||||
|
||||
/** Housekeeping manager. Handles updates of local pool variables. */
|
||||
LocalDataPoolManager poolManager;
|
||||
@ -79,6 +84,8 @@ class PCDUHandler : public PowerSwitchIF,
|
||||
MessageQueueIF* commandQueue = nullptr;
|
||||
|
||||
size_t cmdQueueSize;
|
||||
bool firstSwitchInfoPdu1 = true;
|
||||
bool firstSwitchInfoPdu2 = true;
|
||||
|
||||
PeriodicTaskIF* executingTask = nullptr;
|
||||
|
||||
@ -112,6 +119,7 @@ class PCDUHandler : public PowerSwitchIF,
|
||||
*/
|
||||
void updateHkTableDataset(store_address_t storeId, LocalPoolDataSetBase* dataset,
|
||||
CCSDSTime::CDS_short* datasetTimeStamp);
|
||||
void checkAndUpdateSwitch(GOMSPACE::Pdu pdu, pcduSwitches::Switches switchIdx, uint8_t setValue);
|
||||
};
|
||||
|
||||
#endif /* MISSION_DEVICES_PCDUHANDLER_H_ */
|
||||
|
Reference in New Issue
Block a user