Nach Neuinstallation geht nichts mehr

Hallo zusammen,

in Folge des hässlichen Absturzes von Windows wurde der Rechner neu aufgesetzt und ein neuer Laptop angeschafft.
Auf beiden Rechner kompilieren die Programme nicht mehr, es kommt immer der gleiche Fehler: mit etlichen Variablen:

In file included from C:\Users\henry\Documents\Arduino\sketchbook\wohnmobil\wohnmobil_04c_inkplate\wohnmobil_04c_inkplate.ino:9:
C:\Users\xxxxx\Documents\Arduino\sketchbook\wohnmobil\wohnmobil_04c_inkplate\objekte.h: In constructor 'Tank::Tank(int, int, int, int, int, uint16_t, int, ADS1115_MUX, int, int)':
objekte.h:44:11: error: 'Tank::t_2' will be initialized after [-Werror=reorder]
float t_2; //Alarmwert 2 Temperatur
^~~
objekte.h:22:9: error: 'int Tank::breite' [-Werror=reorder]
int breite;
^~~~~~
objekte.h:46:5: error: when initialized here [-Werror=reorder]
Tank(int x, int y, int h, int f_1, int f_2, uint16_t f, int i, ADS1115_MUX c, int aw, int ao) // Konstruktor Tank
^~~~
objekte.h:36:9: error: 'Tank::arrayoffset' will be initialized after [-Werror=reorder]
int arrayoffset;
^~~~~~~~~~~
objekte.h:26:9: error: 'int Tank::x_text1' [-Werror=reorder]
int x_text1;
^~~~~~~
...
...
...

Da an den Programmen nichts geändert wurde und alle kompiliert und auf dem Board getestet wurden weiß ich nicht mal ansatzweise wo ich mit suchen anfangen sollte.

Was kann so etwas verursachen?

cu

Sie haben wahrscheinlich in den Einstellungen alle Kompilierungswarnungen aktiviert.

Veröffentlichen Sie den Quellcode der Tank-Klasse (mindestens die Reihenfolge der Variablen und des Konstruktors). Sie initialisieren die Variablen wahrscheinlich in einer anderen Reihenfolge als ihrer Deklarationsreihenfolge.

Du benutzt evtl. eine neuere Core-Version, und damit einen neueren Compiler durch die Neuinstallation. Die sind kritischer, als die Vorgänger und bei einigen sind Warnungen den Errors gleich gestellt.
Welchen MC und welche Core-Version nutzt Du?

Gruß Tommy

Auf Standard stellen erstmal ob funktioniert, so werden flüchtige Warnungen angezeigt aber läuft durch.
( Core ESP8266 2.7.4, ESP32 2.0.14 )

Am leichtesten machst du es dir, wenn du die IDE-Version und core-Version installierst, die du auch zuvor drauf hattest. Das gilt meist auch für die Libraries.

Wird Kritisch wen man nicht im Sketch nicht angegeben hat womit erstellt wurde.
Beste Methode alles in Portable stecken was man braucht, ist zusatz Arbeit welche aber macht sich bezahlt.
Ja man hat danach 20 x die gleichen Lib's auf Rechner was aber nicht das Problem sollte sein

Genau so ist das. Ich notiere immer alles im Sketch, genau so jede gemachte Änderung kommt da mit rein.
Alles im Sketch dokumentiert hilft bei solchen Problemen wie "ungewollte" Änderungen.

Ja ...

Auf Standard läuft das fehlerfrei durch ....

???? Am Code selbst ist ja nichts geändert???? Wie kann das einmal kompilieren und dann überhaupt nicht? Das Problem sollte doch immer noch da sein ....

Gerade gesehen, da sind tatsächlich Verschiebungen.
Aber float t_1, t_2 werden hintereinander abgehandelt, t_2 Fehler, t_1 nicht.
Hier die komplette "Konstruktorei" .....

#ifndef objekte_h
#define objekte_h

#include <Arduino.h>

#include "definitionen.h"

#include "bitmaps_48.h"

// Klassendefinitionen

class Tank {

  private:
    int verh;     //Darstellung 1:1, 1:2
    int liter;
    int spg_fuell;
    int fuellstand[225];

