From e9327e6f5f5ea5fd5fe3d594da833a421f1c85b5 Mon Sep 17 00:00:00 2001 From: Benas Brazdziunas Date: Sat, 12 Feb 2022 02:02:19 +0000 Subject: [PATCH] Moved multiplier/divider to scaled_channel factor (#3924) * Moved multipiers and dividers to scaled_channel * added linkto AIM can protocol --- firmware/controllers/can/can_dash.cpp | 31 +++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/firmware/controllers/can/can_dash.cpp b/firmware/controllers/can/can_dash.cpp index 1732d108c0..1728457dba 100644 --- a/firmware/controllers/can/can_dash.cpp +++ b/firmware/controllers/can/can_dash.cpp @@ -1103,17 +1103,20 @@ void canDashboardHaltech(CanCycle cycle) { } } +//Based on AIM can protocol +//https://www.aimtechnologies.com/support/racingecu/AiM_CAN_101_eng.pdf + struct Aim5f0 { scaled_channel Rpm; - scaled_channel Tps; - scaled_channel Pps; + scaled_channel Tps; + scaled_channel Pps; scaled_channel Vss; }; static void populateFrame(Aim5f0& msg) { msg.Rpm = Sensor::getOrZero(SensorType::Rpm); - msg.Tps = 10 * Sensor::getOrZero(SensorType::Tps1); - msg.Pps = 10 * Sensor::getOrZero(SensorType::AcceleratorPedal); + msg.Tps = Sensor::getOrZero(SensorType::Tps1); + msg.Pps = Sensor::getOrZero(SensorType::AcceleratorPedal); msg.Vss = Sensor::getOrZero(SensorType::VehicleSpeed); } @@ -1133,17 +1136,17 @@ static void populateFrame(Aim5f1& msg) { } struct Aim5f2 { - scaled_channel Iat; - scaled_channel Ect; - scaled_channel FuelT; - scaled_channel OilT; + scaled_channel Iat; + scaled_channel Ect; + scaled_channel FuelT; + scaled_channel OilT; }; static void populateFrame(Aim5f2& msg) { - msg.Iat = (10 * Sensor::getOrZero(SensorType::Iat)) + 450; - msg.Ect = (10 * Sensor::getOrZero(SensorType::Clt)) + 450; - msg.FuelT = (10 * Sensor::getOrZero(SensorType::AuxTemp1)) + 450; - msg.OilT = (10 * Sensor::getOrZero(SensorType::AuxTemp2)) + 450; + msg.Iat = Sensor::getOrZero(SensorType::Iat) + 45; + msg.Ect = Sensor::getOrZero(SensorType::Clt) + 45; + msg.FuelT = Sensor::getOrZero(SensorType::AuxTemp1) + 45; + msg.OilT = Sensor::getOrZero(SensorType::AuxTemp2) + 45; } struct Aim5f3 { @@ -1165,7 +1168,7 @@ static void populateFrame(Aim5f3& msg) { struct Aim5f4 { scaled_channel Boost; - scaled_channel Vbat; + scaled_channel Vbat; scaled_channel FuelUse; scaled_channel Gear; }; @@ -1176,7 +1179,7 @@ static void populateFrame(Aim5f4& msg) { float boostBar = deltaKpa / 100; msg.Boost = boostBar; - msg.Vbat = 100 * Sensor::getOrZero(SensorType::BatteryVoltage); + msg.Vbat = Sensor::getOrZero(SensorType::BatteryVoltage); msg.FuelUse = 0; msg.Gear = 0; }