Codice: Seleziona tutto
if ((handShakeStep == 8) && (lastResponseOK == 1)) {
// Abbiamo la risposta del SoC, procediamo
// 155 07 97 cf 54 71 78 00 70 - 155 07 97 - header, cf - footer
// 71 78 - valore in esadecimale, da convertire in decimale
String SoC = elmResponse;
SoC.replace("155", "");
SoC = SoC.substring(9, 14); // Estrai i caratteri dal decimo al quattordicesimo
unsigned long SoCl = 0;
char SoCc[5];
SoC.toCharArray(SoCc, 5);
SoCl = strtol(SoCc, NULL, 16);
float SoCf = SoCl / 400.0; // Dividi per 400 invece di moltiplicare per 0.02
webSocket.broadcastTXT("SoC: " + String(SoCf, 2));
snprintf (msg, MSG_BUFFER_SIZE, "%3.2f", SoCf);
mqtt_reconnect();
mqtt.publish("elm327report/result/SoC", msg, true);
// Report di successo, continuiamo con il prossimo passo
handShakeStep = 101;
lastResponseOK = 1;
}
Chiedo scusa per gli errori di scrittura, scrivo sempre con il cellulare e avvolte non so cosa scrivo