  protected:
    int hoehe;
    int breite;
    uint16_t farbe;     //Füllfarbe
    float temperatur;
    int temp_i;         //Index DS18B20
    int x_text1;
    int y_text1;
    int s_text1;
    uint16_t f_text1;
    int x_text2;
    int y_text2;
    int s_text2;
    uint16_t f_text2;
    ADS1115_MUX channel;
    int alarmwert_i;    //Alarmbehandlung
    int arrayoffset;

  public:
    int x_pos;
    int y_pos;
    int f_1;          //Alarmwert 1 Füllstand
    int f_2;          //Alarmwert 2 Füllstand
    float t_1;        //Alarmwert 1 Temperatur
    float t_2;        //Alarmwert 2 Temperatur

    Tank(int x, int y, int h, int f_1, int f_2, uint16_t f, int i, ADS1115_MUX c, int aw, int ao)   // Konstruktor Tank
      : verh{ 1 },
        liter{ 0 },
        fuellstand{350, 385, 408, 454, 511, 557, 626, 684, 741, 787, 844, 891, 936, 1006, 1052, 1098, 1178, 1224, 1281, 1339,
                   1397, 1454, 1500, 1547, 1604, 1661, 1719, 5690, 5700, 1710, 1720, 1730, 1740, 1750, 1760, 1770, 1780, 1790, 1800, 1810,
                   1820, 1830, 1840, 1850, 1860, 1870, 1880, 1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010,
                   2020, 2030, 2040, 2050, 2060, 2070, 2080, 2090, 2100, 2110, 2120, 2130, 2140, 2150, 2160, 2170, 2180, 2190, 2200, 2210,
                   2220, 2230, 2240, 2250, 2260, 2270, 2280, 2290, 2300, 2310, 2320, 2340, 2350, 2360, 2370, 2380, 2390, 2400, 2410, 2420,
                   2430, 2440, 2450, 2460, 2470, 2480, 2490, 2500, 2510, 2520, 2530, 2540, 2550, 2560, 2570, 2580, 2590, 2600, 2610, 2620, 2630,
                   0, 0, 0,
                   43, 157, 275, 387, 517, 624, 734, 847, 962, 1058, 1149, 1253, 1345, 1448, 1549, 1653, 1746, 1844, 1946, 2047,
                   2150, 2251, 2344, 2435, 2527, 2622, 2718, 5700, 5710, 1720, 1730, 1740, 1750, 1760, 1770, 1780, 1790, 1800, 1810, 1820,
                   1830, 1840, 1850, 1860, 1870, 1880, 1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010, 2020,
                   2030, 2040, 2050, 2060, 2070, 2080, 2090, 2100, 2110, 2120, 2130, 2140, 2150, 2160, 2170, 2180, 2190, 2200, 2210, 2220,
                   2230, 2240, 2250, 2260, 2270, 2280, 2290, 2300, 2310, 2320, 2340, 2350, 2360, 2370, 2380, 2390, 2400, 2410, 2420, 2430, 2440},
        hoehe{ h },
        f_1{ f_1 },
        f_2{ f_2 },
        t_1{ 10 },
        t_2{ 5 },
        breite{ 100 },
        farbe{ f },
        temperatur{ 0 },
        temp_i{ i },
        channel{ c },
        alarmwert_i{ aw },
        arrayoffset { ao},
        x_text1{ 0 },
        y_text1{ 0},
        s_text1{ 3 },
        f_text1{ 0 },
        x_text2{ 0 },
        y_text2{ 0 },
        s_text2{ 3 },
        f_text2{ 0 },
        x_pos{ x },
        y_pos{ y } {}

    Tank(int x, int y, uint16_t f, int i, ADS1115_MUX c, int aw)    // Konstruktor Batterie
      : hoehe{ 55 },
        t_1{ 10 },
        t_2{ 5 },
        breite{ 170 },
        farbe{ f },
        temperatur{ 0 },
        temp_i{ i },
        channel{ c },
        alarmwert_i{ aw },
        x_text1{ 0 },
        y_text1{ 0 },
        s_text1{ 3 },
        f_text1{ 0 },
        x_text2{ 0},
        y_text2{ 0 },
        s_text2{ 3 },
        f_text2{ 0 },
        x_pos{ x },
        y_pos{ y } {}

