From 206e13ea64ff9b55f2b68ac8ec65cb865c542e8c Mon Sep 17 00:00:00 2001 From: Fabrizio Monti <fabrizio.monti@skywarder.eu> Date: Wed, 26 Mar 2025 18:34:43 +0100 Subject: [PATCH] [ENGINE] Added placeholders for sensor and servo configurations. --- src/Motor/Actuators/Actuators.cpp | 16 ++++------ src/Motor/Configs/ActuatorsConfig.h | 14 ++++++--- src/Motor/Configs/SensorsConfig.h | 33 +++++++++++++++----- src/Motor/Sensors/Sensors.cpp | 48 ++++++++++++++++------------- 4 files changed, 68 insertions(+), 43 deletions(-) diff --git a/src/Motor/Actuators/Actuators.cpp b/src/Motor/Actuators/Actuators.cpp index 592999f9c..70878c249 100644 --- a/src/Motor/Actuators/Actuators.cpp +++ b/src/Motor/Actuators/Actuators.cpp @@ -95,25 +95,21 @@ Actuators::Actuators() info->limit = Config::Servos::MAIN_LIMIT; info->flipped = Config::Servos::MAIN_FLIPPED; info->unsafeSetServoPosition(0.0f); - // TODO: is the configuration correct? Same as lyra info = getServo(ServosList::OX_VENTING_VALVE); - info->limit = Config::Servos::VENTING_LIMIT; - info->flipped = Config::Servos::VENTING_FLIPPED; + info->limit = Config::Servos::OX_VENTING_LIMIT; + info->flipped = Config::Servos::OX_VENTING_FLIPPED; info->unsafeSetServoPosition(0.0f); - // TODO: is the configuration correct? Same as lyra info = getServo(ServosList::NITROGEN_VALVE); - info->limit = Config::Servos::VENTING_LIMIT; - info->flipped = Config::Servos::VENTING_FLIPPED; + info->limit = Config::Servos::NITROGEN_LIMIT; + info->flipped = Config::Servos::NITROGEN_FLIPPED; info->unsafeSetServoPosition(0.0f); - // TODO: is the configuration correct? info = getServo(ServosList::N2_QUENCHING_VALVE); - info->limit = Config::Servos::VENTING_LIMIT; - info->flipped = Config::Servos::VENTING_FLIPPED; + info->limit = Config::Servos::N2_QUENCHING_LIMIT; + info->flipped = Config::Servos::N2_QUENCHING_FLIPPED; info->unsafeSetServoPosition(0.0f); - // TODO: is the configuration correct? } bool Actuators::start() diff --git a/src/Motor/Configs/ActuatorsConfig.h b/src/Motor/Configs/ActuatorsConfig.h index 36a876cd7..820b74693 100644 --- a/src/Motor/Configs/ActuatorsConfig.h +++ b/src/Motor/Configs/ActuatorsConfig.h @@ -49,11 +49,17 @@ constexpr float SERVO_CONFIDENCE = 0.02; // 2% // Timeout is currently set at 2h constexpr long long SERVO_ACTION_TIMEOUT = 2 * 60 * 60 * 1000; -constexpr float VENTING_LIMIT = 0.90f; -constexpr float MAIN_LIMIT = 0.90f; +// TODO: check this values +constexpr float OX_VENTING_LIMIT = 0.90f; +constexpr float MAIN_LIMIT = 0.90f; +constexpr float NITROGEN_LIMIT = 0.90f; +constexpr float N2_QUENCHING_LIMIT = 0.90f; -constexpr bool VENTING_FLIPPED = true; -constexpr bool MAIN_FLIPPED = true; +// TODO: check this values +constexpr bool OX_VENTING_FLIPPED = true; +constexpr bool MAIN_FLIPPED = true; +constexpr bool NITROGEN_FLIPPED = true; +constexpr bool N2_QUENCHING_FLIPPED = true; } // namespace Servos diff --git a/src/Motor/Configs/SensorsConfig.h b/src/Motor/Configs/SensorsConfig.h index f3d039dcc..5f5451d07 100644 --- a/src/Motor/Configs/SensorsConfig.h +++ b/src/Motor/Configs/SensorsConfig.h @@ -111,16 +111,26 @@ Channel 4 - 29.65ohm 0.3584V 12.06mA 29.72ohm 0.5911V 20mA 29.55ohm */ + +// TODO: calibrate ch0 and ch1 +constexpr float CH0_SHUNT_RESISTANCE = 29.0; +constexpr float CH1_SHUNT_RESISTANCE = 29.0; + constexpr float CH4_SHUNT_RESISTANCE = 29.79; constexpr float CH5_SHUNT_RESISTANCE = 29.7; constexpr float CH6_SHUNT_RESISTANCE = 29.65; +// TODO: check if the selected channels are fine constexpr Boardcore::ADS131M08Defs::Channel TANK_TC_CHANNEL = Boardcore::ADS131M08Defs::Channel::CHANNEL_3; -constexpr Boardcore::ADS131M08Defs::Channel TANK_TOP_PT_CHANNEL = +constexpr Boardcore::ADS131M08Defs::Channel OX_TANK_TOP_PT_CHANNEL = Boardcore::ADS131M08Defs::Channel::CHANNEL_5; -constexpr Boardcore::ADS131M08Defs::Channel TANK_BOTTOM_PT_CHANNEL = +constexpr Boardcore::ADS131M08Defs::Channel OX_TANK_BOTTOM_0_PT_CHANNEL = Boardcore::ADS131M08Defs::Channel::CHANNEL_6; +constexpr Boardcore::ADS131M08Defs::Channel OX_TANK_BOTTOM_1_PT_CHANNEL = + Boardcore::ADS131M08Defs::Channel::CHANNEL_0; +constexpr Boardcore::ADS131M08Defs::Channel N2_TANK_PT_CHANNEL = + Boardcore::ADS131M08Defs::Channel::CHANNEL_1; constexpr Boardcore::ADS131M08Defs::Channel ENGINE_PT_CHANNEL = Boardcore::ADS131M08Defs::Channel::CHANNEL_4; @@ -130,16 +140,23 @@ constexpr bool ENABLED = true; namespace Trafag { -constexpr float TANK_TOP_SHUNT_RESISTANCE = ADS131M08::CH5_SHUNT_RESISTANCE; -constexpr float TANK_BOTTOM_SHUNT_RESISTANCE = ADS131M08::CH6_SHUNT_RESISTANCE; -constexpr float ENGINE_SHUNT_RESISTANCE = ADS131M08::CH4_SHUNT_RESISTANCE; +constexpr float OX_TANK_TOP_SHUNT_RESISTANCE = ADS131M08::CH5_SHUNT_RESISTANCE; +constexpr float OX_TANK_BOTTOM_0_SHUNT_RESISTANCE = + ADS131M08::CH6_SHUNT_RESISTANCE; +constexpr float OX_TANK_BOTTOM_1_SHUNT_RESISTANCE = + ADS131M08::CH0_SHUNT_RESISTANCE; +constexpr float N2_TANK_SHUNT_RESISTANCE = ADS131M08::CH1_SHUNT_RESISTANCE; +constexpr float ENGINE_SHUNT_RESISTANCE = ADS131M08::CH4_SHUNT_RESISTANCE; constexpr float MIN_CURRENT = 4; constexpr float MAX_CURRENT = 20; -constexpr float TANK_TOP_MAX_PRESSURE = 100; // bar -constexpr float TANK_BOTTOM_MAX_PRESSURE = 100; // bar -constexpr float ENGINE_MAX_PRESSURE = 40; // bar +// TODO: check these values +constexpr float OX_TANK_TOP_MAX_PRESSURE = 100; // bar +constexpr float OX_TANK_BOTTOM_0_MAX_PRESSURE = 100; // bar +constexpr float OX_TANK_BOTTOM_1_MAX_PRESSURE = 100; // bar +constexpr float N2_TANK_MAX_PRESSURE = 100; // TODO: CHECK +constexpr float ENGINE_MAX_PRESSURE = 40; // bar } // namespace Trafag namespace Kulite diff --git a/src/Motor/Sensors/Sensors.cpp b/src/Motor/Sensors/Sensors.cpp index 06211420c..95916ba97 100644 --- a/src/Motor/Sensors/Sensors.cpp +++ b/src/Motor/Sensors/Sensors.cpp @@ -335,19 +335,32 @@ void Sensors::ads131m08Init() // Configure all required channels config.channelsConfig[( - int)Config::Sensors::ADS131M08::TANK_TOP_PT_CHANNEL] = { + int)Config::Sensors::ADS131M08::OX_TANK_TOP_PT_CHANNEL] = { .enabled = true, .pga = ADS131M08Defs::PGA::PGA_1, .offset = 0, .gain = 1.0}; config.channelsConfig[( - int)Config::Sensors::ADS131M08::TANK_BOTTOM_PT_CHANNEL] = { + int)Config::Sensors::ADS131M08::OX_TANK_BOTTOM_0_PT_CHANNEL] = { .enabled = true, .pga = ADS131M08Defs::PGA::PGA_1, .offset = 0, .gain = 1.0}; + config.channelsConfig[( + int)Config::Sensors::ADS131M08::OX_TANK_BOTTOM_1_PT_CHANNEL] = { + .enabled = true, + .pga = ADS131M08Defs::PGA::PGA_1, + .offset = 0, + .gain = 1.0}; + + config.channelsConfig[(int)Config::Sensors::ADS131M08::N2_TANK_PT_CHANNEL] = + {.enabled = true, + .pga = ADS131M08Defs::PGA::PGA_1, + .offset = 0, + .gain = 1.0}; + config.channelsConfig[(int)Config::Sensors::ADS131M08::ENGINE_PT_CHANNEL] = {.enabled = true, .pga = ADS131M08Defs::PGA::PGA_1, @@ -387,13 +400,12 @@ void Sensors::oxTopTankPressureInit() { auto sample = getADS131M08LastSample(); return sample.getVoltage( - Config::Sensors::ADS131M08::TANK_TOP_PT_CHANNEL); + Config::Sensors::ADS131M08::OX_TANK_TOP_PT_CHANNEL); }, - Config::Sensors::Trafag::TANK_TOP_SHUNT_RESISTANCE, - Config::Sensors::Trafag::TANK_TOP_MAX_PRESSURE, + Config::Sensors::Trafag::OX_TANK_TOP_SHUNT_RESISTANCE, + Config::Sensors::Trafag::OX_TANK_TOP_MAX_PRESSURE, Config::Sensors::Trafag::MIN_CURRENT, Config::Sensors::Trafag::MAX_CURRENT); - // TODO: is configuration correct? } void Sensors::oxTopTankPressureCallback() @@ -408,28 +420,24 @@ void Sensors::oxBottomTankPressureInit() { auto sample = getADS131M08LastSample(); return sample.getVoltage( - Config::Sensors::ADS131M08::TANK_BOTTOM_PT_CHANNEL); - // TODO: which is the correct channel? + Config::Sensors::ADS131M08::OX_TANK_BOTTOM_0_PT_CHANNEL); }, - Config::Sensors::Trafag::TANK_BOTTOM_SHUNT_RESISTANCE, - Config::Sensors::Trafag::TANK_BOTTOM_MAX_PRESSURE, + Config::Sensors::Trafag::OX_TANK_BOTTOM_0_SHUNT_RESISTANCE, + Config::Sensors::Trafag::OX_TANK_BOTTOM_0_MAX_PRESSURE, Config::Sensors::Trafag::MIN_CURRENT, Config::Sensors::Trafag::MAX_CURRENT); - // TODO: is this configuration correct? oxBottomTankPressure1 = std::make_unique<TrafagPressureSensor>( [this]() { auto sample = getADS131M08LastSample(); return sample.getVoltage( - Config::Sensors::ADS131M08::TANK_BOTTOM_PT_CHANNEL); - // TODO: which is the correct channel? + Config::Sensors::ADS131M08::OX_TANK_BOTTOM_1_PT_CHANNEL); }, - Config::Sensors::Trafag::TANK_BOTTOM_SHUNT_RESISTANCE, - Config::Sensors::Trafag::TANK_BOTTOM_MAX_PRESSURE, + Config::Sensors::Trafag::OX_TANK_BOTTOM_1_SHUNT_RESISTANCE, + Config::Sensors::Trafag::OX_TANK_BOTTOM_1_MAX_PRESSURE, Config::Sensors::Trafag::MIN_CURRENT, Config::Sensors::Trafag::MAX_CURRENT); - // TODO: is this configuration correct? } void Sensors::oxBottomTankPressure0Callback() @@ -449,14 +457,12 @@ void Sensors::n2TankPressureInit() { auto sample = getADS131M08LastSample(); return sample.getVoltage( - Config::Sensors::ADS131M08::TANK_TOP_PT_CHANNEL); - // TODO: which is the correct channel? + Config::Sensors::ADS131M08::N2_TANK_PT_CHANNEL); }, - Config::Sensors::Trafag::TANK_TOP_SHUNT_RESISTANCE, - Config::Sensors::Trafag::TANK_TOP_MAX_PRESSURE, + Config::Sensors::Trafag::N2_TANK_SHUNT_RESISTANCE, + Config::Sensors::Trafag::N2_TANK_MAX_PRESSURE, Config::Sensors::Trafag::MIN_CURRENT, Config::Sensors::Trafag::MAX_CURRENT); - // TODO: is this configuration correct? } void Sensors::n2TankPressureCallback() -- GitLab