Fix EM build: Use BPX Batt dummy
This commit is contained in:
54
dummies/BatteryDummy.cpp
Normal file
54
dummies/BatteryDummy.cpp
Normal file
@ -0,0 +1,54 @@
|
||||
#include "BatteryDummy.h"
|
||||
|
||||
BatteryDummy::BatteryDummy(DhbConfig cfg)
|
||||
: FreshDeviceHandlerBase(cfg), cfgSet(this), hkSet(this) {}
|
||||
|
||||
void BatteryDummy::performDeviceOperation(uint8_t opCode) {}
|
||||
|
||||
LocalPoolDataSetBase* BatteryDummy::getDataSetHandle(sid_t sid) {
|
||||
if (sid == hkSet.getSid()) {
|
||||
return &hkSet;
|
||||
}
|
||||
if (sid == cfgSet.getSid()) {
|
||||
return &cfgSet;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ReturnValue_t BatteryDummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
|
||||
LocalDataPoolManager& poolManager) {
|
||||
localDataPoolMap.emplace(bpxBat::BATT_TEMP_1, &battTemp1);
|
||||
localDataPoolMap.emplace(bpxBat::BATT_TEMP_2, &battTemp2);
|
||||
localDataPoolMap.emplace(bpxBat::BATT_TEMP_3, &battTemp3);
|
||||
localDataPoolMap.emplace(bpxBat::BATT_TEMP_4, &battTemp4);
|
||||
localDataPoolMap.emplace(bpxBat::CHARGE_CURRENT, &chargeCurrent);
|
||||
localDataPoolMap.emplace(bpxBat::DISCHARGE_CURRENT, &dischargeCurrent);
|
||||
localDataPoolMap.emplace(bpxBat::HEATER_CURRENT, &heaterCurrent);
|
||||
localDataPoolMap.emplace(bpxBat::BATT_VOLTAGE, &battVolt);
|
||||
localDataPoolMap.emplace(bpxBat::REBOOT_COUNTER, &rebootCounter);
|
||||
localDataPoolMap.emplace(bpxBat::BOOTCAUSE, &bootCause);
|
||||
|
||||
localDataPoolMap.emplace(bpxBat::BATTERY_HEATER_MODE, &battheatMode);
|
||||
localDataPoolMap.emplace(bpxBat::BATTHEAT_LOW_LIMIT, &battheatLow);
|
||||
localDataPoolMap.emplace(bpxBat::BATTHEAT_HIGH_LIMIT, &battheatHigh);
|
||||
|
||||
poolManager.subscribeForRegularPeriodicPacket(
|
||||
subdp::RegularHkPeriodicParams(hkSet.getSid(), true, 20.0));
|
||||
poolManager.subscribeForRegularPeriodicPacket(
|
||||
subdp::RegularHkPeriodicParams(cfgSet.getSid(), false, 30.0));
|
||||
return returnvalue::OK;
|
||||
}
|
||||
|
||||
ReturnValue_t BatteryDummy::checkModeCommand(Mode_t mode, Submode_t submode,
|
||||
uint32_t* msToReachTheMode) {
|
||||
return returnvalue::OK;
|
||||
}
|
||||
|
||||
ReturnValue_t BatteryDummy::executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
|
||||
const uint8_t* data, size_t size) {
|
||||
return returnvalue::OK;
|
||||
}
|
||||
|
||||
ReturnValue_t BatteryDummy::handleCommandMessage(CommandMessage* message) {
|
||||
return returnvalue::FAILED;
|
||||
}
|
52
dummies/BatteryDummy.h
Normal file
52
dummies/BatteryDummy.h
Normal file
@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
|
||||
#include "fsfw/devicehandlers/FreshDeviceHandlerBase.h"
|
||||
#include "mission/power/bpxBattDefs.h"
|
||||
|
||||
/// @brief
|
||||
class BatteryDummy : public FreshDeviceHandlerBase {
|
||||
public:
|
||||
BatteryDummy(DhbConfig cfg);
|
||||
|
||||
private:
|
||||
/**
|
||||
* Periodic helper executed function, implemented by child class.
|
||||
*/
|
||||
void performDeviceOperation(uint8_t opCode) override;
|
||||
|
||||
/**
|
||||
* Implemented by child class. Handle all command messages which are
|
||||
* not health, mode, action or housekeeping messages.
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
ReturnValue_t handleCommandMessage(CommandMessage* message) override;
|
||||
|
||||
// HK manager abstract functions.
|
||||
LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override;
|
||||
ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
|
||||
LocalDataPoolManager& poolManager) override;
|
||||
|
||||
// Mode abstract functions
|
||||
ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
|
||||
uint32_t* msToReachTheMode) override;
|
||||
// Action override. Forward to user.
|
||||
ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
|
||||
const uint8_t* data, size_t size) override;
|
||||
|
||||
BpxBatteryCfg cfgSet;
|
||||
BpxBatteryHk hkSet;
|
||||
PoolEntry<uint16_t> chargeCurrent = PoolEntry<uint16_t>({0});
|
||||
PoolEntry<uint16_t> dischargeCurrent = PoolEntry<uint16_t>({0});
|
||||
PoolEntry<uint16_t> heaterCurrent = PoolEntry<uint16_t>({0});
|
||||
PoolEntry<uint16_t> battVolt = PoolEntry<uint16_t>({0});
|
||||
PoolEntry<int16_t> battTemp1 = PoolEntry<int16_t>({10}, true);
|
||||
PoolEntry<int16_t> battTemp2 = PoolEntry<int16_t>({10}, true);
|
||||
PoolEntry<int16_t> battTemp3 = PoolEntry<int16_t>({10}, true);
|
||||
PoolEntry<int16_t> battTemp4 = PoolEntry<int16_t>({10}, true);
|
||||
PoolEntry<uint32_t> rebootCounter = PoolEntry<uint32_t>({0});
|
||||
PoolEntry<uint8_t> bootCause = PoolEntry<uint8_t>({0});
|
||||
PoolEntry<uint8_t> battheatMode = PoolEntry<uint8_t>({0});
|
||||
PoolEntry<int8_t> battheatLow = PoolEntry<int8_t>({0});
|
||||
PoolEntry<int8_t> battheatHigh = PoolEntry<int8_t>({0});
|
||||
};
|
@ -29,4 +29,5 @@ target_sources(
|
||||
PlocSupervisorDummy.cpp
|
||||
helperFactory.cpp
|
||||
MgmRm3100Dummy.cpp
|
||||
BatteryDummy.cpp
|
||||
Tmp1075Dummy.cpp)
|
||||
|
@ -2,14 +2,15 @@
|
||||
|
||||
#include <mission/com/syrlinksDefs.h>
|
||||
|
||||
SyrlinksDummy::SyrlinksDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
|
||||
: DeviceHandlerBase(objectId, comif, comCookie) {}
|
||||
SyrlinksDummy::SyrlinksDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie,
|
||||
DeviceHandlerFailureIsolation *fdir)
|
||||
: DeviceHandlerBase(objectId, comif, comCookie, fdir) {}
|
||||
|
||||
SyrlinksDummy::~SyrlinksDummy() {}
|
||||
|
||||
void SyrlinksDummy::doStartUp() {}
|
||||
void SyrlinksDummy::doStartUp() { setMode(MODE_ON); }
|
||||
|
||||
void SyrlinksDummy::doShutDown() {}
|
||||
void SyrlinksDummy::doShutDown() { setMode(MODE_OFF); }
|
||||
|
||||
ReturnValue_t SyrlinksDummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
|
||||
return NOTHING_TO_SEND;
|
||||
@ -36,7 +37,7 @@ ReturnValue_t SyrlinksDummy::interpretDeviceReply(DeviceCommandId_t id, const ui
|
||||
|
||||
void SyrlinksDummy::fillCommandAndReplyMap() {}
|
||||
|
||||
uint32_t SyrlinksDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 500; }
|
||||
uint32_t SyrlinksDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 1000; }
|
||||
|
||||
ReturnValue_t SyrlinksDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
|
||||
LocalDataPoolManager &poolManager) {
|
||||
|
@ -11,7 +11,8 @@ class SyrlinksDummy : public DeviceHandlerBase {
|
||||
static const uint8_t SIMPLE_COMMAND_DATA = 1;
|
||||
static const uint8_t PERIODIC_REPLY_DATA = 2;
|
||||
|
||||
SyrlinksDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie);
|
||||
SyrlinksDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie,
|
||||
DeviceHandlerFailureIsolation *fdir);
|
||||
virtual ~SyrlinksDummy();
|
||||
|
||||
protected:
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "helperFactory.h"
|
||||
|
||||
#include <dummies/AcuDummy.h>
|
||||
#include <dummies/BatteryDummy.h>
|
||||
#include <dummies/BpxDummy.h>
|
||||
#include <dummies/ComCookieDummy.h>
|
||||
#include <dummies/ComIFDummy.h>
|
||||
@ -30,6 +31,8 @@
|
||||
#include <mission/power/gsDefs.h>
|
||||
#include <mission/system/acs/ImtqAssembly.h>
|
||||
#include <mission/system/acs/StrAssembly.h>
|
||||
#include <mission/system/com/SyrlinksAssembly.h>
|
||||
#include <mission/system/com/SyrlinksFdir.h>
|
||||
#include <mission/system/objects/CamSwitcher.h>
|
||||
#include <mission/system/tcs/TcsBoardAssembly.h>
|
||||
|
||||
@ -49,7 +52,7 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
|
||||
new ComIFDummy(objects::DUMMY_COM_IF);
|
||||
auto* comCookieDummy = new ComCookieDummy();
|
||||
if (cfg.addBpxBattDummy) {
|
||||
new BpxDummy(objects::BPX_BATT_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
|
||||
new BatteryDummy(DhbConfig(objects::BPX_BATT_HANDLER));
|
||||
}
|
||||
if (cfg.addCoreCtrlCfg) {
|
||||
new CoreControllerDummy(objects::CORE_CONTROLLER);
|
||||
@ -74,9 +77,13 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
|
||||
strDummy->connectModeTreeParent(*strAssy);
|
||||
}
|
||||
if (cfg.addSyrlinksDummies) {
|
||||
auto* syrlinksDummy =
|
||||
new SyrlinksDummy(objects::SYRLINKS_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
|
||||
syrlinksDummy->connectModeTreeParent(satsystem::com::SUBSYSTEM);
|
||||
auto* syrlinksAssy = new SyrlinksAssembly(objects::SYRLINKS_ASSY);
|
||||
syrlinksAssy->connectModeTreeParent(satsystem::com::SUBSYSTEM);
|
||||
|
||||
auto syrlinksFdir = new SyrlinksFdir(objects::SYRLINKS_HANDLER);
|
||||
auto* syrlinksDummy = new SyrlinksDummy(objects::SYRLINKS_HANDLER, objects::DUMMY_COM_IF,
|
||||
comCookieDummy, syrlinksFdir);
|
||||
syrlinksDummy->connectModeTreeParent(*syrlinksAssy);
|
||||
}
|
||||
auto* imtqAssy = new ImtqAssembly(objects::IMTQ_ASSY);
|
||||
imtqAssy->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
|
||||
|
Reference in New Issue
Block a user