    Tank(int x, int y, int i)   // Konstruktor Werte
      : verh{ 1 },
        hoehe{ 200 },
        t_1{ 15 },
        t_2{ 0 },
        breite{ 200 },
        farbe{ INKPLATE_WHITE },
        temperatur{ 0 },
        temp_i{ i },
        alarmwert_i{ 50 },
        x_text1{ 0 },
        y_text1{ 0 },
        s_text1{ 3 },
        f_text1{ 0 },
        x_text2{ 0},
        y_text2{ 0 },
        s_text2{ 3 },
        f_text2{ 0 },
        x_pos{ x },
        y_pos{ y } {}

    void zeichnen(Inkplate &display);

    void temp_messen();

    void fuell_messen(ADS1115_WE &adc);

    void fuellen(Inkplate &display);

};

// Objekte Tank erzeugen - x-pos, y-pos, Tankgröße(L), 2x Alarmwerte Füllstand, Füllfarbe, Index 18B20, Eingang ADS1115, Wert Alarmbehandlung, Arrayoffset
Tank tank_fw(20, 190, 26, 8, 5, INKPLATE_BLUE, 0, ADS1115_COMP_2_GND, 30, 0);
Tank tank_aw(95, 335, 26, 18, 22, INKPLATE_ORANGE, 0, ADS1115_COMP_3_GND, 40, 124);



class Batterie : public Tank {

  private:
    float spg;

  public:
    float s_1;      // Alarmschwelle 1
    float s_2;      // Alarmschwelle 2

    Batterie(int x_pos, int y_pos, uint16_t farbe, int temp_i,  ADS1115_MUX channel, int alarmwert_i, float s_1, float s_2)
      : Tank{ x_pos, y_pos, farbe, temp_i, channel, alarmwert_i },
        spg{ 0 },
        s_1{ s_1 },
        s_2{ s_2 } {}

    void zeichnen(Inkplate &display);

    void spg_messen(ADS1115_WE &adc);

    void temp_messen();

    void fuellen(Inkplate &display);

};

// Objekte Batterie erzeugen - x-pos, y-pos, Füllfarbe, Index 18B20, Eingang ADS1115, Wert Alarmbehandlung , 2x Alarmwerte
Batterie batt_bord(15, 15, INKPLATE_WHITE, 1, ADS1115_COMP_0_GND, 10, 12.6, 12.0);
Batterie batt_kfz(15, 85, INKPLATE_WHITE, 1, ADS1115_COMP_1_GND, 20, 12.4, 12.1);



class Werte : public Tank {

  private:
    float temperatur_aussen;    // DS18B20
    float feuchte;
    float luftdruck;
    float gas;
    float hoehe;
    int x_text3;
    int y_text3;
    int s_text3;
    uint16_t f_text3;
    int x_text4;
    int y_text4;
    int s_text4;
    uint16_t f_text4;
    int x_text5;
    int y_text5;
    int s_text5;
    uint16_t f_text5;


  public:

    Werte(int x_pos, int y_pos, int temp_i)
      : Tank{ x_pos, y_pos, temp_i },
        temperatur_aussen{ 0 },
        feuchte{ 0 },
        luftdruck{ 0 },
        gas{ 0 },
        hoehe{ 0 },
        x_text3{ 0 },
        y_text3{ 0},
        s_text3{ 3 },
        f_text3{ 0 },
        x_text4{ 0 },
        y_text4{ 0},
        s_text4{ 3 },
        f_text4{ 0 },
        x_text5{ 0 },
        y_text5{ 0},
        s_text5{ 3 },
        f_text5{ 0 } {}

    void pos_berechnen();

    void messen();

    void zeichnen(Inkplate &display);

};

// Objekt Werte erzeugen - x-pos, y-pos, Index 18B20,
Werte werte(290, 250, 2);


// Ende Klassendefinitionen

Da werde ich mit einer Kopie rangehen, mal sehen was das ausmacht.

Auf jeden Fall kann ich die Nacht ruhig schlafen ...

Dank an alle ...

cu

Hallo,

du hast einen "reorder" Fehler. Mit schärferer Einstellung werden Warnungen zu Fehlern.
Du musst deine Initialisierungsreihenfolgen aufräumen.
Zumindestens in der Tank Klasse ist da etwas durcheinander.
Du verwendest bspw. i als 7. und 4. und 3. Element im Konstruktor, weist das aber als 1. Wert in den Initialisierungslisten zu. Das mag der Compiler nicht.
Einfach zu merken. Die Reihenfolge der Deklarationen, Elemente im Konstruktor und die Reihenfolge in der Initialisierung (Verwendung) sollten alle gleich sein. Dann gibt es keine Probleme.

