From 11eff855943e7052cd27f725d8265cca882ce98b Mon Sep 17 00:00:00 2001
From: Federico Mandelli <federicomandelli@skywarder.eu>
Date: Mon, 31 Jul 2023 12:31:16 +0200
Subject: [PATCH] [CanProtocol] Get a new tick after sending the first one

---
 src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp         | 4 ++--
 .../drivers/canbus/CanProtocol/test-can-protocol-2way.cpp     | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp b/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp
index 2884c27a4..8c87c9714 100644
--- a/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp
+++ b/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp
@@ -136,8 +136,6 @@ void CanProtocol::sendMessage(const CanMessage& msg)
                  static_cast<uint32_t>(CanProtocolIdMask::LEFT_TO_SEND));
     packet.length = byteForUint64(msg.payload[0]);
 
-    packet.timestamp = Boardcore::TimestampTimer::getTimestamp();
-
     // Splits payload[0] in the right number of uint8_t
     for (int i = 0; i < packet.length; i++)
         packet.data[i] = msg.payload[0] >> (8 * i);
@@ -145,6 +143,7 @@ void CanProtocol::sendMessage(const CanMessage& msg)
     // Send the first packet
     can->send(packet);
     // Updates the loadEstimator
+    packet.timestamp = miosix::getTick();
     loadEstimator->addPacket(packet);
     leftToSend--;
 
@@ -164,6 +163,7 @@ void CanProtocol::sendMessage(const CanMessage& msg)
 
         can->send(packet);
         // Updates the loadEstimator
+        packet.timestamp = miosix::getTick();
         loadEstimator->addPacket(packet);
         leftToSend--;
     }
diff --git a/src/tests/drivers/canbus/CanProtocol/test-can-protocol-2way.cpp b/src/tests/drivers/canbus/CanProtocol/test-can-protocol-2way.cpp
index 37d4b9e86..ce45b5492 100644
--- a/src/tests/drivers/canbus/CanProtocol/test-can-protocol-2way.cpp
+++ b/src/tests/drivers/canbus/CanProtocol/test-can-protocol-2way.cpp
@@ -38,7 +38,7 @@
 #include <functional>
 #include <string>
 
-constexpr uint32_t BAUD_RATE         = 500 * 1000;
+constexpr uint32_t BAUD_RATE         = 250 * 1000;
 constexpr float SAMPLE_POINT         = 87.5f / 100.0f;
 constexpr uint32_t MSG_DEADLINE      = 100;  // ms
 constexpr uint32_t MSG_LOST_DEADLINE = 400;  // ms
@@ -212,7 +212,7 @@ int main()
     protocol->start();
 
     mc.start();
-    const int slp = 10;
+    const int slp = 5;
     for (;;)
     {
         sendNewRequest();
-- 
GitLab