From e3d7bfd7a02bb92b4a50f96f0b5ed89ed1d7650c Mon Sep 17 00:00:00 2001 From: PtrMan <robertw89@googlemail.com> Date: Mon, 11 Mar 2019 17:19:31 +0100 Subject: [PATCH] Update: Metric: relative metric for pong --- .../opennars/lab/metric/MetricReporter.java | 4 ++++ .../org/opennars/lab/metric/MetricSensor.java | 5 +++++ .../java/org/opennars/lab/microworld/Pong.java | 18 ++++++++++++++++-- .../org/opennars/lab/microworld/SimNAR.java | 8 ++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/opennars/lab/metric/MetricReporter.java b/src/main/java/org/opennars/lab/metric/MetricReporter.java index 636b7aa6a..f0adb19c2 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 6e47af3c4..2daf7d339 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 d4f7fe113..7c97f2e75 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 f59530ce7..168787307 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"}; -- GitLab