:roll_eyes: Nicht nur da .....

Das verstehe ich nicht.
i übergibt den Wert für temp_i.
In Werte gibt es nur x_pos, y_pos und eben temp_i zum erzeugen des Objektes.
In den Anderen einiges mehr. Müsste es da nicht immer an der Stelle stehen, an der temp_i im Konstruktor steht?

Ich räume jetzt erst mal auf ....

Ok, Stunden später ...

// Klassendefinitionen

class Tank {

  private:
    int verh;     //Darstellung 1:1, 1:2
    int liter;
    int spg_fuell;
    int fuellstand[225];

  protected:
    int hoehe;
    int breite;
    uint16_t farbe;     //Füllfarbe
    float temperatur;
    int temp_i;         //Index DS18B20
    ADS1115_MUX channel;
    int alarmwert_i;    //Alarmbehandlung
    int arrayoffset;   
    int x_text1;
    int y_text1;
    int s_text1;
    uint16_t f_text1;
    int x_text2;
    int y_text2;
    int s_text2;
    uint16_t f_text2;
    
  public:
    int x_pos;
    int y_pos;
    int f_1;          //Alarmwert 1 Füllstand
    int f_2;          //Alarmwert 2 Füllstand
    float t_1;        //Alarmwert 1 Temperatur
    float t_2;        //Alarmwert 2 Temperatur

    Tank(int h, uint16_t f, int i, ADS1115_MUX c, int aw, int ao, int x, int y, int f_1, int f_2)   // Konstruktor Tank
      : verh{ 1 },
        liter{ 0 },
        spg_fuell{ 0 },
        fuellstand{350, 385, 408, 454, 511, 557, 626, 684, 741, 787, 844, 891, 936, 1006, 1052, 1098, 1178, 1224, 1281, 1339,
                   1397, 1454, 1500, 1547, 1604, 1661, 1719, 5690, 5700, 1710, 1720, 1730, 1740, 1750, 1760, 1770, 1780, 1790, 1800, 1810,
                   1820, 1830, 1840, 1850, 1860, 1870, 1880, 1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010,
                   2020, 2030, 2040, 2050, 2060, 2070, 2080, 2090, 2100, 2110, 2120, 2130, 2140, 2150, 2160, 2170, 2180, 2190, 2200, 2210,
                   2220, 2230, 2240, 2250, 2260, 2270, 2280, 2290, 2300, 2310, 2320, 2340, 2350, 2360, 2370, 2380, 2390, 2400, 2410, 2420,
                   2430, 2440, 2450, 2460, 2470, 2480, 2490, 2500, 2510, 2520, 2530, 2540, 2550, 2560, 2570, 2580, 2590, 2600, 2610, 2620, 2630,
                   0, 0, 0,
                   43, 157, 275, 387, 517, 624, 734, 847, 962, 1058, 1149, 1253, 1345, 1448, 1549, 1653, 1746, 1844, 1946, 2047,
                   2150, 2251, 2344, 2435, 2527, 2622, 2718, 5700, 5710, 1720, 1730, 1740, 1750, 1760, 1770, 1780, 1790, 1800, 1810, 1820,
                   1830, 1840, 1850, 1860, 1870, 1880, 1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010, 2020,
                   2030, 2040, 2050, 2060, 2070, 2080, 2090, 2100, 2110, 2120, 2130, 2140, 2150, 2160, 2170, 2180, 2190, 2200, 2210, 2220,
                   2230, 2240, 2250, 2260, 2270, 2280, 2290, 2300, 2310, 2320, 2340, 2350, 2360, 2370, 2380, 2390, 2400, 2410, 2420, 2430, 2440},
        hoehe{ h },
        breite{ 100 },
        farbe{ f },
        temperatur{ 0 },
        temp_i{ i },
        channel{ c },
        alarmwert_i{ aw },
        arrayoffset { ao},
        x_text1{ 0 },
        y_text1{ 0},
        s_text1{ 3 },
        f_text1{ 0 },
        x_text2{ 0 },
        y_text2{ 0 },
        s_text2{ 3 },
        f_text2{ 0 },
        x_pos{ x },
        y_pos{ y },
        f_1{ f_1 },
        f_2{ f_2 },
        t_1{ 10 },
        t_2{ 5 } {}

