Merge pull request 'DataRepository 오류 수정' (#229) from pgd/20250725_1 into main

Reviewed-on: http://220.90.135.190:3000/UVCXR/Studio/pulls/229
This commit was merged in pull request #229.
This commit is contained in:
pgd
2025-07-30 15:47:52 +09:00
13 changed files with 15080 additions and 8814 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 8e37d29fe98f60e4da71e03c86d7f5e7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -32,11 +32,11 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1330096852879011290}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 30, y: 0}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &5947654069834548848
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -67,8 +67,8 @@ MonoBehaviour:
m_Calls: []
m_text: Button
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -92,14 +92,14 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontSize: 12
m_fontSizeBase: 12
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
@@ -136,6 +136,81 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &2430816310505986356
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2330185737949612005}
- component: {fileID: 5591993545921332990}
- component: {fileID: 716719838789989905}
m_Layer: 5
m_Name: Line
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2330185737949612005
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2430816310505986356}
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: 1330096852879011290}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5591993545921332990
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2430816310505986356}
m_CullTransparentMesh: 1
--- !u!114 &716719838789989905
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2430816310505986356}
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: 0.8509804, g: 0.8509804, b: 0.8509804, 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!1 &6116218771329895052
GameObject:
m_ObjectHideFlags: 0
@@ -169,12 +244,13 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1966234658179463742}
- {fileID: 2330185737949612005}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 188, y: 30}
m_SizeDelta: {x: 200, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4462997933352392802
CanvasRenderer:
@@ -204,7 +280,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
@@ -270,3 +346,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7641a0e837d0bf94aa6ba62d3b59c0c6, type: 3}
m_Name:
m_EditorClassIdentifier:
panel_Repository: {fileID: 0}
bg: {fileID: 0}

View File

@@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3405020781819431025
--- !u!1 &1213445600248512317
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -8,24 +8,24 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8412137011264621783}
- component: {fileID: 8159438064414966758}
- component: {fileID: 9166822912208899419}
- component: {fileID: 5581021025715458833}
- component: {fileID: 75617499983841788}
- component: {fileID: 7088658627055302455}
m_Layer: 5
m_Name: Text (TMP)
m_Name: Line
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8412137011264621783
--- !u!224 &5581021025715458833
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3405020781819431025}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_GameObject: {fileID: 1213445600248512317}
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
@@ -33,25 +33,100 @@ RectTransform:
m_Father: {fileID: 492208786282724824}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8159438064414966758
--- !u!222 &75617499983841788
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3405020781819431025}
m_GameObject: {fileID: 1213445600248512317}
m_CullTransparentMesh: 1
--- !u!114 &9166822912208899419
--- !u!114 &7088658627055302455
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3405020781819431025}
m_GameObject: {fileID: 1213445600248512317}
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: 0.8509804, g: 0.8509804, b: 0.8509804, 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!1 &3756551962978519060
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5358655531832547544}
- component: {fileID: 2536976841125526436}
- component: {fileID: 9111590623606980907}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5358655531832547544
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3756551962978519060}
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: 492208786282724824}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 30, y: 0}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &2536976841125526436
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3756551962978519060}
m_CullTransparentMesh: 1
--- !u!114 &9111590623606980907
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3756551962978519060}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
@@ -67,8 +142,8 @@ MonoBehaviour:
m_Calls: []
m_text: Button
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -92,14 +167,14 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 26.05
m_fontSizeBase: 24
m_fontSize: 12
m_fontSizeBase: 12
m_fontWeight: 400
m_enableAutoSizing: 1
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
@@ -168,13 +243,14 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8412137011264621783}
- {fileID: 5358655531832547544}
- {fileID: 5581021025715458833}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 188, y: 30}
m_SizeDelta: {x: 200, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6921339540054383559
CanvasRenderer:
@@ -204,7 +280,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
@@ -271,3 +347,4 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
panel_Repository: {fileID: 0}
bg: {fileID: 0}

View File

@@ -88,7 +88,7 @@ namespace Studio
ResponseModel<object> response = await RestAPI.RequestPost<ResponseModel<object>>(url);
Debug.Log(response);
if (response.code == "SUCCESS")
return new StudioEntityWithState<object>(APIState.Loaded, response.data,response.requestsize);
return new StudioEntityWithState<object>(APIState.Loaded, response.data,response.requestsize,response.message);
return new StudioEntityWithState<object>(APIState.Error, null, 0,response.message);
});

