diff --git a/RhasspyVisualConversationTool/.classpath b/RhasspyVisualConversationTool/.classpath
index ddedfa6..c0e03b5 100644
--- a/RhasspyVisualConversationTool/.classpath
+++ b/RhasspyVisualConversationTool/.classpath
@@ -6,12 +6,12 @@
-
+
-
+
diff --git a/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/GUI.java b/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/GUI.java
index ce47bff..97f4b47 100644
--- a/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/GUI.java
+++ b/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/GUI.java
@@ -212,14 +212,16 @@ public class GUI
if(MqttTopic.isMatched(Settings.topicNameWakewordRecognized, topic))
{
- // Turn on screen....
+ turnScreenOn();
+ textEntriesList.clear();
textEntriesList.add(getMeString() + "Hello! What can I do for you?");
updateWindow();
}
else if(MqttTopic.isMatched(Settings.topicNameIntentsRecognized, topic))
{
JSONObject jo = new JSONObject(payload);
+ textEntriesList.clear();
textEntriesList.add(getYouString() + jo.getString("input"));
updateWindow();
}
@@ -257,10 +259,17 @@ public class GUI
else if(MqttTopic.isMatched(Settings.topicNameSessionEnded, topic))
{
textEntriesList.clear();
+ textEntriesList.add("Waiting for session...");
updateWindow();
}
}
+ private void turnScreenOn()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
static String getYouString()
{
return "You: \t";
diff --git a/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/MQTT.java b/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/MQTT.java
index 8698195..db648e7 100644
--- a/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/MQTT.java
+++ b/RhasspyVisualConversationTool/src/com/jens/rhasspy/visualtool/MQTT.java
@@ -1,6 +1,8 @@
package com.jens.rhasspy.visualtool;
import java.util.Calendar;
+import java.util.Timer;
+import java.util.TimerTask;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallbackExtended;
@@ -9,6 +11,8 @@ import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.MqttPersistenceException;
+import org.eclipse.paho.client.mqttv3.MqttTopic;
+
import com.jens.rhasspy.visualtool.lib.JSONObject;
public class MQTT implements MqttCallbackExtended
@@ -29,7 +33,12 @@ public class MQTT implements MqttCallbackExtended
final static String clientId = "RhasspyVisualConversationTool";
final static int maximumReconnectionAttempts = -1;
+ final static long timeout = 10000;
+
protected static boolean forceReconnection = false;
+
+
+ Timer timeoutTimer = null;
static String getServerUri()
{
@@ -163,7 +172,12 @@ public class MQTT implements MqttCallbackExtended
MqttMessageDistributor mmd = new MqttMessageDistributor(topic, message);
Thread worker = new Thread(mmd);
- worker.start();
+ worker.start();
+
+ if(MqttTopic.isMatched(Settings.topicNameSessionEnded, topic))
+ unscheduleTimeout();
+ else
+ scheduleTimeout();
}
class MqttMessageDistributor implements Runnable
@@ -247,4 +261,35 @@ public class MQTT implements MqttCallbackExtended
GUI.getInstance().updateConnectionStatus(true);
}
+
+ void scheduleTimeout()
+ {
+ TimerTask timerTask = new TimerTask()
+ {
+ @Override
+ public void run()
+ {
+ Object[] object = new Object[3];
+ object[0] = new MqttMessage();
+ object[1] = Settings.topicNameSessionEnded;
+ object[2] = Calendar.getInstance();
+
+ GUI.getInstance().handleNewMessage(object);
+ }
+ };
+
+// if(timeoutTimer == null)
+ timeoutTimer = new Timer();
+// else
+// timeoutTimer.cancel();
+
+ timeoutTimer.schedule(timerTask, timeout);
+ }
+
+ void unscheduleTimeout()
+ {
+ if(timeoutTimer != null)
+ timeoutTimer.cancel();
+
+ }
}
\ No newline at end of file