    Tank(uint16_t f, int i, ADS1115_MUX c, int aw, int x, int y)    // Konstruktor Batterie
      : hoehe{ 55 },
        breite{ 170 },
        farbe{ f },
        temperatur{ 0 },
        temp_i{ i },
        channel{ c },
        alarmwert_i{ aw },
        x_text1{ 0 },
        y_text1{ 0 },
        s_text1{ 3 },
        f_text1{ 0 },
        x_text2{ 0},
        y_text2{ 0 },
        s_text2{ 3 },
        f_text2{ 0 },
        x_pos{ x },
        y_pos{ y } {}

    Tank(int i, int x, int y)   // Konstruktor Werte
      : temperatur{ 0 },
        temp_i{ i },
        alarmwert_i{ 50 },
        x_text1{ 0 },
        y_text1{ 0 },
        s_text1{ 3 },
        f_text1{ 0 },
        x_text2{ 0},
        y_text2{ 0 },
        s_text2{ 3 },
        f_text2{ 0 },
        x_pos{ x },
        y_pos{ y } {}

    void zeichnen(Inkplate &display);

    void temp_messen();

    void fuell_messen(ADS1115_WE &adc);

    void fuellen(Inkplate &display);

};

// Objekte Tank erzeugen - Tankgröße(L), Füllfarbe,  Index 18B20,  Eingang ADS1115,  Wert Alarmbehandlung, Arrayoffset, x-pos, y-pos,  2x Alarmwerte Füllstand

Tank tank_fw(26, INKPLATE_BLUE, 0, ADS1115_COMP_2_GND, 30, 0, 20, 190, 8, 5);
Tank tank_aw(26, INKPLATE_ORANGE, 0, ADS1115_COMP_3_GND, 40, 124, 95, 335, 18, 22);



class Batterie : public Tank {

  private:
    float spg;

  public:
    float s_1;      // Alarmschwelle 1
    float s_2;      // Alarmschwelle 2

    Batterie(uint16_t farbe, int temp_i, ADS1115_MUX channel, int alarmwert_i, int x_pos, int y_pos, float s_1, float s_2)
      : Tank{farbe, temp_i, channel, alarmwert_i, x_pos, y_pos},
        spg{ 0 },
        s_1{ s_1 },
        s_2{ s_2 } {}

    void zeichnen(Inkplate &display);

    void spg_messen(ADS1115_WE &adc);

    void temp_messen();

    void fuellen(Inkplate &display);

};

// Objekte Batterie erzeugen - Füllfarbe, Index 18B20, Eingang ADS1115, Wert Alarmbehandlung , x-pos, y-pos, 2x Alarmwerte

Batterie batt_bord( INKPLATE_WHITE, 1, ADS1115_COMP_0_GND, 10, 15, 15,  12.6, 12.1);
Batterie batt_kfz(INKPLATE_WHITE, 1, ADS1115_COMP_1_GND, 20, 15, 85, 12.4, 12.1);



class Werte : public Tank {

  private:
    float temperatur_aussen;    // DS18B20
    float feuchte;
    float luftdruck;
    int x_text3;
    int y_text3;
    int s_text3;
    uint16_t f_text3;
    int x_text4;
    int y_text4;
    int s_text4;
    uint16_t f_text4;
    int x_text5;
    int y_text5;
    int s_text5;
    uint16_t f_text5;


  public:

    Werte(int temp_i, int x_pos, int y_pos)
      : Tank{ temp_i, x_pos, y_pos },
        temperatur_aussen{ 0 },
        feuchte{ 0 },
        luftdruck{ 0 },
        x_text3{ 0 },
        y_text3{ 0},
        s_text3{ 3 },
        f_text3{ 0 },
        x_text4{ 0 },
        y_text4{ 0},
        s_text4{ 3 },
        f_text4{ 0 },
        x_text5{ 0 },
        y_text5{ 0},
        s_text5{ 3 },
        f_text5{ 0 } {}

    void pos_berechnen();

    void messen();

    void zeichnen(Inkplate &display);

};

// Objekt Werte erzeugen - Index 18B20, x-pos, y-pos,
Werte werte(2, 290, 250);


// Ende Klassendefinitionen

