diff --git a/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp b/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp index 2495a7affe4dd7dd93c68ce7d2d8d6f350a14097..09165a3799f5f6d80d44586c5fd7f190b23553d9 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 57b1707431eac53f15799160dfeb1d7feca1c915..24c538b50cf6a64bdf8a6a89c456eee6e19c1f11 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 0b7f6bb91c95ca19ae1e31f94340a0b79ffbfee5..b65ac904bdbabe308b7975ad6bf181dac7180195 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 3eb286799a41a297744808a0244e435ecfa7f4c6..4dcce99dec63988d291aaafa2f67f8577c502302 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 */