From 660e992e5d63033609b10891e544236f2ec8b591 Mon Sep 17 00:00:00 2001 From: geondo55 <102933884+geondo55@users.noreply.github.com> Date: Mon, 16 Jun 2025 10:46:45 +0900 Subject: [PATCH] =?UTF-8?q?mqtt=20test=20=EC=BD=94=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Studio/Connect/TemporaryMQTTClient.cs | 12 ++++++++---- .../Scripts/Studio/UI/Elements/UI_MQTTConnection.cs | 10 ++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Studio/Connect/TemporaryMQTTClient.cs b/Assets/Scripts/Studio/Connect/TemporaryMQTTClient.cs index 37fbeb34..8610240c 100644 --- a/Assets/Scripts/Studio/Connect/TemporaryMQTTClient.cs +++ b/Assets/Scripts/Studio/Connect/TemporaryMQTTClient.cs @@ -15,13 +15,15 @@ namespace Studio.Connection string domain; int port; List topics; - Action callback; - public TemporaryMQTTClient(string domain, int port, List topic, Action callback) + Action topicCallback; + Action disconnectCallback; + public TemporaryMQTTClient(string domain, int port, List topic, Action topicCallback, Action disconnectCallback) { this.domain = domain; this.port = port; this.topics = topic; - this.callback = callback; + this.topicCallback = topicCallback; + this.disconnectCallback = disconnectCallback; var optionBuilder = new ConnectionOptionsBuilder() .WithTCP(domain, port) .Build(); @@ -44,7 +46,7 @@ namespace Studio.Connection { string payload = Encoding.UTF8.GetString(message.Payload.Data, message.Payload.Offset, message.Payload.Count); Debug.Log($"Temporary MQTT is OnTopic. {ToString()}, msg={payload}"); - callback(topicName, payload); + topicCallback(topicName, payload); this.topics.Remove(topicName); client.CreateUnsubscribePacketBuilder(topicName) @@ -66,12 +68,14 @@ namespace Studio.Connection private void OnErrorMQTT(MQTTClient client, string error) { + disconnectCallback(); Debug.Log($"Temporary MQTT Client Error. {ToString()}, error={error}"); //Disconnect(); } private void OnDisconnectedMQTT(MQTTClient client, DisconnectReasonCodes reasonCode, string reasonMessage) { + disconnectCallback(); Debug.Log($"Temporary MQTT Client Disconnected. {ToString()}, reason={reasonCode}, msg={reasonMessage}"); } diff --git a/Assets/Scripts/Studio/UI/Elements/UI_MQTTConnection.cs b/Assets/Scripts/Studio/UI/Elements/UI_MQTTConnection.cs index be43354d..0d281c18 100644 --- a/Assets/Scripts/Studio/UI/Elements/UI_MQTTConnection.cs +++ b/Assets/Scripts/Studio/UI/Elements/UI_MQTTConnection.cs @@ -21,6 +21,8 @@ namespace Studio.UI private Button Button_Remove; private RectTransform TopicItemContent; private RectTransform AddTopic; + private Image Image_Check; + private Sprite connectedSprite, errorSprite; private UI_InputTopicItem prf_InputTopicItem; private List inputTopicItems = new List(); @@ -63,7 +65,7 @@ namespace Studio.UI var topic = item.InputField_Topic.text; topics.Add(topic); } - var tmpClient = new TemporaryMQTTClient(domain, port, topics, OnTopicTest); + var tmpClient = new TemporaryMQTTClient(domain, port, topics, OnTopicTest, OnDisconnectClient); panel_MQTTTestResult.Open(domain, port.ToString()); } @@ -77,8 +79,12 @@ namespace Studio.UI payload = payload }; panel_MQTTTestResult.AddResult(result); + Image_Check.sprite = connectedSprite; + } + void OnDisconnectClient() + { + Image_Check.sprite = errorSprite; } - private void OnClickRemoveItemButton() { onRemoveMQTTConnectionItem?.Invoke(this);