From 43f90951636ca57f74c0b0c12b962cbb4024fe6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Caruso?= <niccolo.caruso@skywarder.eu> Date: Sat, 16 Nov 2024 08:16:11 +0100 Subject: [PATCH] [ARP] Log propagated NAS and main radio info Boardstatus: Now logging informations about the radio in MainRadioLog structure SMA: Now logging also the NAS state --- .../AutomatedAntennas/logdecoder.cpp | 3 ++ src/Groundstation/Automated/SMA/SMA.cpp | 2 ++ src/Groundstation/LyraGS/BoardStatus.cpp | 5 ++++ src/Groundstation/LyraGS/BoardStatus.h | 30 +++++++++++++++++++ 4 files changed, 40 insertions(+) diff --git a/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp b/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp index 2495a7aff..09165a379 100644 --- a/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp +++ b/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp @@ -23,6 +23,7 @@ #include <Groundstation/Automated/Actuators/ActuatorsData.h> #include <Groundstation/Automated/PinHandler/PinData.h> #include <Groundstation/Automated/SMA/SMAData.h> +#include <Groundstation/LyraGS/BoardStatus.h> #include <algorithms/Follower/FollowerData.h> #include <algorithms/NAS/NASState.h> #include <logger/Deserializer.h> @@ -50,6 +51,7 @@ using namespace tscpp; using namespace Boardcore; using namespace Antennas; +using namespace LyraGS; void registerTypes(Deserializer& ds) { @@ -65,6 +67,7 @@ void registerTypes(Deserializer& ds) ds.registerType<GPSData>(); ds.registerType<SMAStatus>(); ds.registerType<PinChangeData>(); + ds.registerType<MainRadioLog>(); } void showUsage(const string& cmdName) diff --git a/src/Groundstation/Automated/SMA/SMA.cpp b/src/Groundstation/Automated/SMA/SMA.cpp index 7ae4e1da9..48bcba68d 100644 --- a/src/Groundstation/Automated/SMA/SMA.cpp +++ b/src/Groundstation/Automated/SMA/SMA.cpp @@ -238,6 +238,7 @@ void SMA::update() AntennaAngles target = follower.getTargetAngles(); Boardcore::Logger::getInstance().log( Boardcore::AntennaAnglesLog(target, predicted.nPropagations)); + Boardcore::Logger::getInstance().log(predicted.getNasState()); // actuate the steppers auto steppers = getModule<Actuators>(); @@ -303,6 +304,7 @@ void SMA::update() AntennaAngles target = follower.getTargetAngles(); Boardcore::Logger::getInstance().log( Boardcore::AntennaAnglesLog(target, predicted.nPropagations)); + Boardcore::Logger::getInstance().log(predicted.getNasState()); // actuate the steppers steppers->setSpeed(StepperList::STEPPER_X, follow.horizontalSpeed); diff --git a/src/Groundstation/LyraGS/BoardStatus.cpp b/src/Groundstation/LyraGS/BoardStatus.cpp index 4aaeeaaae..534b8d844 100644 --- a/src/Groundstation/LyraGS/BoardStatus.cpp +++ b/src/Groundstation/LyraGS/BoardStatus.cpp @@ -110,6 +110,11 @@ void BoardStatus::arpRoutine() tm.main_rx_rssi = stats.rx_rssi; last_main_stats = stats; + + Logger::getInstance().log(MainRadioLog{ + tm.timestamp, tm.main_packet_tx_error_count, tm.main_tx_bitrate, + tm.main_packet_rx_success_count, tm.main_packet_rx_drop_count, + tm.main_rx_bitrate, tm.main_rx_rssi}); } if (ethernet_present) diff --git a/src/Groundstation/LyraGS/BoardStatus.h b/src/Groundstation/LyraGS/BoardStatus.h index 185327fc8..4c12388bc 100644 --- a/src/Groundstation/LyraGS/BoardStatus.h +++ b/src/Groundstation/LyraGS/BoardStatus.h @@ -43,6 +43,36 @@ class RadioMain; class RadioPayload; class EthernetGS; +/** + * @brief Logging struct for the main radio informations + * + */ +struct MainRadioLog +{ + uint64_t timestamp = 0; + uint16_t main_packet_tx_error_count = 0; + uint32_t main_tx_bitrate = 0; + uint16_t main_packet_rx_success_count = 0; + uint16_t main_packet_rx_drop_count = 0; + uint32_t main_rx_bitrate = 0; + float main_rx_rssi = 0; + + static std::string header() + { + return "timestamp,main_packet_tx_error_count,main_tx_bitrate,main_" + "packet_rx_success_count,main_packet_rx_drop_count,main_rx_" + "bitrate,main_rx_rssi\n"; + } + + void print(std::ostream& os) const + { + os << timestamp << "," << main_packet_tx_error_count << "," + << main_tx_bitrate << "," << main_tx_bitrate << "," + << main_packet_rx_success_count << "," << main_packet_rx_drop_count + << "," << main_rx_bitrate << "," << main_rx_rssi << "\n"; + } +}; + /** * @brief Utility to calculate the bitrate */ -- GitLab