ich habe eine Klasse erstellt und möchte damit ein Array mit 64 Instanzen anlegen.
Der Parameter 'factor' der Klasse soll für alle Instanzen des Arrays gleich sein.
MovingAverage mg [64] { ohne Ende der gleiche Parameter };
Jetzt müsste ich für die Array Instanz 64 gleiche Parameter angeben. Das macht irgendwie keinen Sinn. Ich könnte eine set Methode schreiben und mittels for Schleife den factor übergeben. Macht auch keinen richtigen Sinn, weil der soll konstant sein und bleiben. Gibt es eine Möglichkeit ein Array mit x Instanzen und einer Parameterangabe für alle anzulegen?
Mir gefällt nicht dass du "Parameter" dazu sagst, aber wenn ich richtig interpretiere was du möchtest, dann mach die member variable static - dann gilt das für alle Instanzen der Klasse MovingAverage.
edit: irgendwie scheint mir das aber ein eigenartiges Datenmodell zu sein...
hatte ich schon versucht. Das kompiliert leider nicht.
Was ist an Parameter falsch? Das ist der Filterfaktor.
Wenn es eine andere Idee gibt nur raus damit.
Ich möchte von 64 Werten jeweils den Mittelwert bilden.
Ich bekomme von einem ToF Sensor 64 Werte von seinen 64 Zonen.
Jeden Zonenwert möchte ich separat filtern.
src/MittelwertGleitend.h: In constructor 'MovingAverage::MovingAverage(unsigned int)':
src/MittelwertGleitend.h:24:7: error: 'unsigned int MovingAverage::factor' is a static data member; it can only be initialized at its definition
24 | factor {f},
| ^~~~~~
sketch.ino: At global scope:
sketch.ino:133:51: error: could not convert '<brace-enclosed initializer list>()' from '<brace-enclosed initializer list>' to 'MovingAverage'
133 | MittelwertGleitend mg (50);
| ^
| |
| <brace-enclosed initializer list>
hier liegt ein Missverständnis vor.
Ich bekomme vom ToF ständig einen Datensatz von 64 neuen Werte. Ein Wert je Zone.
Die Zonenwerte möchte ich separat filtern. Jede Zone für sich.
Deswegen benötige ich laut aktueller Überlegung soviel Instanzen für die Mittelwertbildung wie der Sensor Zonen hat. Das sind 64.
Ich möchte keinen Mittelwert über alle Zonenwerte.
Ich möchte jede Zone einzeln mitteln.
ich danke Euch. Das mit dem static wäre dann das nächste Problem gewesen. Die Klasse wäre für nichts anderes verwendbar gewesen. Das Template funktioniert. Danke. Im Forum darüber reden, schon kommt man zu einer Lösung. Prima.