finished BPX batt dummy

This commit is contained in:
Robin Müller 2025-02-06 13:27:44 +01:00
parent eb84dd9b0b
commit c5216dd71f
Signed by: muellerr
GPG Key ID: A649FB78196E3849
6 changed files with 35 additions and 1 deletions

View File

@ -99,6 +99,9 @@ void ObjectFactory::produce(void* args) {
#if OBSW_ADD_PL_PCDU == 0 #if OBSW_ADD_PL_PCDU == 0
dummyCfg.addPlPcduDummy = true; dummyCfg.addPlPcduDummy = true;
#endif #endif
#if OBSW_ADD_BATTERY == 1
dummyCfg.addBatteryDummy = false;
#endif
PowerSwitchIF* pwrSwitcher = nullptr; PowerSwitchIF* pwrSwitcher = nullptr;
#if OBSW_ADD_GOMSPACE_PCDU == 0 #if OBSW_ADD_GOMSPACE_PCDU == 0

View File

@ -1,6 +1,7 @@
#include "BatteryDummy.h" #include "BatteryDummy.h"
BatteryDummy::BatteryDummy(DhbConfig cfg) : FreshDeviceHandlerBase(cfg), cfgSet(this) {} BatteryDummy::BatteryDummy(DhbConfig cfg)
: FreshDeviceHandlerBase(cfg), cfgSet(this), hkSet(this) {}
void BatteryDummy::performDeviceOperation(uint8_t opCode) {} void BatteryDummy::performDeviceOperation(uint8_t opCode) {}
@ -8,6 +9,25 @@ LocalPoolDataSetBase* BatteryDummy::getDataSetHandle(sid_t sid) { return nullptr
ReturnValue_t BatteryDummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap, ReturnValue_t BatteryDummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
LocalDataPoolManager& poolManager) { 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; return returnvalue::OK;
} }
@ -20,3 +40,7 @@ ReturnValue_t BatteryDummy::executeAction(ActionId_t actionId, MessageQueueId_t
const uint8_t* data, size_t size) { const uint8_t* data, size_t size) {
return returnvalue::OK; return returnvalue::OK;
} }
ReturnValue_t BatteryDummy::handleCommandMessage(CommandMessage* message) {
return returnvalue::FAILED;
}

View File

@ -35,6 +35,7 @@ class BatteryDummy : public FreshDeviceHandlerBase {
const uint8_t* data, size_t size) override; const uint8_t* data, size_t size) override;
BpxBatteryCfg cfgSet; BpxBatteryCfg cfgSet;
BpxBatteryHk hkSet;
PoolEntry<uint16_t> chargeCurrent = PoolEntry<uint16_t>({0}); PoolEntry<uint16_t> chargeCurrent = PoolEntry<uint16_t>({0});
PoolEntry<uint16_t> dischargeCurrent = PoolEntry<uint16_t>({0}); PoolEntry<uint16_t> dischargeCurrent = PoolEntry<uint16_t>({0});
PoolEntry<uint16_t> heaterCurrent = PoolEntry<uint16_t>({0}); PoolEntry<uint16_t> heaterCurrent = PoolEntry<uint16_t>({0});

View File

@ -1,6 +1,7 @@
#include "helperFactory.h" #include "helperFactory.h"
#include <dummies/AcuDummy.h> #include <dummies/AcuDummy.h>
#include <dummies/BatteryDummy.h>
#include <dummies/BpxDummy.h> #include <dummies/BpxDummy.h>
#include <dummies/ComCookieDummy.h> #include <dummies/ComCookieDummy.h>
#include <dummies/ComIFDummy.h> #include <dummies/ComIFDummy.h>
@ -266,4 +267,7 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
new RadSensorDummy(objects::RAD_SENSOR, objects::DUMMY_COM_IF, comCookieDummy); new RadSensorDummy(objects::RAD_SENSOR, objects::DUMMY_COM_IF, comCookieDummy);
radSensorDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM); radSensorDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
} }
if (cfg.addBatteryDummy) {
new BatteryDummy(DhbConfig(objects::BPX_BATT_HANDLER));
}
} }

View File

@ -30,6 +30,7 @@ struct DummyCfg {
bool addStrDummy = true; bool addStrDummy = true;
bool addTmpDummies = true; bool addTmpDummies = true;
bool addRadSensorDummy = true; bool addRadSensorDummy = true;
bool addBatteryDummy = true;
bool addPlPcduDummy = false; bool addPlPcduDummy = false;
Tmp1075Cfg tmp1075Cfg; Tmp1075Cfg tmp1075Cfg;
bool addCamSwitcherDummy = false; bool addCamSwitcherDummy = false;

View File

@ -199,6 +199,7 @@ class BpxBatteryHk : public StaticLocalDataSet<bpxBat::HK_ENTRIES> {
private: private:
friend class BpxBatteryHandler; friend class BpxBatteryHandler;
friend class BatteryDummy;
/** /**
* Constructor for data creator * Constructor for data creator
* @param hkOwner * @param hkOwner