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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace XED
|
|
||||||
{
|
|
||||||
public class Panel_MQTTTesutResult : MonoBehaviour
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
364
Assets/Prefabs/CommonUI/UVCKeyValueItem.prefab
Normal file
364
Assets/Prefabs/CommonUI/UVCKeyValueItem.prefab
Normal file
@@ -0,0 +1,364 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3247054695513413912
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 786828592153370158}
|
||||||
|
- component: {fileID: 3041370518908279293}
|
||||||
|
- component: {fileID: 2826910970834278222}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: text_Value
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &786828592153370158
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3247054695513413912}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2769739711048485923}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 331.6025, y: -10}
|
||||||
|
m_SizeDelta: {x: 256.795, y: 20}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3041370518908279293
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3247054695513413912}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2826910970834278222
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3247054695513413912}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: 220.90.135.190
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278190080
|
||||||
|
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 18
|
||||||
|
m_fontSizeBase: 18
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &6990871414010457830
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5616309992854961322}
|
||||||
|
- component: {fileID: 3062705649536271554}
|
||||||
|
- component: {fileID: 538420965549002447}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: text_Key
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5616309992854961322
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6990871414010457830}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2769739711048485923}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 107.6025, y: -10}
|
||||||
|
m_SizeDelta: {x: 191.205, y: 20}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3062705649536271554
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6990871414010457830}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &538420965549002447
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6990871414010457830}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: Domain
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278190080
|
||||||
|
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 18
|
||||||
|
m_fontSizeBase: 18
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &9091791058432266900
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2769739711048485923}
|
||||||
|
- component: {fileID: 4648596209726711372}
|
||||||
|
- component: {fileID: 5281556152534361517}
|
||||||
|
- component: {fileID: 5310847872014552589}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: UVCKeyValueItem
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2769739711048485923
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9091791058432266900}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5616309992854961322}
|
||||||
|
- {fileID: 786828592153370158}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 230, y: -32}
|
||||||
|
m_SizeDelta: {x: 460, y: 20}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &4648596209726711372
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9091791058432266900}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5281556152534361517
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9091791058432266900}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &5310847872014552589
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9091791058432266900}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f80c738472e3a5c4086c08da076b88e8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
7
Assets/Prefabs/CommonUI/UVCKeyValueItem.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCKeyValueItem.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fd800c471a582c843b3a9fcf52e879cf
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1600
Assets/Resources/Prefabs/UI/Item_TopicResult.prefab
Normal file
1600
Assets/Resources/Prefabs/UI/Item_TopicResult.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Resources/Prefabs/UI/Item_TopicResult.prefab.meta
Normal file
7
Assets/Resources/Prefabs/UI/Item_TopicResult.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a53c37bbfe23e284ea252e76e6aa6a89
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -2742,28 +2742,11 @@ RectTransform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 6151036698135753193, guid: 13ace7584c1d4514cb2218354647e355, type: 3}
|
m_CorrespondingSourceObject: {fileID: 6151036698135753193, guid: 13ace7584c1d4514cb2218354647e355, type: 3}
|
||||||
m_PrefabInstance: {fileID: 396217241}
|
m_PrefabInstance: {fileID: 396217241}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!1 &802579211 stripped
|
|
||||||
GameObject:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 1329990658003581341, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 3674406319109641156}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!224 &802579212 stripped
|
--- !u!224 &802579212 stripped
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_CorrespondingSourceObject: {fileID: 3904775533281402009, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
m_CorrespondingSourceObject: {fileID: 3904775533281402009, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
m_PrefabInstance: {fileID: 3674406319109641156}
|
m_PrefabInstance: {fileID: 3674406319109641156}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!114 &802579216
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 802579211}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 1f91279b393079c469a0fa017cb9f642, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1 &837752632
|
--- !u!1 &837752632
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -9697,21 +9680,13 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 545811781}
|
m_TransformParent: {fileID: 545811781}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 224955368624265679, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 928561504100581918, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_Horizontal
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 224955368624265679, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 928561504100581918, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_HorizontalScrollbarVisibility
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 224955368624265679, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 224955368624265679, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1329990658003581341, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 1329990658003581341, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
@@ -9729,61 +9704,21 @@ PrefabInstance:
|
|||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 1
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1871913602782728431, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1871913602782728431, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1871913602782728431, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1871913602782728431, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1871913602782728431, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2685580638284742466, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2685580638284742466, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2685580638284742466, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_SizeDelta.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2685580638284742466, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2685580638284742466, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 216.20946
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 3451800542314492365, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: -10
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3904775533281402009, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 3904775533281402009, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_Pivot.x
|
propertyPath: m_Pivot.x
|
||||||
@@ -9875,43 +9810,23 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 446.20947
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 5208657889103829284, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: -10
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5367126745181614260, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 5367126745181614260, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0.000038343704
|
value: 0.00013829044
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5971015670859983669, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5971015670859983669, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5971015670859983669, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5971015670859983669, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5971015670859983669, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6343152227034270267, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
- target: {fileID: 6343152227034270267, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
propertyPath: m_AnchorMax.x
|
propertyPath: m_AnchorMax.x
|
||||||
@@ -9933,69 +9848,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: -17
|
value: -17
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6712418427872914089, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6712418427872914089, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6712418427872914089, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_SizeDelta.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6712418427872914089, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 230
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6712418427872914089, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: -43
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7841515863460374155, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7841515863460374155, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7841515863460374155, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_SizeDelta.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7841515863460374155, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7841515863460374155, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 9175712139416052929, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 9175712139416052929, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 9175712139416052929, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 9175712139416052929, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents:
|
m_AddedComponents: []
|
||||||
- targetCorrespondingSourceObject: {fileID: 1329990658003581341, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
|
||||||
insertIndex: -1
|
|
||||||
addedObject: {fileID: 802579216}
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: a247a040b2f41a7479cb4dcc20d9ecd0, type: 3}
|
||||||
--- !u!1001 &3913291316500297758
|
--- !u!1001 &3913291316500297758
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
|
|||||||
@@ -3,5 +3,6 @@ namespace Studio.Manage
|
|||||||
public class ResourceURL
|
public class ResourceURL
|
||||||
{
|
{
|
||||||
public readonly static string materialPath = "Materials";
|
public readonly static string materialPath = "Materials";
|
||||||
|
internal static string mqttTestResultItem = "Prefabs/UI/Item_TopicResult";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ using Best.MQTT;
|
|||||||
using Best.MQTT.Packets.Builders;
|
using Best.MQTT.Packets.Builders;
|
||||||
using Studio.Util;
|
using Studio.Util;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@@ -13,13 +14,13 @@ namespace Studio.Connection
|
|||||||
MQTTClient client;
|
MQTTClient client;
|
||||||
string domain;
|
string domain;
|
||||||
int port;
|
int port;
|
||||||
string topic;
|
List<string> topics;
|
||||||
Action<string> callback;
|
Action<string, string> callback;
|
||||||
public TemporaryMQTTClient(string domain, int port, string topic, Action<string> callback)
|
public TemporaryMQTTClient(string domain, int port, List<string> topic, Action<string, string> callback)
|
||||||
{
|
{
|
||||||
this.domain = domain;
|
this.domain = domain;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
this.topic = topic;
|
this.topics = topic;
|
||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
var optionBuilder = new ConnectionOptionsBuilder()
|
var optionBuilder = new ConnectionOptionsBuilder()
|
||||||
.WithTCP(domain, port)
|
.WithTCP(domain, port)
|
||||||
@@ -35,7 +36,7 @@ namespace Studio.Connection
|
|||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return $"domain={domain}, port={port}, topic={topic}";
|
return $"domain={domain}, port={port}, topic={topics}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -43,8 +44,14 @@ namespace Studio.Connection
|
|||||||
{
|
{
|
||||||
string payload = Encoding.UTF8.GetString(message.Payload.Data, message.Payload.Offset, message.Payload.Count);
|
string payload = Encoding.UTF8.GetString(message.Payload.Data, message.Payload.Offset, message.Payload.Count);
|
||||||
Debug.Log($"Temporary MQTT is OnTopic. {ToString()}, msg={payload}");
|
Debug.Log($"Temporary MQTT is OnTopic. {ToString()}, msg={payload}");
|
||||||
callback(payload);
|
callback(topicName, payload);
|
||||||
Disconnect();
|
|
||||||
|
this.topics.Remove(topicName);
|
||||||
|
client.CreateUnsubscribePacketBuilder(topicName)
|
||||||
|
.BeginUnsubscribe();
|
||||||
|
|
||||||
|
if (this.topics.Count == 0)
|
||||||
|
Disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ConnectPacketBuilder ConnectPacketBuilderCallback(MQTTClient client, ConnectPacketBuilder builder)
|
private ConnectPacketBuilder ConnectPacketBuilderCallback(MQTTClient client, ConnectPacketBuilder builder)
|
||||||
@@ -53,8 +60,6 @@ namespace Studio.Connection
|
|||||||
}
|
}
|
||||||
void Disconnect()
|
void Disconnect()
|
||||||
{
|
{
|
||||||
client.CreateUnsubscribePacketBuilder(topic)
|
|
||||||
.BeginUnsubscribe();
|
|
||||||
client.CreateDisconnectPacketBuilder()
|
client.CreateDisconnectPacketBuilder()
|
||||||
.BeginDisconnect();
|
.BeginDisconnect();
|
||||||
}
|
}
|
||||||
@@ -78,9 +83,12 @@ namespace Studio.Connection
|
|||||||
private void OnConnectedMQTT(MQTTClient client)
|
private void OnConnectedMQTT(MQTTClient client)
|
||||||
{
|
{
|
||||||
Debug.Log($"Temporary MQTT Client is OnConnected. {ToString()}");
|
Debug.Log($"Temporary MQTT Client is OnConnected. {ToString()}");
|
||||||
client.CreateBulkSubscriptionBuilder()
|
foreach (var t in topics)
|
||||||
.WithTopic(new SubscribeTopicBuilder(topic).WithMessageCallback(OnTopic))
|
{
|
||||||
.BeginSubscribe();
|
client.CreateSubscriptionBuilder(t)
|
||||||
|
.WithMessageCallback(OnTopic)
|
||||||
|
.BeginSubscribe();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -54,6 +54,7 @@ namespace Studio
|
|||||||
public Panel_DataConnectModal panel_dataconnectmodal;
|
public Panel_DataConnectModal panel_dataconnectmodal;
|
||||||
public Panel_AlarmConnectModal panel_alarmconnectmodal;
|
public Panel_AlarmConnectModal panel_alarmconnectmodal;
|
||||||
public Panel_DynamicObjectInfo panel_dynamicobjectinfo;
|
public Panel_DynamicObjectInfo panel_dynamicobjectinfo;
|
||||||
|
internal Panel_MQTTTestResult panel_mqtttestresult;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using Studio.Util;
|
|||||||
using Studio.Conifg;
|
using Studio.Conifg;
|
||||||
using Studio.Connection;
|
using Studio.Connection;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Studio.Manage;
|
||||||
|
|
||||||
namespace Studio
|
namespace Studio
|
||||||
{
|
{
|
||||||
@@ -28,14 +29,15 @@ namespace Studio
|
|||||||
|
|
||||||
public Panel_DataRepository panel_DataRepository;
|
public Panel_DataRepository panel_DataRepository;
|
||||||
|
|
||||||
|
public Panel_MQTTTestResult panel_MQTTTestResult;
|
||||||
public override void AfterAwake()
|
public override void AfterAwake()
|
||||||
{
|
{
|
||||||
prf_InputTopicItem = Resources.Load<UI_InputTopicItem>("Prefabs/UI/PRF_InputTopicItem");
|
prf_InputTopicItem = Resources.Load<UI_InputTopicItem>("Prefabs/UI/PRF_InputTopicItem");
|
||||||
|
|
||||||
Button_AddTopicItem.onClick.AddListener(OnClickAddURLItemButton);
|
Button_AddTopicItem.onClick.AddListener(OnClickAddURLItemButton);
|
||||||
Button_TestMQTT.onClick.AddListener(OnClickMQTTTest);
|
Button_TestMQTT.onClick.AddListener(OnClickMQTTTest);
|
||||||
Button_Remove.onClick.AddListener(OnClickRemoveItemButton);
|
Button_Remove.onClick.AddListener(OnClickRemoveItemButton);
|
||||||
|
|
||||||
|
panel_MQTTTestResult = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_mqtttestresult;
|
||||||
inputTopicItems.Clear();
|
inputTopicItems.Clear();
|
||||||
}
|
}
|
||||||
private void OnClickAddURLItemButton()
|
private void OnClickAddURLItemButton()
|
||||||
@@ -57,16 +59,25 @@ namespace Studio
|
|||||||
List<string> topics = new();
|
List<string> topics = new();
|
||||||
foreach (UI_InputTopicItem item in inputTopicItems)
|
foreach (UI_InputTopicItem item in inputTopicItems)
|
||||||
{
|
{
|
||||||
topics.Add(item.InputField_Topic.text);
|
var topic = item.InputField_Topic.text;
|
||||||
|
topics.Add(topic);
|
||||||
}
|
}
|
||||||
|
var tmpClient = new TemporaryMQTTClient(domain, port, topics, OnTopicTest);
|
||||||
var tmpClient = new TemporaryMQTTClient(domain, port, topics.First(), OnTopicTest);
|
panel_MQTTTestResult.Open(domain, port.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnTopicTest(string payload)
|
void OnTopicTest(string topic, string payload)
|
||||||
{
|
{
|
||||||
Debug.Log($"MQTT Test result = {payload}");
|
Debug.Log($"On Topic Test. topic={topic}, payload={payload}");
|
||||||
|
var result = new Panel_MQTTTestResult.MQTTTestResult
|
||||||
|
{
|
||||||
|
topic = topic,
|
||||||
|
message = "Test Message",
|
||||||
|
payload = payload
|
||||||
|
};
|
||||||
|
panel_MQTTTestResult.AddResult(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClickRemoveItemButton()
|
private void OnClickRemoveItemButton()
|
||||||
{
|
{
|
||||||
onRemoveMQTTConnectionItem?.Invoke(this);
|
onRemoveMQTTConnectionItem?.Invoke(this);
|
||||||
|
|||||||
20
Assets/Scripts/UVC/UI/UVCKeyValueItem.cs
Normal file
20
Assets/Scripts/UVC/UI/UVCKeyValueItem.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using TMPro;
|
||||||
|
|
||||||
|
namespace UVC.UI
|
||||||
|
{
|
||||||
|
public class UVCKeyValueItem : MonoBehaviour
|
||||||
|
{
|
||||||
|
TextMeshProUGUI text_Key;
|
||||||
|
TextMeshProUGUI text_Value;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
text_Key = transform.Find(nameof(text_Key)).GetComponent<TextMeshProUGUI>();
|
||||||
|
text_Value = transform.Find(nameof(text_Value)).GetComponent<TextMeshProUGUI>();
|
||||||
|
}
|
||||||
|
public void SetValue(string value)
|
||||||
|
{
|
||||||
|
text_Value.SetText(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/UVC/UI/UVCKeyValueItem.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCKeyValueItem.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f80c738472e3a5c4086c08da076b88e8
|
||||||
@@ -34,7 +34,7 @@ public partial class MonoBehaviour : UnityEngine.MonoBehaviour
|
|||||||
|
|
||||||
public T Find<T>(string name) where T : Component
|
public T Find<T>(string name) where T : Component
|
||||||
{
|
{
|
||||||
return transform.Find<T>(name);
|
return transform.DeepFind<T>(name);
|
||||||
}
|
}
|
||||||
public new static Object Instantiate(Object original, Vector3 position, Quaternion rotation)
|
public new static Object Instantiate(Object original, Vector3 position, Quaternion rotation)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace XRLib
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
public static T Find<T>(this Transform root, string name) where T : Component
|
public static T DeepFind<T>(this Transform root, string name) where T : Component
|
||||||
{
|
{
|
||||||
T result = default;
|
T result = default;
|
||||||
int count = root.childCount;
|
int count = root.childCount;
|
||||||
@@ -67,7 +67,7 @@ namespace XRLib
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result = child.Find<T>(name);
|
result = child.DeepFind<T>(name);
|
||||||
|
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
|
|||||||
48
Assets/UI_MQTTTestResultItem.cs
Normal file
48
Assets/UI_MQTTTestResultItem.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using TMPro;
|
||||||
|
using TriLibCore.Extensions;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using UVC.UI;
|
||||||
|
using XRLib;
|
||||||
|
|
||||||
|
namespace Studio.UI
|
||||||
|
{
|
||||||
|
public class UI_MQTTTestResultItem : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Transform Item_Topic;
|
||||||
|
public UVCKeyValueItem Item_TopicPayload;
|
||||||
|
public UVCKeyValueItem Item_TopicPacketSize;
|
||||||
|
public Button expand;
|
||||||
|
public Button refresh;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
Item_Topic = transform.DeepFind<Transform>(nameof(Item_Topic));
|
||||||
|
Item_TopicPayload = transform.DeepFind<UVCKeyValueItem>(nameof(Item_TopicPayload));
|
||||||
|
Item_TopicPacketSize = transform.DeepFind<UVCKeyValueItem>(nameof(Item_TopicPacketSize));
|
||||||
|
|
||||||
|
refresh = Item_Topic.GetComponentInChildren<Button>();
|
||||||
|
expand = Item_TopicPayload.GetComponentInChildren<Button>();
|
||||||
|
expand.onClick.AddListener(OnClickExpandPayloadView);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnClickExpandPayloadView()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void SetResult(string topic, string message, string payload)
|
||||||
|
{
|
||||||
|
Debug.Log($"Set MQTT Test Result Item. Topic: {topic}, Message: {message}, Payload Length: {payload.Length}");
|
||||||
|
if(Item_Topic == null || Item_TopicPayload == null || Item_TopicPacketSize == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("UI_MQTTTestResultItem: One or more UI elements are not assigned.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Item_Topic.DeepFind<TextMeshProUGUI>("Text_Topic").SetText(topic);
|
||||||
|
Item_TopicPayload.SetValue(payload);
|
||||||
|
Item_TopicPacketSize.SetValue(payload.Length.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/UI_MQTTTestResultItem.cs.meta
Normal file
2
Assets/UI_MQTTTestResultItem.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4c728c0cf08b8aa4c8ef31b2c9a32c76
|
||||||
@@ -203,7 +203,7 @@ namespace Best.HTTP.Shared.Databases
|
|||||||
|
|
||||||
public bool Save()
|
public bool Save()
|
||||||
{
|
{
|
||||||
if (!this.rwlock.TryEnterWriteLock(TimeSpan.FromMilliseconds(0)))
|
if (rwlock!=null && !this.rwlock.TryEnterWriteLock(TimeSpan.FromMilliseconds(0)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ EditorSettings:
|
|||||||
m_EtcTextureNormalCompressor: 2
|
m_EtcTextureNormalCompressor: 2
|
||||||
m_EtcTextureBestCompressor: 4
|
m_EtcTextureBestCompressor: 4
|
||||||
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref
|
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref
|
||||||
m_ProjectGenerationRootNamespace: XED
|
m_ProjectGenerationRootNamespace: Studio
|
||||||
m_EnableTextureStreamingInEditMode: 1
|
m_EnableTextureStreamingInEditMode: 1
|
||||||
m_EnableTextureStreamingInPlayMode: 1
|
m_EnableTextureStreamingInPlayMode: 1
|
||||||
m_EnableEditorAsyncCPUTextureLoading: 0
|
m_EnableEditorAsyncCPUTextureLoading: 0
|
||||||
|
|||||||
Reference in New Issue
Block a user