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