From 6c82d18ed636505c3c1d72d0a8df4714a57b49fb Mon Sep 17 00:00:00 2001
From: PtrMan <robertw89@googlemail.com>
Date: Mon, 11 Mar 2019 17:31:40 +0100
Subject: [PATCH] Update: Pong metric: send updates only when necessary - as
 events

---
 .../java/org/opennars/lab/metric/MetricReporter.java |  6 +++++-
 src/main/java/org/opennars/lab/microworld/Pong.java  | 12 +++++++++---
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/opennars/lab/metric/MetricReporter.java b/src/main/java/org/opennars/lab/metric/MetricReporter.java
index 6cc4b3b07..45531643f 100644
--- a/src/main/java/org/opennars/lab/metric/MetricReporter.java
+++ b/src/main/java/org/opennars/lab/metric/MetricReporter.java
@@ -21,7 +21,11 @@ public class MetricReporter {
 
     public void sendFromAllSensors() {
         for(final MetricSensor iSensor : sensors) {
-            send(iSensor.getValueAsString(), iSensor.getName());
+            String valueAsString = iSensor.getValueAsString();
+
+            if (valueAsString != null) {
+                send(valueAsString, iSensor.getName());
+            }
         }
 
         for(final MetricSensor iSensor : sensors) {
diff --git a/src/main/java/org/opennars/lab/microworld/Pong.java b/src/main/java/org/opennars/lab/microworld/Pong.java
index 3d1e55258..6f0360477 100755
--- a/src/main/java/org/opennars/lab/microworld/Pong.java
+++ b/src/main/java/org/opennars/lab/microworld/Pong.java
@@ -70,6 +70,10 @@ public class Pong extends Frame {
 
             @Override
             public String getValueAsString() {
+                if (oldBallHits == ballHits) {
+                    return null; // don't send anything
+                }
+
                 return "" + (ballHits-oldBallHits);
             }
 
@@ -89,6 +93,10 @@ public class Pong extends Frame {
 
             @Override
             public String getValueAsString() {
+                if (oldBallMisses == ballMisses) {
+                    return null; // don't send anything
+                }
+
                 return "" + (ballMisses-oldBallMisses);
             }
 
@@ -299,10 +307,8 @@ public class Pong extends Frame {
 
                 t++;
                 nar.cycles(10);
+                metricReporter.sendFromAllSensors();
 
-                if (t%100==0) {
-                    metricReporter.sendFromAllSensors();
-                }
 
                 if(lastAction==0 && random(1.0f) < Alpha) { //if Nar hasn't decided chose a executable random action
                     lastAction = (int) random((float) nActions);
-- 
GitLab