View File

@@ -138,6 +138,7 @@ namespace Studio
{
mqttData[type] = (entities, elapsedTime);
}
onMQTTDataLoaded?.Invoke(type, entities, elapsedTime);
}
private void UpdateTopicData(string type, string id, Dictionary<string, string> entity)
@@ -316,10 +317,10 @@ namespace Studio
string key1 = te1.Name.ToString();
string value = te1.Value.ToString();
var split = value.ToString().Split('[');
var t = string.Empty;
if(split.Length >1)
t = $"[{split[split.Length - 1]}";
var t = string.Empty;
if (value.Contains("["))
t = value;
else if(!split[split.Length - 1].Contains("{"))
{
Dictionary<string, string> item = new();
@@ -328,7 +329,7 @@ namespace Studio
continue;
}
else
t= $"[{split[split.Length - 1]}]";
t= $"[{value}]";
JArray jarray = JArray.Parse(t);
foreach (JObject obj in jarray.Children())
@@ -378,6 +379,5 @@ namespace Studio
}
}
}
}
}

View File

@@ -1,10 +1,11 @@
using TMPro;
using Studio.Setting.Connect;
using Studio.UI;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using Studio.UI;
using Studio.Setting.Connect;
using XRLib.UI;
using System;
namespace Studio
@@ -14,14 +15,16 @@ namespace Studio
public Panel_DataRepository panel_Repository;
Button button;
public Image bg;
TextMeshProUGUI buttonName;
string baseDataKey;
StudioEntityWithState<object> dataValue;
StudioEntityWithState<List<Dictionary<string, string>>> dataValue;
private void Awake()
{
button = GetComponent<Button>();
bg = GetComponent<Image>();
buttonName = GetComponentInChildren<TextMeshProUGUI>();
button.onClick.AddListener(OnClickButton);
@@ -29,15 +32,20 @@ namespace Studio
void OnClickButton()
{
panel_Repository.ShowInformation_APIData(dataValue);
panel_Repository.ShowInformation_APIData(baseDataKey, dataValue);
bg.color = new Color32(0xD2, 0x0A, 0x11, 0xFF);
}
public void SetButtonData<T>(string name, StudioEntityWithState<T> data)
{
baseDataKey = name;
dataValue = data as StudioEntityWithState<object>;
buttonName.text = name.Split(new[] { "/api/" }, StringSplitOptions.None)[1];
Debug.Log(data.GetType());
dataValue = data as StudioEntityWithState<List<Dictionary<string, string>>>;
buttonName.text = name?.Contains("/api/") == true
? name.Split(new[] { "/api/" }, StringSplitOptions.None)[1]
: name;
}
}
}

View File

