Hallo Max,
Zitat:Die Idee war im Hauptprogramm durch den Case "Read" mittels Index "Start" und der Länge einen bestimmten Bereich aus dem Puffer lesen zu können.
Wie genau ist dein "bestimmter Bereich" definiert? Willst du lesen ala " gib mir das viertletzte Sample und die 5 vorhergehenden" oder eher wie "gib mir das Sample von Zeitpunkt t1 und die 5 vorhergehenden"? Da ist ein Unterschied!
Du hast einen Ringbuffer, der die letzten N Samples zwischenspeichert. Du willst jetzt ab Position x beginnend y Samples lesen: einfach ArraySubset mit x als Index und y als Länge aus dem Buffer lesen. (Wenn x+y>N ist, dann bekommst du entsprechend weniger Samples zurück - der Buffer hat ja nur N Samples gespeichert.)
Also:
- neue Samples eintragen: erst den Buffer um eine Position nach hinten verschiebe, dann das neue Sample an Position 0 eintragen. (Du machst das momentan anders herum, kann je nach Einsatzfall vielleicht passender sein.)
- Samples lesen: mit Index/Länge aus dem Buffer lesen…