From aa3a2106aa220cdf7149a73dced325574b087243 Mon Sep 17 00:00:00 2001 From: Marcel Peterkau Date: Sun, 3 Dec 2023 23:49:41 +0100 Subject: [PATCH] added KTM 1290 Superduke (2023) to CAN-Sources --- Software/include/config.h | 8 +++++--- Software/src/can.cpp | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/Software/include/config.h b/Software/include/config.h index 22ee56b..a8e95e5 100644 --- a/Software/include/config.h +++ b/Software/include/config.h @@ -58,11 +58,13 @@ const size_t GPSBaudRateString_Elements = sizeof(GPSBaudRateString) / sizeof(GPS #ifdef FEATURE_ENABLE_CAN typedef enum CANSource_e { - KTM_890_ADV_R_2021 + KTM_890_ADV_R_2021, + KTM_1290_SD_R_2023 } CANSource_t; -const char CANSourceString[][28] = { - "KTM 890 Adventure R (2021)"}; +const char CANSourceString[][30] = { + "KTM 890 Adventure R (2021)", + "KTM 1290 Superduke R (2023)"}; const size_t CANSourceString_Elements = sizeof(CANSourceString) / sizeof(CANSourceString[0]); #endif diff --git a/Software/src/can.cpp b/Software/src/can.cpp index 39fa3d3..6e6ebe2 100644 --- a/Software/src/can.cpp +++ b/Software/src/can.cpp @@ -14,7 +14,18 @@ void Init_CAN() CAN0.init_Mask(0, 0, 0x07FF0000); // Init first mask... CAN0.init_Mask(1, 0, 0x07FF0000); // Init second mask... - CAN0.init_Filt(0, 0, 0x012D0000); // Init first filter... + + switch (LubeConfig.CANSource) + { + case KTM_890_ADV_R_2021: + CAN0.init_Filt(0, 0, 0x012D0000); // Init first filter... + break; + case KTM_1290_SD_R_2023: + CAN0.init_Filt(0, 0, 0x012D0000); // Init first filter... + break; + default: + break; + } CAN0.setMode(MCP_NORMAL); } @@ -33,19 +44,33 @@ void CAN_Process() uint32_t Process_CAN_WheelSpeed() { #define FACTOR_RWP_KMH_890ADV 18 // Divider to convert Raw Data to km/h - +#define FACTOR_RWP_KMH_1290SD 18 // Divider to convert Raw Data to km/h can_frame canMsg; static uint32_t lastRecTimestamp = 0; uint16_t RearWheelSpeed_raw; uint32_t milimeters_to_add = 0; + uint32_t RWP_millimeter_per_second = 0; if (CAN0.readMsgBuf(&canMsg.can_id, &canMsg.can_dlc, canMsg.data) == CAN_OK) { - RearWheelSpeed_raw = (uint16_t)canMsg.data[5] << 8 | canMsg.data[6]; - // raw / FACTOR_RWP_KMH_890ADV -> km/h * 100000 -> cm/h / 3600 -> cm/s - // raw * 500 -> cm/s - uint32_t RWP_millimeter_per_second = (((uint32_t)RearWheelSpeed_raw * 1000000) / FACTOR_RWP_KMH_890ADV) / 3600; + switch (LubeConfig.CANSource) + { + case KTM_890_ADV_R_2021: + // raw / FACTOR_RWP_KMH_890ADV -> km/h * 100000 -> cm/h / 3600 -> cm/s + // raw * 500 -> cm/s + RearWheelSpeed_raw = (uint16_t)canMsg.data[5] << 8 | canMsg.data[6]; + RWP_millimeter_per_second = (((uint32_t)RearWheelSpeed_raw * 1000000) / FACTOR_RWP_KMH_890ADV) / 3600; + break; + case KTM_1290_SD_R_2023: + // raw / FACTOR_RWP_KMH_1290SD -> km/h * 100000 -> cm/h / 3600 -> cm/s + // raw * 500 -> cm/s + RearWheelSpeed_raw = (uint16_t)canMsg.data[5] << 8 | canMsg.data[6]; + RWP_millimeter_per_second = (((uint32_t)RearWheelSpeed_raw * 1000000) / FACTOR_RWP_KMH_1290SD) / 3600; + break; + default: + break; + } uint32_t timesincelast = millis() - lastRecTimestamp; lastRecTimestamp = millis();