Alles in der (hoffentlich) richtigen Reihenfolge. Jedenfalls läuft das kompilieren auch mit "alle" .
i wird aber nach wie vor nicht an gleicher Stelle abgefragt sondern 3-2-1 ....
Aber anders geht es doch eigentlich auch nicht, da dies vom Konstruktor und den abgefragten Werten abhängt?

Da ich m.E. schon immer mit alle kompiliert habe, kann das Problem im Zusammenhang mit dem MS Visual C++ Redistributable zu tun haben?
Das habe ich nämlich geändert, da HTerm ums verr ... nicht laufen will.

cu

Hallo,

vereinfacht runtergebrochen

private:
    int hoehe;
    int temp;
    int x_text;  
    int y_text;  
    int x_pos;
    int y_pos;
    
Tank(int x, int y, int i) :  
    hoehe  {200},
    temp   { i },
    x_text { 0 },
    y_text { 0 },        
    x_pos  { x },
    y_pos  { y }
    {}

Die Reihenfolge in der Zuweisung im Konstruktor muss stimmen und die Reihenfolge der Liste der Elemente. Sowas wie oben geht eben nicht.
Die Reihenfolge der Deklaration ist entscheidend. Schlag einmal dein C++ Buch auf für "Initialisierungsliste". Damit beginnt alles. Bzw. passt man diese an wie man es im Konstruktor benötigt.

bspw. neu sortiert:

private:
    int hoehe;
    int x_text;  
    int y_text;  
    int x_pos;
    int y_pos;
    int temp;    
    
Tank(int x, int y, int i) :  
    hoehe  {200},
    x_text { 0 },
    y_text { 0 },        
    x_pos  { x },
    y_pos  { y },
    temp   { i }
    {}

bspw. kann man auch das machen, Hauptsache die Reihenfolgen bleiben erhalten. Wirst du dann schon sehen wenn der Compiler meckert.

private:
    int hoehe;
    int x_text;  
    int y_text;  
    int x_pos;
    int y_pos;
    int temp;    
    
Tank(int x, int y, int i) :  
    hoehe  {200},
    x_text { x },
    y_text { y },        
    x_pos  { 0 },
    y_pos  { i },
    temp   { 0 }
    {}

Am Rande bemerkt, wegen deinen Tausenden x/y Variablen. Denk einmal über Strukturen nach.

Da komme ich nicht mit ....
Nach meinem Verständnis wäre das doch

struct text
{
    int x_pos;
    int y_pos;
    int groesse;
    int farbe;
};

Jetzt müsste ich doch für jeden Text die Struktur erzeugen und Werte zuweisen.

struct text text_fw ..
struct text text_aw ...

Also insgesamt neun Strukturen? Oder liege ich hier falsch?

Und wie kriegt man die in die Klassendefinitionen?

Und was ändert sich mit aus- und einschalten eines Rechners?
Gestern nach Umbau der Initialisierung fehlerfrei kompiliiert, heute nach einschalten wieder mysteriöse Fehlermeldungen von anderen Stellen ...

cu

Am Rande:

Das halte ich für eine recht böse Idee.

Eigentlich ist es allgemeiner Konsens, in der OOP Welt, dass Instanzeigenschaften niemals public sein dürfen. Selbst protected ist bedenklich.

Mein "Gefühl", eigentlich meine ich "Überzeugung", sagt mir, dass deine Klasse zuviel tut.
"Und wie kriegt man die in die Klassendefinitionen?" ist aus meiner Sicht die falsche Frage.

Es macht auf mich den Eindruck als wolltest du etwas bauen, was man "Big hairy object" nennt.

Wenn sich Dateien nicht ändern, werden sie nur 1 mal Kompiliert.
Also kommen manche Meldungen auch nur ein mal am Tag.

Bei einem Neustart werden meist die Tempdateien verworfen,
Dann wird neu kompiliert.

So ist der Effekt zu erklären.

Die ausführlichen Meldungen zeigen dir genau, was passiert.
Einfach mal hinschauen.

mysteriöse

Da ist nichts geheimnisvolles dran!
Meldungen mal lesen und dann ausmerzen.
So es geht.

