diff --git a/src/RIGv2/CanHandler/CanHandler.cpp b/src/RIGv2/CanHandler/CanHandler.cpp index ddfefe9bd04139ed9469166153319b944644d46b..42494b83b2c866f4996629dfe1c0957cd47b9342 100644 --- a/src/RIGv2/CanHandler/CanHandler.cpp +++ b/src/RIGv2/CanHandler/CanHandler.cpp @@ -213,7 +213,7 @@ void CanHandler::handleSensor(const Canbus::CanMessage& msg) { CanPressureData data = pressureDataFromCanMessage(msg); sdLogger.log(data); - sensors->setCanOxTankPressure(data); + sensors->setCanOxTankTopPressure(data); break; } @@ -221,7 +221,7 @@ void CanHandler::handleSensor(const Canbus::CanMessage& msg) { CanPressureData data = pressureDataFromCanMessage(msg); sdLogger.log(data); - sensors->setCanN2TankPressure(data); + sensors->setCanOxTankBottomPressure(data); break; } diff --git a/src/RIGv2/Radio/Radio.cpp b/src/RIGv2/Radio/Radio.cpp index 944fab614327106925678affebf65f305f1ca670..26bce81fea300e75fa65c225faa5ee18abdd254b 100644 --- a/src/RIGv2/Radio/Radio.cpp +++ b/src/RIGv2/Radio/Radio.cpp @@ -654,10 +654,11 @@ bool Radio::enqueueSystemTm(uint8_t tmId) tm.timestamp = TimestampTimer::getTimestamp(); // Sensors (either CAN or local) - tm.ox_tank_top_pressure = sensors->getN2TankPressure() - .pressure; // TODO: rename in mavlink - tm.ox_tank_bot_pressure = sensors->getOxTankPressure() - .pressure; // TODO: rename in mavlink + tm.n2_tank_pressure = sensors->getN2TankPressure().pressure; + tm.ox_tank_bot_pressure = + sensors->getOxTankBottomPressure().pressure; + tm.ox_tank_top_pressure = + sensors->getCanOxTankTopPressure().pressure; tm.combustion_chamber_pressure = sensors->getCombustionChamberPressure().pressure; tm.ox_tank_temperature = @@ -765,7 +766,7 @@ bool Radio::enqueueSensorTm(uint8_t tmId) tm.timestamp = data.pressureTimestamp; tm.pressure = data.pressure; - strcpy(tm.sensor_name, "VesselPressure"); + strcpy(tm.sensor_name, "OxVesselPressure"); mavlink_msg_pressure_tm_encode(Config::Radio::MAV_SYSTEM_ID, Config::Radio::MAV_COMPONENT_ID, @@ -783,7 +784,7 @@ bool Radio::enqueueSensorTm(uint8_t tmId) tm.timestamp = data.pressureTimestamp; tm.pressure = data.pressure; - strcpy(tm.sensor_name, "FillingPressure"); + strcpy(tm.sensor_name, "OxFillingPressure"); mavlink_msg_pressure_tm_encode(Config::Radio::MAV_SYSTEM_ID, Config::Radio::MAV_COMPONENT_ID, @@ -797,11 +798,11 @@ bool Radio::enqueueSensorTm(uint8_t tmId) mavlink_message_t msg; mavlink_pressure_tm_t tm; - PressureData data = getModule<Sensors>()->getOxTankPressure(); + PressureData data = getModule<Sensors>()->getOxTankBottomPressure(); tm.timestamp = data.pressureTimestamp; tm.pressure = data.pressure; - strcpy(tm.sensor_name, "BottomTankPressure"); + strcpy(tm.sensor_name, "OxTankBotPressure"); mavlink_msg_pressure_tm_encode(Config::Radio::MAV_SYSTEM_ID, Config::Radio::MAV_COMPONENT_ID, @@ -815,11 +816,11 @@ bool Radio::enqueueSensorTm(uint8_t tmId) mavlink_message_t msg; mavlink_pressure_tm_t tm; - PressureData data = getModule<Sensors>()->getN2TankPressure(); + PressureData data = getModule<Sensors>()->getCanOxTankTopPressure(); tm.timestamp = data.pressureTimestamp; tm.pressure = data.pressure; - strcpy(tm.sensor_name, "TopTankPressure"); + strcpy(tm.sensor_name, "OxTankTopPressure"); mavlink_msg_pressure_tm_encode(Config::Radio::MAV_SYSTEM_ID, Config::Radio::MAV_COMPONENT_ID, @@ -855,7 +856,7 @@ bool Radio::enqueueSensorTm(uint8_t tmId) tm.timestamp = data.loadTimestamp; tm.load = data.load; - strcpy(tm.sensor_name, "VesselWeight"); + strcpy(tm.sensor_name, "OxVesselWeight"); mavlink_msg_load_tm_encode(Config::Radio::MAV_SYSTEM_ID, Config::Radio::MAV_COMPONENT_ID, &msg, diff --git a/src/RIGv2/Sensors/Sensors.cpp b/src/RIGv2/Sensors/Sensors.cpp index 614a961aa01b1b0ef8a0e8bb2fe5200cad328f14..89e22b6491d570854891dfbacd5a8ee3d65707e0 100644 --- a/src/RIGv2/Sensors/Sensors.cpp +++ b/src/RIGv2/Sensors/Sensors.cpp @@ -56,7 +56,7 @@ bool Sensors::start() if (Config::Sensors::ADC_2::ENABLED) { adc2Init(); - oxTankPressureInit(); + oxTankBottomPressureInit(); n2TankPressureInit(); } @@ -123,16 +123,16 @@ PressureData Sensors::getN2FillingPressure() : PressureData{}; } -PressureData Sensors::getOxTankPressure() +PressureData Sensors::getOxTankBottomPressure() { if (useCanData) { - return getCanOxTankPressure(); + return getCanOxTankBottomPressure(); } else { - return oxTankPressure ? oxTankPressure->getLastSample() - : PressureData{}; + return oxTankBottomPressure ? oxTankBottomPressure->getLastSample() + : PressureData{}; } } @@ -223,10 +223,16 @@ PressureData Sensors::getCanN2TankPressure() return canN2TankPressure; } -PressureData Sensors::getCanOxTankPressure() +PressureData Sensors::getCanOxTankBottomPressure() +{ + Lock<FastMutex> lock{canMutex}; + return canOxTankBottomPressure; +} + +PressureData Sensors::getCanOxTankTopPressure() { Lock<FastMutex> lock{canMutex}; - return canOxTankPressure; + return canOxTankTopPressure; } PressureData Sensors::getCanCombustionChamberPressure() @@ -247,16 +253,22 @@ VoltageData Sensors::getCanMotorBatteryVoltage() return canMotorBatteryVoltage; } -void Sensors::setCanOxTankPressure(PressureData data) +void Sensors::setCanOxTankBottomPressure(PressureData data) { Lock<FastMutex> lock{canMutex}; - canN2TankPressure = data; + canOxTankBottomPressure = data; +} + +void Sensors::setCanOxTankTopPressure(PressureData data) +{ + Lock<FastMutex> lock{canMutex}; + canOxTankTopPressure = data; } void Sensors::setCanN2TankPressure(PressureData data) { Lock<FastMutex> lock{canMutex}; - canOxTankPressure = data; + canN2TankPressure = data; } void Sensors::setCanCombustionChamberPressure(PressureData data) @@ -320,7 +332,7 @@ std::vector<SensorInfo> Sensors::getSensorInfos() PUSH_SENSOR_INFO(n2Vessel1Pressure, "N2Vessel1Pressure"); PUSH_SENSOR_INFO(n2Vessel2Pressure, "N2Vessel2Pressure"); PUSH_SENSOR_INFO(n2FillingPressure, "N2FillingPressure"); - PUSH_SENSOR_INFO(oxTankPressure, "OxTankPressure"); + PUSH_SENSOR_INFO(oxTankBottomPressure, "OxTankBotPressure"); PUSH_SENSOR_INFO(n2TankPressure, "N2TankPressure"); PUSH_SENSOR_INFO(oxVesselWeight, "OxVesselWeight"); PUSH_SENSOR_INFO(rocketWeight, "RocketWeight"); @@ -571,9 +583,9 @@ void Sensors::n2FillingPressureCallback() sdLogger.log(N2FillingPressureData{getN2FillingPressure()}); } -void Sensors::oxTankPressureInit() +void Sensors::oxTankBottomPressureInit() { - oxTankPressure = std::make_unique<TrafagPressureSensor>( + oxTankBottomPressure = std::make_unique<TrafagPressureSensor>( [this]() { auto sample = getADC2LastSample(); @@ -586,9 +598,9 @@ void Sensors::oxTankPressureInit() Config::Sensors::Trafag::MAX_CURRENT); } -void Sensors::oxTankPressureCallback() +void Sensors::oxTankBottomPressureCallback() { - sdLogger.log(OxTankPressureData{oxTankPressure->getLastSample()}); + sdLogger.log(OxTankPressureData{oxTankBottomPressure->getLastSample()}); } void Sensors::n2TankPressureInit() @@ -739,11 +751,11 @@ bool Sensors::sensorManagerInit() map.emplace(std::make_pair(n2FillingPressure.get(), info)); } - if (oxTankPressure) + if (oxTankBottomPressure) { - SensorInfo info("OxTankPressure", Config::Sensors::ADS131M08::PERIOD, - [this]() { oxTankPressureCallback(); }); - map.emplace(std::make_pair(oxTankPressure.get(), info)); + SensorInfo info("OxTankBotPressure", Config::Sensors::ADS131M08::PERIOD, + [this]() { oxTankBottomPressureCallback(); }); + map.emplace(std::make_pair(oxTankBottomPressure.get(), info)); } if (n2TankPressure) diff --git a/src/RIGv2/Sensors/Sensors.h b/src/RIGv2/Sensors/Sensors.h index f7f9bffe5cf17952d3904eac82fda63387ce42af..1c3a2dba87df1e64dbcb8e8f37818a3ff220ec81 100644 --- a/src/RIGv2/Sensors/Sensors.h +++ b/src/RIGv2/Sensors/Sensors.h @@ -64,7 +64,7 @@ public: Boardcore::PressureData getN2Vessel1Pressure(); Boardcore::PressureData getN2Vessel2Pressure(); Boardcore::PressureData getN2FillingPressure(); - Boardcore::PressureData getOxTankPressure(); + Boardcore::PressureData getOxTankBottomPressure(); Boardcore::PressureData getN2TankPressure(); Boardcore::PressureData getCombustionChamberPressure(); @@ -78,7 +78,8 @@ public: Boardcore::VoltageData getBatteryVoltage(); Boardcore::VoltageData getMotorBatteryVoltage(); - Boardcore::PressureData getCanOxTankPressure(); + Boardcore::PressureData getCanOxTankBottomPressure(); + Boardcore::PressureData getCanOxTankTopPressure(); Boardcore::PressureData getCanN2TankPressure(); Boardcore::PressureData getCanCombustionChamberPressure(); Boardcore::TemperatureData getCanTankTemperature(); @@ -86,7 +87,8 @@ public: std::vector<Boardcore::SensorInfo> getSensorInfos(); - void setCanOxTankPressure(Boardcore::PressureData data); + void setCanOxTankBottomPressure(Boardcore::PressureData data); + void setCanOxTankTopPressure(Boardcore::PressureData data); void setCanN2TankPressure(Boardcore::PressureData data); void setCanCombustionChamberPressure(Boardcore::PressureData data); void setCanOxTankTemperature(Boardcore::TemperatureData data); @@ -109,8 +111,8 @@ private: void n2FillingPressureInit(); void n2FillingPressureCallback(); - void oxTankPressureInit(); - void oxTankPressureCallback(); + void oxTankBottomPressureInit(); + void oxTankBottomPressureCallback(); void n2TankPressureInit(); void n2TankPressureCallback(); @@ -146,7 +148,8 @@ private: std::atomic<bool> useCanData{false}; miosix::FastMutex canMutex; - Boardcore::PressureData canOxTankPressure; + Boardcore::PressureData canOxTankBottomPressure; + Boardcore::PressureData canOxTankTopPressure; Boardcore::PressureData canN2TankPressure; Boardcore::PressureData canCombustionChamberPressure; // TODO: N2 tank pressure from CAN @@ -159,7 +162,7 @@ private: std::unique_ptr<Boardcore::TrafagPressureSensor> n2Vessel1Pressure; std::unique_ptr<Boardcore::TrafagPressureSensor> n2Vessel2Pressure; std::unique_ptr<Boardcore::TrafagPressureSensor> n2FillingPressure; - std::unique_ptr<Boardcore::TrafagPressureSensor> oxTankPressure; + std::unique_ptr<Boardcore::TrafagPressureSensor> oxTankBottomPressure; std::unique_ptr<Boardcore::TrafagPressureSensor> n2TankPressure; std::unique_ptr<Boardcore::TwoPointAnalogLoadCell> oxVesselWeight; std::unique_ptr<Boardcore::TwoPointAnalogLoadCell> rocketWeight; diff --git a/src/RIGv2/StateMachines/TARS1/TARS1.cpp b/src/RIGv2/StateMachines/TARS1/TARS1.cpp index bc092337b3a836d34410b1d4ad4a79270aedb01e..2d1e27c004ddcf5845b3cba132cb95c99ae3f576 100644 --- a/src/RIGv2/StateMachines/TARS1/TARS1.cpp +++ b/src/RIGv2/StateMachines/TARS1/TARS1.cpp @@ -257,7 +257,7 @@ void TARS1::sample() { Sensors* sensors = getModule<Sensors>(); - pressureFilter.add(sensors->getOxTankPressure().pressure); + pressureFilter.add(sensors->getOxTankBottomPressure().pressure); massFilter.add(sensors->getOxTankWeight().load); medianSamples++;