MQTT 테스트 화면 추가
This commit is contained in:
74
Assets/Panel_MQTTTestResult.cs
Normal file
74
Assets/Panel_MQTTTestResult.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using Studio.Manage;
|
||||
using Studio.UI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UVC.UI;
|
||||
using XRLib;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class Panel_MQTTTestResult : PanelBase
|
||||
{
|
||||
public UVCKeyValueItem Item_Domain;
|
||||
public UVCKeyValueItem Item_Port;
|
||||
public ScrollRect scrollView_TopicResults;
|
||||
public UI_MQTTTestResultItem prf_MQTTTestResultItem;
|
||||
public Button button_Close;
|
||||
public struct MQTTTestResult
|
||||
{
|
||||
public string topic;
|
||||
public string message;
|
||||
public string payload;
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
button_Close = transform.DeepFind<Button>(nameof(button_Close));
|
||||
button_Close.onClick.AddListener(Close);
|
||||
scrollView_TopicResults = GetComponentInChildren<ScrollRect>();
|
||||
Item_Port = transform.Find(nameof(Item_Port)).GetComponent< UVCKeyValueItem>();
|
||||
Item_Domain = transform.Find(nameof(Item_Domain)).GetComponent< UVCKeyValueItem>();
|
||||
prf_MQTTTestResultItem = Resources.Load<UI_MQTTTestResultItem>(ResourceURL.mqttTestResultItem);
|
||||
}
|
||||
|
||||
private void Close()
|
||||
{
|
||||
Debug.Log("Close MQTT Test Result Panel.");
|
||||
foreach (var item in items)
|
||||
{
|
||||
Destroy(item.gameObject);
|
||||
}
|
||||
items.Clear();
|
||||
topics.Clear();
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
public void Open(string domain, string port)
|
||||
{
|
||||
Debug.Log($"Open MQTT Test Result Panel. Domain: {domain}, Port: {port}");
|
||||
Item_Domain.SetValue(domain);
|
||||
Item_Port.SetValue(port);
|
||||
gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
List<string> topics = new List<string>();
|
||||
List<UI_MQTTTestResultItem> items = new List<UI_MQTTTestResultItem>();
|
||||
public void AddResult(MQTTTestResult result)
|
||||
{
|
||||
Debug.Log($"Add MQTT Test Result. Topic: {result.topic}, Message: {result.message}, Payload Length: {result.payload.Length}");
|
||||
if (topics.Contains(result.topic))
|
||||
{
|
||||
Debug.LogWarning($"Topic {result.topic} already exists in the results.");
|
||||
return;
|
||||
}
|
||||
|
||||
var item = Instantiate(prf_MQTTTestResultItem, scrollView_TopicResults.content);
|
||||
item.SetResult(result.topic, result.message, result.payload);
|
||||
item.transform.SetParent(scrollView_TopicResults.content);
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user