@@ -14,6 +14,7 @@ namespace Studio
public Panel_DataRepository panel_Repository;
Button button;
public Image bg;
TextMeshProUGUI buttonName;
string baseDataKey;
@@ -23,6 +24,7 @@ namespace Studio
private void Awake()
{
button = GetComponent<Button>();
bg = GetComponent<Image>();
buttonName = GetComponentInChildren<TextMeshProUGUI>();
button.onClick.AddListener(OnClickButton);
@@ -30,7 +32,8 @@ namespace Studio
void OnClickButton()
{
panel_Repository.ShowInformation_MQTTData(dataValue, elapsedTime);
panel_Repository.ShowInformation_MQTTData(baseDataKey, dataValue, elapsedTime);
bg.color = new Color32(0xD2, 0x0A, 0x11, 0xFF);
}
public void SetButtonData(string name, Dictionary<string, Dictionary<string, string>> data, TimeSpan elapsedTime)

View File

@@ -19,8 +19,10 @@ namespace Studio.UI
public Panel_DataRepository panel_Repository;
Button ClickButton;
public Button ClickButton;
Button FoldButton;
public Image bg;
TextMeshProUGUI buttonText;
UI_DataRepositoryButtonList dataList;
@@ -31,7 +33,7 @@ namespace Studio.UI
{
buttonText = ClickButton.GetComponentInChildren<TextMeshProUGUI>();
dataList = GetComponentInChildren<UI_DataRepositoryButtonList>();
bg = ClickButton.GetComponent<Image>();
ClickButton.onClick.AddListener(OnClickButton);
FoldButton.onClick.AddListener(OnClickFoldButton);
}
@@ -46,6 +48,8 @@ namespace Studio.UI
{
panel_Repository.ShowInformation_MQTT();
}
bg.color = new Color32(0xD2, 0x0A, 0x11, 0xFF);
}
void OnClickFoldButton()
@@ -53,13 +57,13 @@ namespace Studio.UI
if (isFold)
{
dataList.FoldButtons(true);
FoldButton.GetComponent<RectTransform>().localRotation = Quaternion.Euler(0f, 0f, 0f);
FoldButton.GetComponent<RectTransform>().localScale = Vector3.one;
isFold = false;
}
else
{
dataList.FoldButtons(false);
FoldButton.GetComponent<RectTransform>().localRotation = Quaternion.Euler(0f, 0f, 180f);
FoldButton.GetComponent<RectTransform>().localScale = new Vector3(1, -1, 1);
isFold = true;
}
panel_Repository.RebuildLayout();

View File

