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