diff --git a/src/Motor/Actuators/Actuators.cpp b/src/Motor/Actuators/Actuators.cpp index 592999f9c95ea2c95a56574a51b650b86afda313..70878c24976685e4c388bd4a751506363a3d7dd5 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 36a876cd7fef7e0a3bfd45096f3f3342319a9b0e..820b74693299491826e295a21ee2adc1897f47c2 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 f3d039dcc40e288d1404ea345e621379e73ab35c..5f5451d076129bb7e3cafcca4d10846024f1eb20 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 06211420c1ab8b76eae71c68b9ec96e0a70d092e..95916ba97ddbf33e45b4b462e74cd39cc95c09c0 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()