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 7ae4e1da99c375e38c16d9c56137f0664dd1405e..48bcba68d7a7cfada77c21b56e8101a9e612cd22 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 4aaeeaaaea12237c82e3fd5bd5ef31b12421295a..534b8d8445dc6aabb79073ff8941c488630740e9 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 185327fc8af97ed0a897857e658d3079fb6022fd..4c12388bc2ebb9d1cfab4ea3c1962786a8b204f0 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 */