mirror of
https://github.com/adrigongv23/G26---Telemetry-Software.git
synced 2026-05-25 12:31:27 +02:00
- Hemos cambiado la táctica: ahora el archivo se abre al arrancar y SE QUEDA ABIERTO. - En lugar de abrir y cerrar el archivo cada vez (que es muy lento), usamos 'sync' para empujar los datos a la tarjeta.
164 lines
3.7 KiB
C++
164 lines
3.7 KiB
C++
#include "../include/data_processor.hpp"
|
|
|
|
|
|
//RPM + TPS + vBatt + ECT
|
|
void DataProcessor::send_serial_frame_0(int rpmh, int rpml, int tpsh, int tpsl, int vbatth, int vbattl, int ect){
|
|
|
|
car.ect = ect; // GUARDAR LA VARIABLE DEL FRAME EN LA ESTRUCTURA
|
|
|
|
// El resto de variables no son relevantes ahora, se quedan comentadas para ahorrar memoria
|
|
// int rpm = (rpmh * 256) + rpml;
|
|
// int tps = (tpsh * 256) + tpsl;
|
|
// double vbatt = ((vbatth * 256) + vbattl) / 100.0;
|
|
|
|
// 2. Escribimos en la SD
|
|
flushToSD();
|
|
}
|
|
|
|
|
|
|
|
//LAMB + LAMBTRG + FUEL + GEAR
|
|
void DataProcessor::send_serial_frame_1(int lmbh, int lmbl, int lmbth, int lmbtl, int fuelh, int fuell, int gear){
|
|
|
|
|
|
// int lmb = (lmbh * 256) + lmbl;
|
|
// int lmbtrg = (lmbth * 256) + lmbtl;
|
|
// int fuel = (fuelh * 256) + fuell;
|
|
|
|
}
|
|
|
|
|
|
void DataProcessor::send_serial_frame_2(int shut, int fan, int lmbch, int lmbcl, int brakeh, int brakel, int aux1){
|
|
// int lmbcorrect = (lmbch * 256) + lmbcl;
|
|
// int brake = (brakeh * 256) + brakel;
|
|
|
|
// char shut_str[10];
|
|
// char fan_str[10];
|
|
// char aux1_str[10];
|
|
}
|
|
void DataProcessor::send_serial_frame_3(int aux3, int aux4, int aux5, int aux6, int aux7, int aux8, int dig1){
|
|
|
|
// char aux3_str[10];
|
|
// char aux4_str[10];
|
|
// char aux5_str[10];
|
|
// char aux6_str[10];
|
|
// char aux7_str[10];
|
|
// char aux8_str[10];
|
|
// char dig1_str[10];
|
|
|
|
// if (aux3 == 1){
|
|
// strcpy(aux3_str, "ON");
|
|
// } else {
|
|
// strcpy(aux3_str, "OFF");
|
|
// }
|
|
|
|
// if (aux4 == 1){
|
|
|
|
// strcpy(aux4_str, "ON");
|
|
// } else {
|
|
// strcpy(aux4_str, "OFF");
|
|
// }
|
|
|
|
// if (aux5 == 1){
|
|
// strcpy(aux5_str, "ON");
|
|
// } else {
|
|
// strcpy(aux5_str, "OFF");
|
|
// }
|
|
|
|
// if (aux6 == 1){
|
|
// strcpy(aux6_str, "ON");
|
|
// } else {
|
|
// strcpy(aux6_str, "OFF");
|
|
// }
|
|
|
|
// if (aux7 == 1){
|
|
// strcpy(aux7_str, "ON");
|
|
// } else {
|
|
// strcpy(aux7_str, "OFF");
|
|
// }
|
|
|
|
// if (aux8 == 1){
|
|
// strcpy(aux8_str, "ON");
|
|
// } else {
|
|
// strcpy(aux8_str, "OFF");
|
|
// }
|
|
|
|
// if (dig1 == 1){
|
|
// strcpy(dig1_str, "ON");
|
|
// } else {
|
|
// strcpy(dig1_str, "OFF");
|
|
// }
|
|
}
|
|
|
|
void DataProcessor::send_serial_frame_4(int dig3, int dig4, int dig5, int dig6, int dig7, int dig8, int dig9){
|
|
|
|
// char dig3_str[10];
|
|
// char dig4_str[10];
|
|
// char dig5_str[10];
|
|
// char dig6_str[10];
|
|
// char dig7_str[10];
|
|
// char dig8_str[10];
|
|
// char dig9_str[10];
|
|
|
|
// if (dig3 == 1){
|
|
// strcpy(dig3_str, "ON");
|
|
// } else {
|
|
// strcpy(dig3_str, "OFF");
|
|
// }
|
|
|
|
// if (dig4 == 1){
|
|
// strcpy(dig4_str, "ON");
|
|
// } else {
|
|
// strcpy(dig4_str, "OFF");
|
|
// }
|
|
|
|
// if (dig5 == 1){
|
|
// strcpy(dig5_str, "ON");
|
|
// } else {
|
|
// strcpy(dig5_str, "OFF");
|
|
// }
|
|
|
|
// if (dig6 == 1){
|
|
// strcpy(dig6_str, "ON");
|
|
// } else {
|
|
// strcpy(dig6_str, "OFF");
|
|
// }
|
|
|
|
// if (dig7 == 1){
|
|
// strcpy(dig7_str, "ON");
|
|
// } else {
|
|
// strcpy(dig7_str, "OFF");
|
|
// }
|
|
|
|
// if (dig8 == 1){
|
|
// strcpy(dig8_str, "ON");
|
|
// } else {
|
|
// strcpy(dig8_str, "OFF");
|
|
// }
|
|
|
|
// if (dig9 == 1){
|
|
// strcpy(dig9_str, "ON");
|
|
// } else {
|
|
// strcpy(dig9_str, "OFF");
|
|
// }
|
|
|
|
}
|
|
|
|
// ESCRITURA EN SD
|
|
|
|
void DataProcessor::flushToSD() {
|
|
// Verificamos que los punteros existan Y que el archivo esté abierto
|
|
if (_sd && _logFile && _logFile->isOpen()) {
|
|
|
|
// 1. Escribimos los datos
|
|
_logFile->print(millis());
|
|
_logFile->print(",");
|
|
_logFile->println(car.ect);
|
|
|
|
// 2. SYNC
|
|
// Esto fuerza a la SD a guardar físicamente los datos AHORA MISMO,
|
|
// pero mantiene el archivo abierto para la siguiente vuelta.
|
|
_logFile->sync();
|
|
|
|
}
|
|
}
|