mirror of https://github.com/FOME-Tech/fome-fw.git
progress
This commit is contained in:
parent
1fc9a3cbe2
commit
fb38645fbc
|
@ -15,6 +15,12 @@ public class CyclicBuffer implements DataBuffer {
|
|||
values = new double[maxSize];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
size = pointer = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(double value) {
|
||||
if (size < values.length)
|
||||
size++;
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
package com.rusefi;
|
||||
|
||||
public interface DataBuffer {
|
||||
void add(double value);
|
||||
|
||||
double[] getValues();
|
||||
|
||||
/**
|
||||
* Resets the buffer back to initial empty state
|
||||
*/
|
||||
void clear();
|
||||
|
||||
static double sum(double[] values) {
|
||||
double result = 0;
|
||||
for (double value : values)
|
||||
|
|
|
@ -8,6 +8,7 @@ import java.util.TreeMap;
|
|||
* This data structure holds only one value for each millisecond timestamp but that should be totally fine
|
||||
* for our purposes
|
||||
*
|
||||
* @see ClosedLoopControlQualityMetric
|
||||
* @see EtbTestSequence
|
||||
*/
|
||||
public class TimeBasedBuffer implements DataBuffer {
|
||||
|
@ -23,10 +24,16 @@ public class TimeBasedBuffer implements DataBuffer {
|
|||
values.headMap(now - duration).clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void clear() {
|
||||
values.clear();
|
||||
}
|
||||
|
||||
protected long currentTimeMillis() {
|
||||
return System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void add(double value) {
|
||||
values.put(currentTimeMillis(), value);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue