From a2b6a62103e1774f7452f9927fcd44ea59c489aa 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 57b170743..24c538b50 100644
--- a/src/Groundstation/Automated/SMA/SMA.cpp
+++ b/src/Groundstation/Automated/SMA/SMA.cpp
@@ -236,6 +236,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>();
@@ -301,6 +302,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 0b7f6bb91..b65ac904b 100644
--- a/src/Groundstation/LyraGS/BoardStatus.cpp
+++ b/src/Groundstation/LyraGS/BoardStatus.cpp
@@ -108,6 +108,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 3eb286799..4dcce99de 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