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];
|
values = new double[maxSize];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
size = pointer = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void add(double value) {
|
public void add(double value) {
|
||||||
if (size < values.length)
|
if (size < values.length)
|
||||||
size++;
|
size++;
|
||||||
|
|
|
@ -1,8 +1,15 @@
|
||||||
package com.rusefi;
|
package com.rusefi;
|
||||||
|
|
||||||
public interface DataBuffer {
|
public interface DataBuffer {
|
||||||
|
void add(double value);
|
||||||
|
|
||||||
double[] getValues();
|
double[] getValues();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the buffer back to initial empty state
|
||||||
|
*/
|
||||||
|
void clear();
|
||||||
|
|
||||||
static double sum(double[] values) {
|
static double sum(double[] values) {
|
||||||
double result = 0;
|
double result = 0;
|
||||||
for (double value : values)
|
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
|
* This data structure holds only one value for each millisecond timestamp but that should be totally fine
|
||||||
* for our purposes
|
* for our purposes
|
||||||
*
|
*
|
||||||
|
* @see ClosedLoopControlQualityMetric
|
||||||
* @see EtbTestSequence
|
* @see EtbTestSequence
|
||||||
*/
|
*/
|
||||||
public class TimeBasedBuffer implements DataBuffer {
|
public class TimeBasedBuffer implements DataBuffer {
|
||||||
|
@ -23,10 +24,16 @@ public class TimeBasedBuffer implements DataBuffer {
|
||||||
values.headMap(now - duration).clear();
|
values.headMap(now - duration).clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void clear() {
|
||||||
|
values.clear();
|
||||||
|
}
|
||||||
|
|
||||||
protected long currentTimeMillis() {
|
protected long currentTimeMillis() {
|
||||||
return System.currentTimeMillis();
|
return System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public synchronized void add(double value) {
|
public synchronized void add(double value) {
|
||||||
values.put(currentTimeMillis(), value);
|
values.put(currentTimeMillis(), value);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue