try to understand the thermal stuff
Some checks failed
EIVE/eive-obsw/pipeline/pr-develop There was a failure building this commit

This commit is contained in:
Robin Müller 2023-01-17 15:45:54 +01:00
parent 6e4d3393ba
commit 5e7a088da9
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814
4 changed files with 19 additions and 11 deletions

View File

@ -914,6 +914,7 @@ void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher) {
I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE, q7s::I2C_PL_EIVE);
auto imtqHandler = new ImtqHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie,
pcdu::Switches::PDU1_CH3_MGT_5V);
imtqHandler->setThermalStateRequestPoolIds();
imtqHandler->setPowerSwitcher(pwrSwitcher);
imtqHandler->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
static_cast<void>(imtqHandler);

View File

@ -1,13 +1,13 @@
#include "obsw.h"
#include <pwd.h>
#include <sys/types.h>
#include <unistd.h>
#include <filesystem>
#include <fstream>
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include "OBSWConfig.h"
#include "commonConfig.h"
#include "core/scheduling.h"
@ -44,8 +44,8 @@ int obsw::obsw() {
const char* homedir = nullptr;
homedir = getenv("HOME");
if(homedir == nullptr) {
homedir = getpwuid(getuid())->pw_dir;
if (homedir == nullptr) {
homedir = getpwuid(getuid())->pw_dir;
}
std::filesystem::path bootDelayFile = std::filesystem::path(homedir) / "boot_delay_secs.txt";
// Init delay handling.

View File

@ -2,6 +2,8 @@
#include <bsp_q7s/core/CoreDefinitions.h>
#include <fsfw/datapool/PoolReadGuard.h>
#include <fsfw/thermal/ThermalComponentIF.h>
#include <fsfw/thermal/ThermalModuleIF.h>
#include <fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h>
#include <linux/devices/devicedefinitions/StarTrackerDefinitions.h>
#include <mission/devices/devicedefinitions/BpxBatteryDefinitions.h>
@ -20,6 +22,7 @@ ThermalController::ThermalController(object_id_t objectId, HeaterHandler& heater
sensorTemperatures(this),
susTemperatures(this),
deviceTemperatures(this),
imtqThermalSet(objects::IMTQ_HANDLER),
max31865Set0(objects::RTD_0_IC3_PLOC_HEATSPREADER,
EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
max31865Set1(objects::RTD_1_IC4_PLOC_MISSIONBOARD,
@ -990,6 +993,8 @@ void ThermalController::ctrlAcsBoard() {
void ThermalController::ctrlMgt() {
// TODO: cast deviceTemperatures.mgt
PoolReadGuard pg(&imtqThermalSet);
ThermalComponentIF::StateRequest heaterReq = imtqThermalSet.heaterRequest.value;
// ctrlComponentTemperature(heater::HEATER_2_ACS_BRD, heater::HEATER_3_PCDU_PDU,
// sensorTemperatures.sensor_magnettorquer, deviceTemperatures.mgt,
// sensorTemperatures.sensor_plpcdu_heatspreader, &mgtLimits);
@ -1206,4 +1211,4 @@ void ThermalController::ctrlComponentTemperature(heater::Switchers switchNr,
ctrlHeater(switchNr, redSwitchNr, tempLimit);
}
}
}
}

View File

@ -73,6 +73,8 @@ class ThermalController : public ExtendedControllerBase {
thermalControllerDefinitions::SusTemperatures susTemperatures;
thermalControllerDefinitions::DeviceTemperatures deviceTemperatures;
DeviceHandlerThermalSet imtqThermalSet;
// Temperature Sensors
MAX31865::PrimarySet max31865Set0;
MAX31865::PrimarySet max31865Set1;
@ -157,10 +159,10 @@ class ThermalController : public ExtendedControllerBase {
void copySus();
void copyDevices();
void ctrlComponentTemperature(heater::Switchers switchNr, heater::Switchers redSwitchNr,
const lp_float_t& sensor1, const lp_float_t& sensor2,
const lp_float_t& sensor3, TempLimits* tempLimit,
bool moreThan3Sensors = false); //TODO sensor 4, 5 = default argument, if not available
void ctrlComponentTemperature(
heater::Switchers switchNr, heater::Switchers redSwitchNr, const lp_float_t& sensor1,
const lp_float_t& sensor2, const lp_float_t& sensor3, TempLimits* tempLimit,
bool moreThan3Sensors = false); // TODO sensor 4, 5 = default argument, if not available
void ctrlHeater(heater::Switchers switchNr, heater::Switchers redSwitchNr, TempLimits* tempLimit);
void chooseHeater(heater::Switchers& switchNr, heater::Switchers redSwitchNr);
void chooseSensor(heater::Switchers switchNr, const lp_float_t& sensor1,