diff --git a/src/main/java/org/opennars/lab/metric/MetricReporter.java b/src/main/java/org/opennars/lab/metric/MetricReporter.java index 636b7aa6a1f81580718242879ef5fc1487860f5e..f0adb19c211a12e4ea32e8e91b0bae9b7a5c2a4b 100644 --- a/src/main/java/org/opennars/lab/metric/MetricReporter.java +++ b/src/main/java/org/opennars/lab/metric/MetricReporter.java @@ -23,6 +23,10 @@ public class MetricReporter { for(final MetricSensor iSensor : sensors) { send(iSensor.getValueAsString(), iSensor.getName()); } + + for(final MetricSensor iSensor : sensors) { + iSensor.resetAfterSending(); + } } private void send(final String dataAsString, final String metricPathName) { diff --git a/src/main/java/org/opennars/lab/metric/MetricSensor.java b/src/main/java/org/opennars/lab/metric/MetricSensor.java index 6e47af3c4e2be5e42de2ebd5d62441803e0d95b9..2daf7d339a3d470f0f67ddeb0ef1255eb6120855 100644 --- a/src/main/java/org/opennars/lab/metric/MetricSensor.java +++ b/src/main/java/org/opennars/lab/metric/MetricSensor.java @@ -4,4 +4,9 @@ public interface MetricSensor { String getName(); String getValueAsString(); + + /** + * is called to give the sensor a chance to reset the stat after sending + */ + void resetAfterSending(); } diff --git a/src/main/java/org/opennars/lab/microworld/Pong.java b/src/main/java/org/opennars/lab/microworld/Pong.java index d4f7fe113867aceb0732a372485f0c1d0b31c037..7c97f2e7552ca7dc388fe81ab6522b96e125bd26 100755 --- a/src/main/java/org/opennars/lab/microworld/Pong.java +++ b/src/main/java/org/opennars/lab/microworld/Pong.java @@ -61,6 +61,8 @@ public class Pong extends Frame { metricReporter.connect("127.0.0.1", 1212); metricReporter.sensors.add(new MetricSensor() { + private int oldBallHits = 0; + @Override public String getName() { return "ballHits"; @@ -68,11 +70,18 @@ public class Pong extends Frame { @Override public String getValueAsString() { - return "" + ballHits; + return "" + (ballHits-oldBallHits); + } + + @Override + public void resetAfterSending() { + oldBallHits = ballHits; } }); metricReporter.sensors.add(new MetricSensor() { + private int oldBallMisses = 0; + @Override public String getName() { return "ballMisses"; @@ -80,7 +89,12 @@ public class Pong extends Frame { @Override public String getValueAsString() { - return "" + ballMisses; + return "" + (ballMisses-oldBallMisses); + } + + @Override + public void resetAfterSending() { + oldBallMisses = ballMisses; } }); diff --git a/src/main/java/org/opennars/lab/microworld/SimNAR.java b/src/main/java/org/opennars/lab/microworld/SimNAR.java index f59530ce769bee80813bfdd114e92fdfd2d51763..168787307d5b47a2177e8e3c45bb6e24ac6e169a 100755 --- a/src/main/java/org/opennars/lab/microworld/SimNAR.java +++ b/src/main/java/org/opennars/lab/microworld/SimNAR.java @@ -60,6 +60,10 @@ public class SimNAR extends Frame { public String getValueAsString() { return "" + counterAteGood; } + + @Override + public void resetAfterSending() { + } }); metricReporter.sensors.add(new MetricSensor() { @@ -72,6 +76,10 @@ public class SimNAR extends Frame { public String getValueAsString() { return "" + counterAteBad; } + + @Override + public void resetAfterSending() { + } }); String[] args = {"Microworld"};