@@ -1,6 +1,7 @@
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs;
using Newtonsoft.Json;
using Studio.Setting.Connect;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
@@ -11,6 +12,8 @@ namespace Studio.UI
{
public class Panel_APIDataInfo : PanelBase
{
TextMeshProUGUI TextTitle;
TextMeshProUGUI DataType;
TextMeshProUGUI RawData;
RectTransform rawDataRect;
float rawDataFoldHeight;
@@ -26,21 +29,24 @@ namespace Studio.UI
{
rawDataRect = RawData.GetComponent<RectTransform>();
rawDataFoldHeight = rawDataRect.sizeDelta.y;
RawDataFoldButton.GetComponent<Button>().onClick.AddListener(OnClickRawDataFoldButton);
//RawDataFoldButton.GetComponent<Button>().onClick.AddListener(OnClickRawDataFoldButton);
}
public void ShowData<T>(StudioEntityWithState<T> data)
public void ShowData<T>(string name, StudioEntityWithState<T> data)
{
RawData.text = JsonConvert.SerializeObject(data.Entity, Formatting.Indented);
rawDataOriginHeight = RawData.preferredHeight;
rawDataOriginHeight = Mathf.Max(rawDataFoldHeight, rawDataOriginHeight);
rawDataRect = RawData.GetComponent<RectTransform>();
Vector2 sizeDelta = rawDataRect.sizeDelta;
sizeDelta.y = rawDataOriginHeight;
rawDataRect.sizeDelta = sizeDelta;
//rawDataOriginHeight = RawData.preferredHeight;
//rawDataOriginHeight = Mathf.Max(rawDataFoldHeight, rawDataOriginHeight);
//rawDataRect = RawData.GetComponent<RectTransform>();
//Vector2 sizeDelta = rawDataRect.sizeDelta;
//sizeDelta.y = rawDataOriginHeight;
//rawDataRect.sizeDelta = sizeDelta;
TextTitle.text = name?.Contains("/api/") == true
? name.Split(new[] { "/api/" }, StringSplitOptions.None)[1]
: name;
DataType.text = "Json";
var byteSize = System.Text.Encoding.Default.GetBytes(data.Entity.ToString()).Length;
PacketSize.text = byteSize.ToString();
LastRequestTime.text = data.lastRequestTime.ToString();

View File

@@ -34,13 +34,14 @@ namespace Studio
TextMeshProUGUI MaximumResponseTimeAPI;
LayoutGroup[] layoutGroups;
UI_ProtocolLabel[] protocolLabels;
Dictionary<string, UI_BaseDataButton> apiButtons = new();
Dictionary<string, UI_MQTTDataButton> mqttButtons = new();
public override void AfterAwake()
{
UI_ProtocolLabel[] protocolLabels = GetComponentsInChildren<UI_ProtocolLabel>();
protocolLabels = GetComponentsInChildren<UI_ProtocolLabel>();
foreach (UI_ProtocolLabel label in protocolLabels)
{
label.panel_Repository = this;
@@ -60,7 +61,7 @@ namespace Studio
StudioService studioService = StudioService.instance;
studioService.onAPIDataLoaded += UpdateAPIDataButton;
// studioService.onAPIDataLoaded += UpdateAPIDataButton;
studioService.onMQTTDataLoaded += UpdateMQTTDataButton;
foreach (string key in studioService.apiData.Keys)
@@ -68,16 +69,15 @@ namespace Studio
UpdateAPIDataButton(key, studioService.apiData[key]);
}
foreach (string key in studioService.mqttData.Keys)
{
UpdateMQTTDataButton(key, studioService.mqttData[key].Item1, studioService.mqttData[key].Item2);
}
//foreach (string key in studioService.mqttData.Keys)
//{
// UpdateMQTTDataButton(key, studioService.mqttData[key].Item1, studioService.mqttData[key].Item2);
//}
}
private void OnDisable()
{
StudioService.instance.onAPIDataLoaded -= UpdateAPIDataButton;
StudioService.instance.onMQTTDataLoaded -= UpdateMQTTDataButton;
}
@@ -133,6 +133,7 @@ namespace Studio
Panel_APIDataInfo.gameObject.SetActive(false);
Panel_MQTTInfo.gameObject.SetActive(false);
Panel_MQTTDataInfo.gameObject.SetActive(false);
ResetButtonColor();
if (info == null)
return;
@@ -143,20 +144,27 @@ namespace Studio
AverageResponsePacketSize.text = info.AverageResponsePacketSize.ToString();
MaximumResponseTime.text = info.MaximumResponseTime.ToString();
AverageResponseTime.text = info.AverageResponseTime.ToString();
MaximumRequestPacketAPI.text = info.MaximumRequestPacketAPI;
MaximumResponsePacketAPI.text = info.MaximumResponsePacketAPI;
MaximumResponseTimeAPI.text = info.MaximumResponseTimeAPI;
MaximumRequestPacketAPI.text = info.MaximumRequestPacketAPI?.Contains("/api/") == true
? info.MaximumRequestPacketAPI.Split(new[] { "/api/" }, StringSplitOptions.None)[1]
: info.MaximumRequestPacketAPI;
MaximumResponsePacketAPI.text = info.MaximumResponsePacketAPI?.Contains("/api/") == true
? info.MaximumResponsePacketAPI.Split(new[] { "/api/" }, StringSplitOptions.None)[1]
: info.MaximumResponsePacketAPI;
MaximumResponseTimeAPI.text = info.MaximumResponseTimeAPI?.Contains("/api/") == true
? info.MaximumResponseTimeAPI.Split(new[] { "/api/" }, StringSplitOptions.None)[1]
: info.MaximumResponseTimeAPI;
}
public void ShowInformation_APIData<T>(StudioEntityWithState<T> baseDataValue)
public void ShowInformation_APIData<T>(string name, StudioEntityWithState<T> baseDataValue)
{
Panel_APIDataInfo.GetComponent<Panel_APIDataInfo>().ShowData(baseDataValue);
Panel_APIDataInfo.GetComponent<Panel_APIDataInfo>().ShowData(name, baseDataValue);
Panel_APIInfo.gameObject.SetActive(false);
Panel_APIDataInfo.gameObject.SetActive(true);
Panel_MQTTInfo.gameObject.SetActive(false);
Panel_MQTTDataInfo.gameObject.SetActive(false);
ResetButtonColor();
}
public void ShowInformation_MQTT()
@@ -165,21 +173,41 @@ namespace Studio
Panel_APIDataInfo.gameObject.SetActive(false);
Panel_MQTTInfo.gameObject.SetActive(true);
Panel_MQTTDataInfo.gameObject.SetActive(false);
ResetButtonColor();
}
public void ShowInformation_MQTTData(Dictionary<string, Dictionary<string, string>> data, TimeSpan elapsedTime)
public void ShowInformation_MQTTData(string name, Dictionary<string, Dictionary<string, string>> data, TimeSpan elapsedTime)
{
Panel_MQTTDataInfo.GetComponent<Panel_MQTTDataInfo>().ShowData(data, elapsedTime);
Panel_MQTTDataInfo.GetComponent<Panel_MQTTDataInfo>().ShowData(name, data, elapsedTime);
Panel_APIInfo.gameObject.SetActive(false);
Panel_APIDataInfo.gameObject.SetActive(false);
Panel_MQTTInfo.gameObject.SetActive(false);
Panel_MQTTDataInfo.gameObject.SetActive(true);
ResetButtonColor();
}
void Deactivate()
{
gameObject.SetActive(false);
}
private void ResetButtonColor()
{
foreach (UI_ProtocolLabel label in protocolLabels)
{
label.bg.color = Color.white;
}
foreach (var btn in apiButtons.Values)
{
btn.bg.color = Color.white;
}
foreach (var btn in mqttButtons.Values)
{
btn.bg.color = Color.white;
}
}
}
}

