From 86553ba281bf7568c4b62c0771887a1f257f4aa5 Mon Sep 17 00:00:00 2001 From: Davide Mor <davide.mor@skywarder.eu> Date: Fri, 5 Jul 2024 23:23:09 +0200 Subject: [PATCH] [CanProtocol] Added VoltageData to the supported types, and renamed old BatteryVoltageSensorData --- .../canbus/CanProtocol/CanProtocolTypes.h | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/shared/drivers/canbus/CanProtocol/CanProtocolTypes.h b/src/shared/drivers/canbus/CanProtocol/CanProtocolTypes.h index 6a5c80d7e..cd867af34 100644 --- a/src/shared/drivers/canbus/CanProtocol/CanProtocolTypes.h +++ b/src/shared/drivers/canbus/CanProtocol/CanProtocolTypes.h @@ -127,6 +127,21 @@ inline Canbus::CanMessage toCanMessage(const BatteryVoltageSensorData& data) return message; } +inline Canbus::CanMessage toCanMessage(const VoltageData& data) +{ + Canbus::CanMessage message; + + uint32_t voltage; + memcpy(&voltage, &(data.voltage), sizeof(voltage)); + + message.id = -1; + message.length = 1; + message.payload[0] = (data.voltageTimestamp & ~0x3) << 30; + message.payload[0] |= voltage; + + return message; +} + inline PitotData pitotDataFromCanMessage(const Canbus::CanMessage& msg) { PitotData data; @@ -190,7 +205,7 @@ inline ServoData servoDataFromCanMessage(const Canbus::CanMessage& msg) return data; } -inline BatteryVoltageSensorData voltageDataFromCanMessage( +inline BatteryVoltageSensorData batteryVoltageDataFromCanMessage( const Canbus::CanMessage& msg) { BatteryVoltageSensorData data; @@ -203,4 +218,16 @@ inline BatteryVoltageSensorData voltageDataFromCanMessage( return data; } +inline VoltageData voltageDataFromCanMessage(const Canbus::CanMessage& msg) +{ + VoltageData data; + + uint32_t voltage = msg.payload[0]; + memcpy(&(data.voltage), &voltage, sizeof(data.voltage)); + + data.voltageTimestamp = (msg.payload[0] >> 30) & ~0x3; + + return data; +} + } // namespace Boardcore -- GitLab