Das nur einmal kompiliert wird wenn nichts geändert wird ist mir bewußt.
Aber ich habe gestern die Initialisierung umgestellt, Fehler ausgemerzt und fehlerfrei kompiliert.
Anschließend eine Kopie des Sketches auf einen Stick, diesen heute in den Windows 11-Rechner, kompiliert -> Fehler.
Windows 10-Rechner gestartet, kompiliert -> Fehler.
Es wurde nichts geändert, lediglich der Rechner gestern aus, heute eingeschaltet.
Aber wie gesagt, die ominösen Fehler wenn alle angezeigt werden. Was gestern problemlos lief ...

cu

Die Fehlermeldungen sollen wir jetzt erraten?

Gruß mTommy

Es ist ok, wenn du mir nicht glaubst!
Interessant ist allerdings, dass dein Erleben, meine Aussage stützt.

Ein logischer Tipp:
Wenn ein Fehler/Warning repariert ist, dann kann er nicht mehr auftauchen.
Wenn der dann doch noch wieder auftaucht, dann ist er nicht repariert worden.

Ist das logisch?

auch wenn das mal gelaufen sein soll, wenn ich mir deine Klassen ansehe:

Zwei Klassen erben von "Tank"
Sind deine Batterien Tanks? Die sind auch so geformt wie die Tanks und brauchen daher das Array fuellstand?
Sind deine Instanzen von Wert in letzter Konsequenz auch ein Tank?

und Koordinaten als int ... wie oft zeichnest du ins negative?!?

Mir kommt das doch eher sehr eigenartig vor.

Nein, aber da das nur auftritt wenn ich alle Fehlermeldungen anzeigen lasse und diese aus dem Inkplate_Library kommen ..., was wohl die Wenigsten nutzen ...
Aber bitte, so geht es los:

"C:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\tools\xtensa-esp32-elf-gcc\gcc8_4_0-esp-2021r2-patch3/bin/xtensa-esp32-elf-g++" -DHAVE_CONFIG_H "-DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h"" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE "-DIDF_VER="v4.4.2"" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/newlib/platform_include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/freertos/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/freertos/include/esp_additions/freertos" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/freertos/port/xtensa/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/freertos/include/esp_additions" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_hw_support/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_hw_support/include/soc" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_hw_support/port/esp32" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/heap/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/log/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/lwip/include/apps" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/lwip/include/apps/sntp" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/lwip/lwip/src/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/lwip/port/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/lwip/port/esp32/include/arch" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/soc/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/soc/esp32" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/soc/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/hal/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/hal/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/hal/platform_port/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_rom/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_rom/include/esp32" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_rom/esp32" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_common/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_system/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_system/port/soc" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_system/port/public_compat" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/xtensa/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/xtensa/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/driver/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/driver/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_pm/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_ringbuf/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/efuse/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/efuse/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/vfs/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_wifi/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_event/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_netif/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_eth/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/tcpip_adapter/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_phy/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_phy/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_ipc/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/app_trace/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_timer/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/mbedtls/port/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/mbedtls/mbedtls/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/app_update/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/spi_flash/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bootloader_support/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/nvs_flash/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/pthread/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_gdbstub/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_gdbstub/xtensa" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/esp_gdbstub/esp32" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/espcoredump/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/espcoredump/include/port/xtensa" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/wpa_supplicant/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/wpa_supplicant/port/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/ieee802154/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/console" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/asio/asio/asio/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/asio/port/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/common/osi/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/include/esp32/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/common/api/include/api" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/common/btc/profile/esp/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.1.0/tools/sdk/esp32/include/bt/esp_ble_mesh/api" "-IC:\Users\henry\AppData\Local\Arduino15\packages\Inkplate_Boards\hardware\esp32\7.

Wie kommst Du darauf?

Verstehe ich nicht, die Batterien benutzen doch nur Werte von Tank, die für sie sinnvoll sind.
Werte die nur von einem Objekttyp benutzt werden habe ich private gemacht, Werte für mehrere Objektypen protected.
Werte benutzt ebenfalls Variablen von Tank, warum soll man die denn nicht gleich nutzen?

Das ist mein erster Versuch mit oop ....

Wieso? Ok, das Prinzip ist klar, aber ursprünglich war angedacht diese Werte individuell einstellen zu lassen (Nutzereingabe), dass geht doch nur über public?

Das sind "Restbestände", ich hatte in einer anderen Umgebung Probleme mit uint ....

cu

Ja!
Aber dazu braucht es keine public Eigenschaften, sondern public Setter