From 476dc8879cc3ef7a8fd12ec9e78c7caa1240f7b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nicol=C3=B2=20Caruso?= <niccolo.caruso@skywarder.eu>
Date: Wed, 2 Oct 2024 15:17:14 +0200
Subject: [PATCH] [submodule, ARP fix] skyward-boardcore, fix for chrono, logs
 constructors, logdecoder

skyward-boardcore: now using for Propagator and Follower std::chrono for the interface.

SMA: Log constructors avoided, using now AntennaAnglesLog instead of AntennaAngles directly.

SMAConfig: Using chrono for the configuration constexpr

lyra-gs-entry: dipswitch redundant 0 for or operation

logdecoder: Now using AntennaAnglesLog
---
 src/boards/Groundstation/Automated/Config/SMAConfig.h  |  5 ++++-
 src/boards/Groundstation/Automated/SMA/SMA.cpp         | 10 ++++------
 src/entrypoints/Groundstation/lyra-gs-entry.cpp        |  4 ++--
 .../logdecoder/AutomatedAntennas/logdecoder.cpp        |  3 ++-
 4 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/boards/Groundstation/Automated/Config/SMAConfig.h b/src/boards/Groundstation/Automated/Config/SMAConfig.h
index bf6ad7cf2..e22f0d193 100644
--- a/src/boards/Groundstation/Automated/Config/SMAConfig.h
+++ b/src/boards/Groundstation/Automated/Config/SMAConfig.h
@@ -21,6 +21,9 @@
  */
 
 #pragma once
+#include <chrono>
+
+/* linter off */ using namespace std::chrono;
 
 namespace Antennas
 {
@@ -29,7 +32,7 @@ namespace SMAConfig
 {
 
 /// @brief Period of the propagator algorithm [ms].
-constexpr uint32_t UPDATE_PERIOD = 100;  // 10 Hz
+constexpr milliseconds UPDATE_PERIOD = 100ms;  // 10 Hz
 
 }  // namespace SMAConfig
 }  // namespace Antennas
diff --git a/src/boards/Groundstation/Automated/SMA/SMA.cpp b/src/boards/Groundstation/Automated/SMA/SMA.cpp
index 52bced99a..c14fbf723 100644
--- a/src/boards/Groundstation/Automated/SMA/SMA.cpp
+++ b/src/boards/Groundstation/Automated/SMA/SMA.cpp
@@ -235,10 +235,9 @@ void SMA::update()
             FollowerState follow = follower.getState();
 
             // Log the target angles and propagations info
-            AntennaAngles target  = follower.getTargetAngles();
-            target.nrPropagations = predicted.nPropagations;
+            AntennaAngles target = follower.getTargetAngles();
             Boardcore::Logger::getInstance().log(
-                static_cast<Boardcore::AntennaAngles>(target));
+                Boardcore::AntennaAnglesLog(target, predicted.nPropagations));
 
             // actuate the steppers
             auto steppers = getModule<Actuators>();
@@ -301,10 +300,9 @@ void SMA::update()
             FollowerState follow = follower.getState();
 
             // Log the target angles and propagations info
-            AntennaAngles target  = follower.getTargetAngles();
-            target.nrPropagations = predicted.nPropagations;
+            AntennaAngles target = follower.getTargetAngles();
             Boardcore::Logger::getInstance().log(
-                static_cast<Boardcore::AntennaAngles>(target));
+                Boardcore::AntennaAnglesLog(target, predicted.nPropagations));
 
             // actuate the steppers
             steppers->setSpeed(StepperList::STEPPER_X, follow.horizontalSpeed);
diff --git a/src/entrypoints/Groundstation/lyra-gs-entry.cpp b/src/entrypoints/Groundstation/lyra-gs-entry.cpp
index 6e5b61715..67afc5177 100644
--- a/src/entrypoints/Groundstation/lyra-gs-entry.cpp
+++ b/src/entrypoints/Groundstation/lyra-gs-entry.cpp
@@ -69,7 +69,7 @@ DipStatusLyraGS getDipStatus(uint8_t read)
     dipRead.payloadHasBackup = 1 & (read >> 2);
     dipRead.mainTXenable     = 1 & (read >> 3);
     dipRead.payloadTXenable  = 1 & (read >> 4);
-    dipRead.ipConfig         = 0 | (read >> 5);
+    dipRead.ipConfig         = read >> 5;
     return dipRead;
 }
 
@@ -128,7 +128,7 @@ int main()
     GpioPin clk          = dipSwitch::clk::getPin();
     GpioPin qh           = dipSwitch::qh::getPin();
 
-    DipSwitch dip(sh, clk, qh, microSecClk);
+    DipSwitch dip(sh, clk, qh, std::chrono::microseconds(microSecClk));
     DipStatusLyraGS dipRead = getDipStatus(dip.read());
 
     DependencyManager manager;
diff --git a/src/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp b/src/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp
index d23475aee..2495a7aff 100644
--- a/src/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp
+++ b/src/scripts/logdecoder/AutomatedAntennas/logdecoder.cpp
@@ -31,6 +31,7 @@
 #include <sensors/Vectornav/VN300/VN300Data.h>
 #include <tscpp/stream.h>
 
+#include <cstdint>
 #include <fstream>
 #include <iostream>
 #include <stdexcept>
@@ -60,7 +61,7 @@ void registerTypes(Deserializer& ds)
     ds.registerType<StepperYData>();
     ds.registerType<VN300Data>();
     ds.registerType<NASState>();
-    ds.registerType<AntennaAngles>();
+    ds.registerType<AntennaAnglesLog>();
     ds.registerType<GPSData>();
     ds.registerType<SMAStatus>();
     ds.registerType<PinChangeData>();
-- 
GitLab