From 2930bd3ebe5b5409928890cdd70ec74b38f77fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Betto?= <niccolo.betto@skywarder.eu> Date: Mon, 9 Sep 2024 19:58:17 +0200 Subject: [PATCH] [Payload][Stats] Use reference temperature from NAS ref --- .../Payload/FlightStatsRecorder/FlightStatsRecorder.cpp | 7 ++----- .../Payload/FlightStatsRecorder/FlightStatsRecorder.h | 2 +- .../Payload/StateMachines/NASController/NASController.cpp | 3 ++- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.cpp b/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.cpp index 58eb08bd5..a44fc8d43 100644 --- a/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.cpp +++ b/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.cpp @@ -106,7 +106,7 @@ void FlightStatsRecorder::updateAcc(const AccelerometerData &data) } } -void FlightStatsRecorder::updateNas(const NASState &data) +void FlightStatsRecorder::updateNas(const NASState &data, float refTemperature) { auto state = getModule<FlightModeManager>()->getState(); Lock<FastMutex> lock{statsMutex}; @@ -126,10 +126,7 @@ void FlightStatsRecorder::updateNas(const NASState &data) stats.maxSpeedTs = data.timestamp; } - // TODO: Grab ref temperature from global ReferenceValues - float mach = Aeroutils::computeMach( - data.d, speed, - ReferenceConfig::defaultReferenceValues.refTemperature); + float mach = Aeroutils::computeMach(data.d, speed, refTemperature); if (mach > stats.maxMach) { diff --git a/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.h b/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.h index dcc8cc974..3a28c65da 100644 --- a/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.h +++ b/src/boards/Payload/FlightStatsRecorder/FlightStatsRecorder.h @@ -85,7 +85,7 @@ public: void deploymentDetected(uint64_t ts, float alt); void updateAcc(const Boardcore::AccelerometerData &data); - void updateNas(const Boardcore::NASState &data); + void updateNas(const Boardcore::NASState &data, float refTemperature); void updatePressure(const Boardcore::PressureData &data); private: diff --git a/src/boards/Payload/StateMachines/NASController/NASController.cpp b/src/boards/Payload/StateMachines/NASController/NASController.cpp index c6b4b53f0..93f1c5e5a 100644 --- a/src/boards/Payload/StateMachines/NASController/NASController.cpp +++ b/src/boards/Payload/StateMachines/NASController/NASController.cpp @@ -353,8 +353,9 @@ void NASController::update() dynamicPitotTimestamp = dynamicPitot.pressureTimestamp; auto state = nas.getState(); + auto ref = nas.getReferenceValues(); - getModule<FlightStatsRecorder>()->updateNas(state); + getModule<FlightStatsRecorder>()->updateNas(state, ref.refTemperature); Logger::getInstance().log(state); } -- GitLab