From fd9c1605ecef11a7d9be99d7286d34426f11896f Mon Sep 17 00:00:00 2001
From: Manuel Krombholz <s3866577@msx.tu-dresden.de>
Date: Wed, 21 Jul 2021 05:43:53 +0200
Subject: [PATCH] Added default mqtt port and fixed resolving bug

---
 eraser-base/src/main/jastadd/LastChanged.jrag          | 10 +++++-----
 eraser-base/src/main/jastadd/Resolving.jrag            |  2 +-
 .../inf/st/eraser/jastadd/model/MQTTSenderImpl.java    |  3 ++-
 .../de/tudresden/inf/st/eraser/util/MqttReceiver.java  |  5 ++++-
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/eraser-base/src/main/jastadd/LastChanged.jrag b/eraser-base/src/main/jastadd/LastChanged.jrag
index 2ac7dfc9..9c52887c 100644
--- a/eraser-base/src/main/jastadd/LastChanged.jrag
+++ b/eraser-base/src/main/jastadd/LastChanged.jrag
@@ -3,16 +3,16 @@ aspect LastChanged {
     this.setValue(Instant.now());
   }
 
-  public boolean LastChanged.checkStateProcessingTime(FrequencySetting FrequencySetting) {
-    if (FrequencySetting == null) {
+  public boolean LastChanged.checkStateProcessingTime(FrequencySetting frequencySetting) {
+    if (frequencySetting == null) {
       return true;
     }
-    double frequency = FrequencySetting.getEventProcessingFrequency();
+    double frequency = frequencySetting.getEventProcessingFrequency();
     Instant lastStateChange = this.getValue();
     if (lastStateChange == null) {
       return true;
     }
-    return lastStateChange.toEpochMilli() + (1 / frequency) * 1000 < Instant.now().toEpochMilli();
-  }
+    return Instant.now().toEpochMilli() - lastStateChange.toEpochMilli() > (1 / frequency) * 1000;
+    }
 
 }
diff --git a/eraser-base/src/main/jastadd/Resolving.jrag b/eraser-base/src/main/jastadd/Resolving.jrag
index f194a9f7..7d665612 100644
--- a/eraser-base/src/main/jastadd/Resolving.jrag
+++ b/eraser-base/src/main/jastadd/Resolving.jrag
@@ -118,7 +118,7 @@ aspect Resolving {
 
   syn java.util.Optional<FrequencySetting> SmartHomeEntityModel.resolveFrequencySetting(String performanceId) {
     for (FrequencySetting performance : getFrequencySettingList()) {
-      if (performance.getLabel().equals(performanceId)) {
+      if (performance.getID().equals(performanceId)) {
         return java.util.Optional.of(performance);
       }
     }
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java
index 9fecbe69..cfd9f6ec 100644
--- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/jastadd/model/MQTTSenderImpl.java
@@ -30,8 +30,9 @@ public class MQTTSenderImpl implements MQTTSender {
 
   @Override
   public MQTTSender setHost(ExternalHost host) {
+    int port = host.getPort()!=0 ? host.getPort() : 1883;
     /* The host running the MQTT broker. */
-    URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + host.getPort());
+    URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + port);
     logger.debug("Host is {}", hostUri);
     MQTT mqtt = new MQTT();
     String username = host.getUserName();
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java
index 161cbaf1..82e26321 100644
--- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java
@@ -53,7 +53,10 @@ public class MqttReceiver implements AutoCloseable {
    * Sets the host to receive messages from
    */
   public void setHost(ExternalHost externalHost) {
-    this.host = URI.create("tcp://" + externalHost.getHostName() + ":" + externalHost.getPort());
+    int port = externalHost.getPort()!=0 ? externalHost.getPort() : 1883;
+    this.host = URI.create("tcp://" + externalHost.getHostName() + ":" + port);
+    this.username = externalHost.getUserName();
+    this.password = externalHost.getPassword();
     logger.debug("Host is {}", externalHost.getHostName());
   }
 
-- 
GitLab