From c4ebde74f2fe39487506c6be0d45f7e3e8119532 Mon Sep 17 00:00:00 2001 From: adrigongv23 Date: Fri, 24 Jul 2026 13:17:11 +0200 Subject: [PATCH] Fix de errores debido a las nuevas variables --- .../G26-Telemetria/include/data_processor.hpp | 4 +-- Firmware/G26-Telemetria/src/can.cpp | 14 ++------ .../G26-Telemetria/src/data_processor.cpp | 36 ++++++++++++------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Firmware/G26-Telemetria/include/data_processor.hpp b/Firmware/G26-Telemetria/include/data_processor.hpp index 8cbb6ee..cf7df29 100644 --- a/Firmware/G26-Telemetria/include/data_processor.hpp +++ b/Firmware/G26-Telemetria/include/data_processor.hpp @@ -17,7 +17,7 @@ public: volatile float current_vbatt_value = 0.0; volatile float current_tps_value = 0.0; - volatile int current_marcha_value = 0; + //volatile int current_marcha_value = 0; volatile float current_pcomb_value = 0.0; // bar volatile float current_taceite_value = 0.0; // grados C volatile float current_paceite_value = 0.0; // bar @@ -31,7 +31,7 @@ public: void send_serial_frame_0(int rpmh, int rpml, int tpsh, int tpsl, int vbatth, int vbattl, int ect); void send_serial_frame_1(int lmbh, int lmbl, int lmbth, int lmbtl, int fuelh, int fuell, int gear); void send_serial_frame_2(int shut, int fan, int lmbch, int lmbcl, int brakeh, int brakel, int aux1); - void send_serial_frame_3(int aux3, int aux4, int aux5, int aux6, int aux7, int aux8, int dig1); + void send_serial_frame_3(int oilth, int oiltl, int oilph, int oilpl, int maph, int mapl, int dig1); void send_serial_frame_4(int dig3, int dig4, int dig5, int dig6, int dig7, int dig8, int dig9); //Métodos extras diff --git a/Firmware/G26-Telemetria/src/can.cpp b/Firmware/G26-Telemetria/src/can.cpp index a6b5d19..6105ed5 100644 --- a/Firmware/G26-Telemetria/src/can.cpp +++ b/Firmware/G26-Telemetria/src/can.cpp @@ -73,16 +73,6 @@ void CAN::start_listening_task() { &_listen_task_handle // Task handle ); - // BaseType_t result = xTaskCreatePinnedToCore( - // listenTask, // Task function - // "CAN_Listen_Task", // Task name - // 4096, // Stack size (words) - // this, // Task parameter (this CAN instance) - // 1, // Priority - // &_listen_task_handle, // Task handle - // 0 // Core 0 (main loop typically runs on Core 1) - // ); - if (result == pdPASS) { Serial.println("CAN listening task created successfully"); } else { @@ -148,7 +138,7 @@ void CAN::listen() { // Check if alert happened uint32_t alerts_triggered; - twai_read_alerts(&alerts_triggered, pdMS_TO_TICKS(1000)); // Reduced timeout for more responsiveness + twai_read_alerts(&alerts_triggered, 0); // Reduced timeout for more responsiveness twai_status_info_t twaistatus; twai_get_status_info(&twaistatus); @@ -172,7 +162,7 @@ void CAN::listen() { int message_count = 0; while (twai_receive(&message, 0) == ESP_OK && !_should_stop_listening) { bool all_zeros = true; - for (int i = 0; i < message.data_length_code; i++) { + for (int i = 1; i < message.data_length_code; i++) { if (message.data[i] != 0) { all_zeros = false; break; diff --git a/Firmware/G26-Telemetria/src/data_processor.cpp b/Firmware/G26-Telemetria/src/data_processor.cpp index 81a5f78..38589c7 100644 --- a/Firmware/G26-Telemetria/src/data_processor.cpp +++ b/Firmware/G26-Telemetria/src/data_processor.cpp @@ -15,26 +15,17 @@ void DataProcessor::send_serial(byte type, unsigned int value) { Serial.write(dato, 8); //Se envía serialmente el mensaje, indicando su longituden bytes para ello. } -/* - - this->current_marcha_value - this->current_pcomb_value - this->current_taceite_value - this->current_paceite_value - this->current_map_value - this->current_lambda_value - this->current_lambda_obj_value -*/ - - //RPM + TPS + vBatt + ECT void DataProcessor::send_serial_frame_0(int rpmh, int rpml, int tpsh, int tpsl, int vbatth, int vbattl, int ect){ - //Calculos necesarios para obtener bien el formato de los valores necesarios + //Calculos necesarios para obtener bien el formato de los valores necesarios int rpm = (rpmh * 256) + rpml; double vbatt = ((vbatth * 256) + vbattl) / 100.0; int tps = (tpsh * 256) + tpsl; + //Serial.printf("TRAMA: 0\n"); + //Serial.printf("RPM: %d | VBATT: %f | TPS: %d | ECT: %d\n", rpm, vbatt, tps, ect); + // Actualizamos las variables globales para que puedan ser leidas por el protocolo UDP this->current_ect_value = ect; this->current_rpm_value = rpm; @@ -44,7 +35,17 @@ void DataProcessor::send_serial_frame_0(int rpmh, int rpml, int tpsh, int tpsl, void DataProcessor::send_serial_frame_1(int lmbh, int lmbl, int lmbth, int lmbtl, int fuelh, int fuell, int gear){ + float lambda = ((lmbh * 256) + lmbl) / 100.0; + float lambdaTarget = ((lmbth * 256) + lmbtl) / 100.0; + float presionComb = ((fuelh * 256) + fuell) / 100.0; + //Serial.printf("TRAMA: 1\n"); + //Serial.printf("LAMBDA: %f | LAMBDA TARGET: %f | PRESION COMBUSTIBLE: %f\n", lambda, lambdaTarget, presionComb); + + this->current_lambda_value = lambda; + this->current_lambda_obj_value = lambdaTarget; + this->current_pcomb_value = presionComb; + //this->current_marcha_value } void DataProcessor::send_serial_frame_2(int shut, int fan, int lmbch, int lmbcl, int brakeh, int brakel, int aux1){ @@ -52,7 +53,16 @@ void DataProcessor::send_serial_frame_2(int shut, int fan, int lmbch, int lmbcl, } void DataProcessor::send_serial_frame_3(int aux3, int aux4, int aux5, int aux6, int aux7, int aux8, int dig1){ + float tempOil = ((oilth * 256) + oiltl) / 100.0; + float presionOil = ((oilph * 256) + oilpl) / 100.0; + float map = ((maph * 256) + mapl) / 100.0; + //Serial.printf("TRAMA: 2\n"); + //Serial.printf("TEMP OIL: %f | PRESION OIL: %f | MAP: %f\n", tempOil, presionOil, map); + + this->current_taceite_value = tempOil; + this->current_paceite_value = presionOil; + this->current_map_value = map; }