Auslesen CAN-BUS, RS-485 oder RS-232 (nur Auslesen)

Ich teste mit einem ESP32, wo die Multiplikation mit 0.01 den Typ auf float setzt. Also so:

void tftData_EMUS() {
  int x = 145;  // Abstand von Links für den Wert
  int y = 0;    // Abstand von Links für Beschriftung
  int o = 35;   // Offset-Wert

  img.setTextDatum(L_BASELINE);
  img.drawString(String(candata.emusMinCellVolt * 0.01 + 2), x, 1 * o, 2);
  img.drawString("Cmin [ V]", y, 1 * o, 4);

  img.drawString(String(candata.emusMaxCellVolt * 0.01 + 2), x, 2 * o, 2);
  img.drawString("Cmax [ V]", y, 2 * o, 4);

  img.drawString(String(candata.emusTotCellVolt * 0.01), x, 3 * o, 2);
  img.drawString("Ubat [ V]", y, 3 * o, 4);

  img.drawString(String(candata.emusMinCellTemp - 100.0), x, 4 * o, 2);
  img.drawString("Tmin [ °C]", y, 4 * o, 4);

  img.drawString(String(candata.emusMaxCellTemp - 100.0), x, 5 * o, 2);
  img.drawString("Tmax [°C]", y, 5 * o, 4);

  img.pushSprite(0, 40);
}

void tftData_MGM() {
  int x = 145;  // Abstand von Links für den Wert
  int y = 0;    // Abstand von Links für Beschriftung
  int o = 35;   // Offset-Wert

  img2.setTextDatum(L_BASELINE);
  img2.drawString(String(candata.batVoltage * 0.1), x, 1 * o, 2);
  img2.drawString("BATT [V]", y, 1 * o, 4);

  img2.drawString(String(candata.batCurrent * 0.1), x, 2 * o, 2);
  img2.drawString("BATT [A]", y, 2 * o, 4);

  img2.drawString(String(candata.rpm), x, 3 * o, 2);
  img2.drawString("RPM [1/min]", y, 3 * o, 4);

  img2.pushSprite(0, 40);
}

Ich bin faul, ist einfacher zu schreiben :zany_face:

80:20 Regel: 80% der Aufgaber schafft man in 20% der Zeit, die restlichen 20% benötigen dann 80% Zeit.

Ich liebe Bilder!