View File

@@ -10,6 +10,8 @@ namespace Studio.UI
{
public class Panel_MQTTDataInfo : PanelBase
{
TextMeshProUGUI TextTitle;
TextMeshProUGUI DataType;
TextMeshProUGUI RawData;
RectTransform rawDataRect;
float rawDataFoldHeight;
@@ -23,20 +25,22 @@ namespace Studio.UI
{
rawDataRect = RawData.GetComponent<RectTransform>();
rawDataFoldHeight = rawDataRect.sizeDelta.y;
RawDataFoldButton.GetComponent<Button>().onClick.AddListener(OnClickRawDataFoldButton);
//RawDataFoldButton.GetComponent<Button>().onClick.AddListener(OnClickRawDataFoldButton);
}
public void ShowData(Dictionary<string, Dictionary<string, string>> data, TimeSpan elapsedTime)
public void ShowData(string name, Dictionary<string, Dictionary<string, string>> data, TimeSpan elapsedTime)
{
TextTitle.text = name;
DataType.text = "Json";
RawData.text = JsonConvert.SerializeObject(data, Formatting.Indented);
rawDataOriginHeight = RawData.preferredHeight;
rawDataOriginHeight = Mathf.Max(rawDataFoldHeight, rawDataOriginHeight);
//rawDataOriginHeight = RawData.preferredHeight;
//rawDataOriginHeight = Mathf.Max(rawDataFoldHeight, rawDataOriginHeight);
rawDataRect = RawData.GetComponent<RectTransform>();
Vector2 sizeDelta = rawDataRect.sizeDelta;
sizeDelta.y = rawDataOriginHeight;
rawDataRect.sizeDelta = sizeDelta;
//rawDataRect = RawData.GetComponent<RectTransform>();
//Vector2 sizeDelta = rawDataRect.sizeDelta;
//sizeDelta.y = rawDataOriginHeight;
//rawDataRect.sizeDelta = sizeDelta;
var byteSize = System.Text.Encoding.Default.GetBytes(data.ToString()).Length;
PacketSize.text = byteSize.ToString();