Merge pull request '최종 검사 데이터 연동 및 UI 기능 개발' (#141) from jym/251031_00 into main

Reviewed-on: http://220.90.135.190:3000/UVCXR/ChunilENG/pulls/141
This commit was merged in pull request #141.
This commit is contained in:
jym
2025-10-31 11:26:46 +09:00
13 changed files with 1731 additions and 925 deletions

View File

@@ -145,7 +145,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 1628, y: -571}
m_SizeDelta: {x: 582, y: 1018}
m_SizeDelta: {x: 347, y: 808}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6122918615712894891
CanvasRenderer:
@@ -1479,7 +1479,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uC124\uBE44 \uC2DC\uAC04 \uC54C\uB78C"
m_text: "\uC644\uB8CC \uC608\uCE21 \uC2DC\uAC04"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 73a8cbdb8d46fbb4bae58573ac247b09, type: 2}
m_sharedMaterial: {fileID: -2117747647215524922, guid: 73a8cbdb8d46fbb4bae58573ac247b09, type: 2}

View File

@@ -8762,9 +8762,9 @@ RectTransform:
- {fileID: 403467656}
m_Father: {fileID: 852594467}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 155, y: -15}
m_SizeDelta: {x: 100, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &49187857
@@ -26678,7 +26678,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uC81C\uC5B4 \uAC12\uC744 \uC785\uB825\uD558\uC138\uC694.."
m_text: "\uC81C\uC5B4 \uAC12"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: c2f32d96b71927e429b2adee0d64a773, type: 2}
m_sharedMaterial: {fileID: -3516750883916327525, guid: c2f32d96b71927e429b2adee0d64a773, type: 2}
@@ -26712,7 +26712,7 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
@@ -61140,6 +61140,43 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 307745820}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &308317676
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 308317677}
m_Layer: 5
m_Name: RealValueItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &308317677
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 308317676}
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: 1731287624}
- {fileID: 661454651}
m_Father: {fileID: 1892405464}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 42.5, y: -30}
m_SizeDelta: {x: 85, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &308669476
GameObject:
m_ObjectHideFlags: 0
@@ -77460,7 +77497,7 @@ GameObject:
m_Component:
- component: {fileID: 384783525}
m_Layer: 5
m_Name: RealValueItem
m_Name: SettingValueItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -77482,9 +77519,9 @@ RectTransform:
- {fileID: 1256555771}
m_Father: {fileID: 1892405464}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 150.5, y: -30}
m_SizeDelta: {x: 85, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &384960601
@@ -103111,9 +103148,9 @@ RectTransform:
- {fileID: 271707774}
m_Father: {fileID: 852594467}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 50, y: -15}
m_SizeDelta: {x: 100, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &524551675
@@ -108661,10 +108698,10 @@ RectTransform:
- {fileID: 514204218}
m_Father: {fileID: 836519925}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 90, y: 20}
m_SizeDelta: {x: 180, y: 40}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 20}
m_SizeDelta: {x: 80, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &548410962
MonoBehaviour:
@@ -113491,7 +113528,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &568749363
RectTransform:
m_ObjectHideFlags: 0
@@ -132579,6 +132616,142 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 661282150}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &661454650
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 661454651}
- component: {fileID: 661454653}
- component: {fileID: 661454652}
m_Layer: 5
m_Name: RealValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &661454651
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 661454650}
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: 308317677}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 42.5, y: 20}
m_SizeDelta: {x: 85, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &661454652
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 661454650}
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: 49.7
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, 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: 2
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!222 &661454653
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 661454650}
m_CullTransparentMesh: 1
--- !u!1 &662417336
GameObject:
m_ObjectHideFlags: 0
@@ -182868,8 +183041,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 50, y: -10}
m_SizeDelta: {x: 100, y: 20}
m_AnchoredPosition: {x: 42.5, y: -10}
m_SizeDelta: {x: 85, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &796055724
MonoBehaviour:
@@ -202718,10 +202891,10 @@ RectTransform:
- {fileID: 548410961}
m_Father: {fileID: 1892405464}
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: 180, y: 60}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 258.5, y: -30}
m_SizeDelta: {x: 85, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &838056782
GameObject:
@@ -205079,7 +205252,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -112.5, y: 40}
m_AnchoredPosition: {x: -112.5, y: 30}
m_SizeDelta: {x: 205, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &852594468
@@ -268206,7 +268379,7 @@ GameObject:
- component: {fileID: 1163872287}
- component: {fileID: 1163872286}
m_Layer: 5
m_Name: Title_RealValue
m_Name: Title_SettingValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -268251,7 +268424,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uAE08\uD615 \uC628\uB3C4 \uC2E4\uC81C \uAC12"
m_text: "\uAE08\uD615 \uC628\uB3C4 \uC138\uD305 \uAC12"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 155cf7b89710f7e40aa64ac01771e416, type: 2}
m_sharedMaterial: {fileID: 2250789165734441016, guid: 155cf7b89710f7e40aa64ac01771e416, type: 2}
@@ -275315,6 +275488,105 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1204059408}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1205054472
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1205054473}
- component: {fileID: 1205054476}
- component: {fileID: 1205054475}
- component: {fileID: 1205054474}
m_Layer: 5
m_Name: Image_Loading
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1205054473
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205054472}
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: 2113476081}
m_Father: {fileID: 6655705348909782899}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!95 &1205054474
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205054472}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: e7e18e05adfe93544917101c0d6517bf, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &1205054475
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205054472}
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: 1998993089, guid: 34ffe97dd380f31478630d3d8c999e88, type: 3}
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!222 &1205054476
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205054472}
m_CullTransparentMesh: 1
--- !u!1 &1205286712
GameObject:
m_ObjectHideFlags: 0
@@ -283987,7 +284259,7 @@ GameObject:
- component: {fileID: 1256555773}
- component: {fileID: 1256555772}
m_Layer: 5
m_Name: RealValue
m_Name: SettingValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -284032,7 +284304,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 0
m_text: 50
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@@ -333439,7 +333711,7 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
@@ -334334,7 +334606,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1516965808
RectTransform:
m_ObjectHideFlags: 0
@@ -334355,7 +334627,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 160}
m_SizeDelta: {x: 320, y: 160}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1516965809
MonoBehaviour:
@@ -334409,6 +334681,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
Title: {fileID: 0}
RealValue: {fileID: 0}
SettingValue: {fileID: 0}
InputField_ControlValue: {fileID: 0}
Button_Control: {fileID: 0}
Button_Cancel: {fileID: 0}
@@ -379456,6 +379729,142 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1730901743}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1731287623
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1731287624}
- component: {fileID: 1731287626}
- component: {fileID: 1731287625}
m_Layer: 5
m_Name: Title_RealValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1731287624
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1731287623}
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: 308317677}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 42.5, y: -10}
m_SizeDelta: {x: 85, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1731287625
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1731287623}
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: "\uAE08\uD615 \uC628\uB3C4 \uC2E4\uC81C \uAC12"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 155cf7b89710f7e40aa64ac01771e416, type: 2}
m_sharedMaterial: {fileID: 2250789165734441016, guid: 155cf7b89710f7e40aa64ac01771e416, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4288651167
m_fontColor: {r: 0.6226415, g: 0.6226415, b: 0.6226415, 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: 12
m_fontSizeBase: 12
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!222 &1731287626
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1731287623}
m_CullTransparentMesh: 1
--- !u!1 &1731498553
GameObject:
m_ObjectHideFlags: 0
@@ -399659,7 +400068,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
machines: []
currentData: []
--- !u!1 &1822648468
GameObject:
m_ObjectHideFlags: 0
@@ -402683,10 +403091,26 @@ PrefabInstance:
propertyPath: m_Name
value: Panel_CompleteAlramHistory
objectReference: {fileID: 0}
- target: {fileID: 2015586183705257098, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_IsActive
- target: {fileID: 2975405984462419634, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_text
value: "\uC644\uB8CC\uC2DC\uAC04\uC608\uCE21"
objectReference: {fileID: 0}
- target: {fileID: 2975405984462419634, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_fontColor.b
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2975405984462419634, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_fontColor.g
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2975405984462419634, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_fontColor.r
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2975405984462419634, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_fontColor32.rgba
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 5290342058106165413, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_Pivot.x
value: 0.5
@@ -402783,10 +403207,6 @@ PrefabInstance:
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8100983100533929295, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_AnchoredPosition.y
value: -0.000030517578
objectReference: {fileID: 0}
- target: {fileID: 9138834436198834237, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_AnchorMax.x
value: 0
@@ -402795,10 +403215,6 @@ PrefabInstance:
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9138834436198834237, guid: 1e2f1310fcc725c4a82bd8a7a783ca22, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -414673,6 +415089,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 308317677}
- {fileID: 384783525}
- {fileID: 836519925}
m_Father: {fileID: 1516965808}
@@ -414680,7 +415097,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -70}
m_SizeDelta: {x: 280, y: 60}
m_SizeDelta: {x: 304, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1892405465
MonoBehaviour:
@@ -414700,7 +415117,7 @@ MonoBehaviour:
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 15
m_Spacing: 23
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
@@ -459316,6 +459733,142 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2111996320}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &2113476080
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2113476081}
- component: {fileID: 2113476083}
- component: {fileID: 2113476082}
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 &2113476081
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2113476080}
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: 1205054473}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 80, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2113476082
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2113476080}
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: Loading..
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 73a8cbdb8d46fbb4bae58573ac247b09, type: 2}
m_sharedMaterial: {fileID: -2117747647215524922, guid: 73a8cbdb8d46fbb4bae58573ac247b09, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, 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: 2
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!222 &2113476083
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2113476080}
m_CullTransparentMesh: 1
--- !u!1 &2114124431
GameObject:
m_ObjectHideFlags: 0
@@ -562627,6 +563180,7 @@ RectTransform:
m_Children:
- {fileID: 2050515120}
- {fileID: 8638526223199067391}
- {fileID: 1205054473}
- {fileID: 6011291902712399202}
m_Father: {fileID: 1673135432}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -568808,9 +569362,12 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Content: {fileID: 0}
Image_Loading: {fileID: 0}
CloseButton: {fileID: 0}
CurrentDate: {fileID: 0}
CurrentTime: {fileID: 0}
statusItemsCount: 11
changeDataTime: 5
fadeTime: 0.2
--- !u!1 &7070794963643191929
GameObject:

View File

@@ -119,6 +119,7 @@ namespace CHN
productionStatusManager.onFirstFloorInfo += popupCanvas.panel_injectionproduction.SetProductionStatus;
productionStatusManager.onSecondFloorInfo += popupCanvas.panel_assemblyproduction.SetProductionStatus;
productionStatusManager.onTotalFloorInfo += popupCanvas.panel_totalproduction.SetTotalProductionStatus;
productionStatusManager.onFinalInspectionData += popupCanvas.panel_finalinspection.SetProductionStatus;
productionStatusManager.onWorkShopInfo += popupCanvas.panel_workprogressstatus.SetWorkProgressStatus;
datamanager.onSimpleInfo += popupCanvas.SimpleView;
@@ -131,13 +132,11 @@ namespace CHN
mqttManager.onNotloadData += popupCanvas.panel_workprogressstatus.ActiveLoadingImage;
mqttManager.onNotloadData += popupCanvas.panel_totalproduction.ActiveLoadingImage;
mqttManager.onMachineData += datamanager.MachineMatching;
mqttManager.onMachineData += completeTimeManager.SetCurrentData;
mqttManager.onMachineData += popupCanvas.panel_completealramhistory.SetAlarmInfoItems;
mqttManager.onMachineData += productionStatusManager.SetFloorProductionStatus;
mqttManager.onWorkshopData += productionStatusManager.SetWorkProgressStatus;
mqttManager.onWorkshopData += popupCanvas.panel_totalproduction.SetWorkProgressStatus;
completeTimeManager.onLoadData += popupCanvas.panel_completealramhistory.SetAlarmInfoItems;
completeTimeManager.onUnloadData += popupCanvas.panel_completealramhistory.SetAlarmInfoItems;
completeTimeManager.onActiveHighLighter += popupCanvas.MachineDashBoardOpen;
completeTimeManager.onActiveHighLighter += highLightManager.ClickMachinToHighlight;
completeTimeManager.onActiveHighLighter += highLightManager.SetTargetPosToMachine;
@@ -163,7 +162,7 @@ namespace CHN
workTimeManager.onSendChartData += popupCanvas.panel_worktimeanalysis.SetWorkTimeData;
thermostatIconManager.onClickThermostatIcon += popupCanvas.panel_thermostatcontrol.Open;
thermostatIconManager.onClickThermostatIcon += popupCanvas.panel_thermostatcontrol.SetData;
raycaster.onLeftClickMachine += popupCanvas.MachineDashBoardOpen;
raycaster.onLeftClickMachine += highLightManager.ClickMachinToHighlight;

View File

@@ -20,13 +20,14 @@ public class MQTT : Protocol, ISingle, IOptionable
[OptionKey]
string port="8901";
[OptionKey]
string topics= "MES/PDV/BOARD1,MES/PDV/BOARD2";
string topics= "MES/PDV/BOARD1,MES/PDV/BOARD2,MES/PDV/BOARD3";
private int portData;
private string[] subscriptionTopics;
public event Action<bool> onNotloadData;
public event Action<List<CompleteInfo>> onMachineData;
public event Action<List<WorkShopInfo>> onWorkshopData;
public event Action<List<AlarmInfo>> onAlarmData;
public void Awake()
{
onNotloadData?.Invoke(true);
@@ -44,6 +45,7 @@ public class MQTT : Protocol, ISingle, IOptionable
SubscriptionTopic(subscriptionTopics[0], onWorkshopData);
SubscriptionTopic(subscriptionTopics[1], onMachineData);
SubscriptionTopic(subscriptionTopics[2], onAlarmData);
//SubscriptionTopic(subscriptionTopics[0], (data) => { });
Connect(host, portData.ToString(), topics);
}
@@ -165,12 +167,26 @@ public class MQTT : Protocol, ISingle, IOptionable
public string moldcd;
public string moldseq;
}
[Serializable]
public class AlarmInfo
{
public string ;
public string ;
public string ;
public string ;
public string ;
public string ;
public string ;
}
public List<CompleteInfo> infos = new List<CompleteInfo>();
public List<WorkShopInfo> workShopInfo = new List<WorkShopInfo>();
public List<AlarmInfo> alarmInfo = new List<AlarmInfo>();
public List<string> workerIds = new List<string>();
Dictionary<string, Action<List<CompleteInfo>>> topicSubscriptionTable = new();
Dictionary<string, Action<List<WorkShopInfo>>> workShopTopicTable = new();
Dictionary<string, Action<List<AlarmInfo>>> alarmTopicTable = new();
private void OnMessage(MQTTClient client, SubscriptionTopic topic, string topicName, ApplicationMessage message)
{
// Convert the raw payload to a string
@@ -187,15 +203,14 @@ public class MQTT : Protocol, ISingle, IOptionable
{
List<CompleteInfo> data = JsonConvert.DeserializeObject<List<CompleteInfo>>(payload);
infos = data;
workerIds.Clear();
foreach (var i in infos)
{
if (i.worknm == "")
workerIds.Add(i.workcd);
}
//Print(workerIds);
topicSubscriptionTable[topicName]?.Invoke(infos);
}
else if (topicName == "MES/PDV/BOARD3")
{
List<AlarmInfo> data = JsonConvert.DeserializeObject<List<AlarmInfo>>(payload);
alarmInfo = data;
alarmTopicTable[topicName]?.Invoke(alarmInfo);
}
}
StringBuilder sb = new StringBuilder();
void Print(List<string> target)
@@ -220,6 +235,12 @@ public class MQTT : Protocol, ISingle, IOptionable
workShopTopicTable.Add(topic, null);
workShopTopicTable[topic] += callback;
}
public void SubscriptionTopic(string topic, Action<List<AlarmInfo>> callback)
{
if (!alarmTopicTable.ContainsKey(topic))
alarmTopicTable.Add(topic, null);
alarmTopicTable[topic] += callback;
}
private void OnSubscriptionAcknowledged(MQTTClient client, SubscriptionTopic topic, SubscribeAckReasonCodes reasonCode)
{

View File

@@ -20,6 +20,7 @@ namespace CHN
public Action<List<CompleteInfo>> onFirstFloorInfo;
public Action<List<CompleteInfo>> onSecondFloorInfo;
public Action<List<CompleteInfo>, List<CompleteInfo>> onTotalFloorInfo;
public Action<List<CompleteInfo>> onFinalInspectionData;
public Action<List<WorkShopInfo>> onWorkShopInfo;
@@ -42,16 +43,18 @@ namespace CHN
SetFloorInfo(building.floors[1], completeInfo, secondFloorInfo);
}
List<CompleteInfo> firstFloorInfoList = firstFloorInfo.Values.ToList();
List<CompleteInfo> secondFloorInfoList = secondFloorInfo.Values.ToList();
var firstFloorInfos = firstFloorInfo.Values.ToList();
var secondFloorInfos = secondFloorInfo.Values.ToList();
var finalInspectionInfos = completeInfos.Where(i => i.wccd == "W30").ToList();
productionStatusInfos.Clear();
productionStatusInfos.AddRange(firstFloorInfoList);
productionStatusInfos.AddRange(secondFloorInfoList);
productionStatusInfos.AddRange(firstFloorInfos);
productionStatusInfos.AddRange(secondFloorInfos);
onFirstFloorInfo?.Invoke(firstFloorInfoList);
onSecondFloorInfo?.Invoke(secondFloorInfoList);
onTotalFloorInfo?.Invoke(firstFloorInfoList, secondFloorInfoList);
onFirstFloorInfo?.Invoke(firstFloorInfos);
onSecondFloorInfo?.Invoke(secondFloorInfos);
onTotalFloorInfo?.Invoke(firstFloorInfos, secondFloorInfos);
onFinalInspectionData?.Invoke(finalInspectionInfos);
}
public void SetFloorInfo(Floor floor, CompleteInfo completeInfo, Dictionary<string, CompleteInfo> floorInfo)
{

View File

@@ -45,7 +45,7 @@ namespace CHN
var active = isActive ? false : true;
Image_Loading.gameObject.SetActive(active);
}
public void SetAlarmInfoItems(List<CompleteTimeAlarmData> infos)
public void SetAlarmInfoItems(List<CompleteInfo> infos)
{
ActiveLoadingImage(true);
@@ -53,18 +53,17 @@ namespace CHN
for (int i = 0; i < sortedInfos.Count; i++)
{
if (completeInfoList.ContainsKey(sortedInfos[i].completeInfo.worknm))
if (completeInfoList.ContainsKey(sortedInfos[i].worknm))
{
completeInfoList[sortedInfos[i].completeInfo.worknm].SetInfo(sortedInfos[i].completeInfo);
completeInfoList[sortedInfos[i].worknm].SetInfo(sortedInfos[i]);
}
else
{
var infoItem = Instantiate(prefab_completeTimeAlarmInfo, ScrollView_CompleteAlramHistory.content);
infoItem.SetInfo(sortedInfos[i].completeInfo);
infoItem.SetInfo(sortedInfos[i]);
infoItem.onCheck += CheckAlram;
infoItem.isCheck = sortedInfos[i].isCheck;
completeInfoList.Add(sortedInfos[i].completeInfo.worknm, infoItem);
completeInfoList.Add(sortedInfos[i].worknm, infoItem);
if (!infoItem.isCheck)
{
@@ -75,12 +74,12 @@ namespace CHN
BlinkAlarmItems();
}
private List<CompleteTimeAlarmData> SetSortInfoData(List<CompleteTimeAlarmData> infos)
private List<CompleteInfo> SetSortInfoData(List<CompleteInfo> infos)
{
var sortedInfos = infos.Select(data =>
{
DateTime parsedDate;
bool isValid = DateTime.TryParse(data.completeInfo.ptotm, out parsedDate);
bool isValid = DateTime.TryParse(data.ptotm, out parsedDate);
return new
{
AlarmData = data,

View File

@@ -58,6 +58,8 @@ namespace CHN
ChangePanel<Panel_ControlSetting>();
ChangeButtonState(Button_Control);
SetActive(true);
transform.SetAsLastSibling();
}
void ChangePanel<T>() where T : SettingPanel

View File

@@ -33,28 +33,28 @@ MonoBehaviour:
m_Settings:
m_SettingsList:
m_List:
- rid: 2457864184453136567
- rid: 2457864184453136568
- rid: 5637594796066865152
- rid: 5637594796066865153
- rid: 8001919616418054146
- rid: 2457864184453136569
- rid: 5637594796066865154
- rid: 8001919616418054148
- rid: 2457864184453136570
- rid: 5637594796066865155
- rid: 8001919616418054150
- rid: 8001919616418054151
- rid: 8001919616418054152
- rid: 8001919616418054153
- rid: 2457864184453136571
- rid: 5637594796066865156
- rid: 8001919616418054155
- rid: 2457864184453136572
- rid: 5637594796066865157
- rid: 8001919616418054157
- rid: 2457864184453136573
- rid: 2457864184453136574
- rid: 2457864184453136575
- rid: 5637594796066865158
- rid: 5637594796066865159
- rid: 5637594796066865160
- rid: 8001919616418054161
- rid: 2457864184453136576
- rid: 2457864184453136577
- rid: 5637594796066865161
- rid: 5637594796066865162
- rid: 8001919616418054164
- rid: 2457864184453136578
- rid: 5637594796066865163
m_RuntimeSettings:
m_List:
- rid: 8001919616418054146
@@ -90,7 +90,7 @@ MonoBehaviour:
references:
version: 2
RefIds:
- rid: 2457864184453136567
- rid: 5637594796066865152
type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
@@ -99,7 +99,7 @@ MonoBehaviour:
m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2}
m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2}
m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
- rid: 2457864184453136568
- rid: 5637594796066865153
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
@@ -111,7 +111,7 @@ MonoBehaviour:
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
- rid: 2457864184453136569
- rid: 5637594796066865154
type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
@@ -126,18 +126,18 @@ MonoBehaviour:
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
- rid: 2457864184453136570
- rid: 5637594796066865155
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2}
- rid: 2457864184453136571
- rid: 5637594796066865156
type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_StripUnusedPostProcessingVariants: 0
m_StripUnusedVariants: 1
m_StripScreenCoordOverrideVariants: 1
- rid: 2457864184453136572
- rid: 5637594796066865157
type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime}
data:
m_Version: 0
@@ -150,21 +150,21 @@ MonoBehaviour:
m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3}
m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3}
m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3}
- rid: 2457864184453136573
- rid: 5637594796066865158
type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3}
probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3}
probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3}
- rid: 2457864184453136574
- rid: 5637594796066865159
type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
m_IncludeReferencedInScenes: 0
m_IncludeAssetsByLabel: 0
m_LabelToInclude:
- rid: 2457864184453136575
- rid: 5637594796066865160
type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
@@ -177,7 +177,7 @@ MonoBehaviour:
skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
- rid: 2457864184453136576
- rid: 5637594796066865161
type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
@@ -187,12 +187,12 @@ MonoBehaviour:
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3}
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3}
numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3}
- rid: 2457864184453136577
- rid: 5637594796066865162
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
m_ProbeVolumeDisableStreamingAssets: 0
- rid: 2457864184453136578
- rid: 5637594796066865163
type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3}

View File

@@ -19,184 +19,188 @@ namespace CHN
[Serializable]
public class CompleteTimeAlarmData
{
public CompleteInfo completeInfo;
public AlarmInfo alarmInfo;
public bool isCheck;
}
public class CompleteTimeAlarmManager : MonoBehaviour, ISingle
{
public static string filePath = "./CompleteTimeAlarmInfo.json";
public List<Machine> machines = new List<Machine>();
public List<CompleteTimeAlarmData> currentData = new List<CompleteTimeAlarmData>();
public static Dictionary<string, CompleteTimeAlarmData> saveData = new Dictionary<string, CompleteTimeAlarmData>();
public Action onNotloadData;
public Action<List<CompleteTimeAlarmData>> onUnloadData;
public Action<List<CompleteTimeAlarmData>> onLoadData;
public Action<Machine> onActiveHighLighter;
[RuntimeInitializeOnLoadMethod]
static void RunOnStart()
{
Application.quitting += SaveCompleteTimeData;
}
public override void AfterAwake()
{
LoadCompleteTimeData();
}
public override void AfterStart()
{
var building = FindSingle<Building>();
machines = building.floors.SelectMany(f => f.machines).ToList();
}
public void SetCurrentData(List<CompleteInfo> completeInfos)
{
currentData.Clear();
foreach (var completeInfo in completeInfos)
{
CompleteTimeAlarmData completeTimeAlarmData = new CompleteTimeAlarmData();
completeTimeAlarmData.completeInfo = completeInfo;
completeTimeAlarmData.isCheck = false;
currentData.Add(completeTimeAlarmData);
}
if (saveData.Count <= 0)
{
onUnloadData?.Invoke(currentData);
foreach(var data in currentData)
{
var worknm = data.completeInfo.worknm;
if (saveData.ContainsKey(worknm))
return;
saveData.Add(worknm, data);
}
}
else
{
CompleteTimeAlarmDataComparison();
}
}
private void CompleteTimeAlarmDataComparison()
{
foreach(var data in currentData)
{
var currentWorknm = data.completeInfo.worknm;
if (!saveData.ContainsKey(currentWorknm))
{
saveData.Add(currentWorknm, data);
}
else
{
var preInfo = saveData[currentWorknm].completeInfo;
var curInfo = data.completeInfo;
if (AlarmInfoCompare(preInfo, curInfo))
{
saveData[currentWorknm].completeInfo = curInfo;
saveData[currentWorknm].isCheck = false;
}
}
}
onLoadData?.Invoke(saveData.Values.ToList());
}
private bool AlarmInfoCompare(CompleteInfo preInfo, CompleteInfo curInfo)
{
if (!preInfo.progressrate.Equals(curInfo.progressrate))
{
return true;
}
else if (!preInfo.ptotm.Equals(curInfo.ptotm))
{
return true;
}
else if (!preInfo.statusnm.Equals(curInfo.statusnm))
{
return true;
}
return false;
}
//public void CheckCompleteTimeAlarm(CompleteInfo completeInfo, bool isCheck)
//{
// var worknm = completeInfo.worknm;
// saveData[worknm].isCheck = isCheck;
//}
public void LoadCompleteTimeData()
{
#if UNITY_EDITOR
filePath = "./CompleteTimeAlarmInfo.json";
#else
filePath = "./CompleteTimeAlarmInfo.json";
#endif
saveData.Clear();
if (File.Exists(filePath))
{
var json = File.ReadAllText(filePath);
var data = JsonUtility.FromJson<Data>(json);
if (data != null)
{
foreach(var d in data.completeTimeAlarmDatas)
{
saveData.Add(d.completeInfo.worknm, d);
}
}
}
}
public static void SaveCompleteTimeData()
{
Data data = new Data();
if (!File.Exists(filePath))
{
using (var fs = File.Create(filePath))
{
foreach (var saveData in saveData.Values)
{
data.completeTimeAlarmDatas.Add(saveData);
}
var json = JsonUtility.ToJson(data, true);
var bytes = Encoding.UTF8.GetBytes(json);
fs.Write(bytes, 0, bytes.Length);
fs.Flush();
}
}
else
{
File.WriteAllText(filePath, "");
foreach (var saveData in saveData.Values)
{
data.completeTimeAlarmDatas.Add(saveData);
}
var json = JsonUtility.ToJson(data, true);
File.WriteAllText(filePath, json);
}
}
public void MachineCorrespondingToAlarm(string machineCode)
{
foreach(var machine in machines)
foreach (var machine in machines)
{
if(machine.code == machineCode)
if (machine.code == machineCode)
{
onActiveHighLighter?.Invoke(machine);
}
}
}
#region
// public static string filePath = "./CompleteTimeAlarmInfo.json";
// public List<CompleteTimeAlarmData> currentData = new List<CompleteTimeAlarmData>();
// public static Dictionary<string, CompleteTimeAlarmData> saveData = new Dictionary<string, CompleteTimeAlarmData>();
// public Action onNotloadData;
// public Action<List<CompleteTimeAlarmData>> onUnloadData;
// public Action<List<CompleteTimeAlarmData>> onLoadData;
// [RuntimeInitializeOnLoadMethod]
// static void RunOnStart()
// {
// Application.quitting += SaveCompleteTimeData;
// }
// public override void AfterAwake()
// {
// LoadCompleteTimeData();
// }
// public void SetCurrentData(List<AlarmInfo> alarmInfos)
// {
// currentData.Clear();
// foreach (var alarmInfo in alarmInfos)
// {
// CompleteTimeAlarmData completeTimeAlarmData = new CompleteTimeAlarmData();
// completeTimeAlarmData.alarmInfo = alarmInfo;
// completeTimeAlarmData.isCheck = false;
// currentData.Add(completeTimeAlarmData);
// }
// if (saveData.Count <= 0)
// {
// onUnloadData?.Invoke(currentData);
// foreach(var data in currentData)
// {
// var worknm = data.alarmInfo.설비명;
// if (saveData.ContainsKey(worknm))
// return;
// saveData.Add(worknm, data);
// }
// }
// else
// {
// CompleteTimeAlarmDataComparison();
// }
// }
// private void CompleteTimeAlarmDataComparison()
// {
// foreach(var data in currentData)
// {
// var currentWorknm = data.alarmInfo.설비명;
// if (!saveData.ContainsKey(currentWorknm))
// {
// saveData.Add(currentWorknm, data);
// }
// else
// {
// var preInfo = saveData[currentWorknm].alarmInfo;
// var curInfo = data.alarmInfo;
// if (AlarmInfoCompare(preInfo, curInfo))
// {
// saveData[currentWorknm].alarmInfo = curInfo;
// saveData[currentWorknm].isCheck = false;
// }
// }
// }
// onLoadData?.Invoke(saveData.Values.ToList());
// }
// private bool AlarmInfoCompare(AlarmInfo preInfo, AlarmInfo curInfo)
// {
// if (!preInfo.호출구분.Equals(curInfo.호출구분))
// {
// return true;
// }
// else if (!preInfo.호출일.Equals(curInfo.호출일))
// {
// return true;
// }
// return false;
// }
// //public void CheckCompleteTimeAlarm(CompleteInfo completeInfo, bool isCheck)
// //{
// // var worknm = completeInfo.worknm;
// // saveData[worknm].isCheck = isCheck;
// //}
// public void LoadCompleteTimeData()
// {
//#if UNITY_EDITOR
// filePath = "./CompleteTimeAlarmInfo.json";
//#else
// filePath = "./CompleteTimeAlarmInfo.json";
//#endif
// saveData.Clear();
// if (File.Exists(filePath))
// {
// var json = File.ReadAllText(filePath);
// var data = JsonUtility.FromJson<Data>(json);
// if (data != null)
// {
// foreach(var d in data.completeTimeAlarmDatas)
// {
// saveData.Add(d.alarmInfo.설비명, d);
// }
// }
// }
// }
// public static void SaveCompleteTimeData()
// {
// Data data = new Data();
// if (!File.Exists(filePath))
// {
// using (var fs = File.Create(filePath))
// {
// foreach (var saveData in saveData.Values)
// {
// data.completeTimeAlarmDatas.Add(saveData);
// }
// var json = JsonUtility.ToJson(data, true);
// var bytes = Encoding.UTF8.GetBytes(json);
// fs.Write(bytes, 0, bytes.Length);
// fs.Flush();
// }
// }
// else
// {
// File.WriteAllText(filePath, "");
// foreach (var saveData in saveData.Values)
// {
// data.completeTimeAlarmDatas.Add(saveData);
// }
// var json = JsonUtility.ToJson(data, true);
// File.WriteAllText(filePath, json);
// }
// }
#endregion
}
}

View File

@@ -1,25 +1,35 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using WI;
using static MQTT;
public class Panel_FinalInspection : PanelBase, IProductionPanel
{
public Dictionary<int, UI_StatusContent> statusContents = new Dictionary<int, UI_StatusContent>();
private Panel_Effect effect;
private UI_StatusContent prf_statusContent;
public RectTransform Content;
public Image Image_Loading;
public Button CloseButton;
public TextMeshProUGUI CurrentDate;
public TextMeshProUGUI CurrentTime;
public int statusItemsCount;
private int currentContentIndex;
private bool isChangedData;
public float changeDataTime;
public float fadeTime;
public Action<Panel_FinalInspection> onSelected;
public Action onClose;
public Action onOpen;
public Action onClose;
public override void AfterAwake()
{
prf_statusContent = Resources.Load<UI_StatusContent>("Prefabs/UI/UI_StatusContent");
effect = FindSingle<Panel_Effect>();
CloseButton.onClick.AddListener(OnClickCloseButton);
SetDate();
@@ -44,19 +54,112 @@ public class Panel_FinalInspection : PanelBase, IProductionPanel
StopAllCoroutines();
StartCoroutine(ScaleUp());
if (statusContents.Count <= 0)
{
isChangedData = false;
return;
}
StartCoroutine(ChageStatusContent());
}
public void Close()
{
effect.DeactivePanel();
gameObject.SetActive(false);
gameObject.transform.localScale = Vector3.zero;
ResetStatusContentOrder();
isChangedData = false;
}
private void OnClickCloseButton()
{
Close();
onClose?.Invoke();
}
private IEnumerator ChageStatusContent()
{
isChangedData = true;
currentContentIndex = 0;
statusContents[currentContentIndex].gameObject.transform.SetAsFirstSibling();
currentContentIndex++;
while (true)
{
yield return new WaitForSeconds(changeDataTime);
if (currentContentIndex >= statusContents.Values.Count)
{
currentContentIndex = 0;
}
statusContents[currentContentIndex].gameObject.transform.SetAsFirstSibling();
currentContentIndex++;
}
}
private void ResetStatusContentOrder()
{
foreach (var statusContent in statusContents.Values)
{
statusContent.gameObject.transform.SetAsFirstSibling();
}
}
public void ActiveLoadingImage(bool isActive)
{
var active = isActive ? false : true;
Image_Loading.gameObject.SetActive(active);
}
public void SetProductionStatus(List<CompleteInfo> machineInfos)
{
ActiveLoadingImage(true);
var splitCompleteInfo = SplitArray(machineInfos, statusItemsCount);
SetProductionContent(splitCompleteInfo);
}
public void SetProductionContent(List<List<CompleteInfo>> splitCompleteInfo)
{
for (int i = 0; i < splitCompleteInfo.Count; i++)
{
if (!statusContents.ContainsKey(i))
{
var statusContent = Instantiate(prf_statusContent, Content);
statusContent.SetProductionStatusItem(splitCompleteInfo[i]);
statusContents.Add(i, statusContent);
}
else
{
statusContents[i].SetProductionStatusItem(splitCompleteInfo[i]);
}
}
if (!isChangedData && gameObject.activeSelf)
{
StopAllCoroutines();
StartCoroutine(ChageStatusContent());
}
}
private List<List<CompleteInfo>> SplitArray(List<CompleteInfo> machineInfos, int groupSize)
{
List<List<CompleteInfo>> result = new List<List<CompleteInfo>>();
int totalGroups = Mathf.CeilToInt(machineInfos.Count / (float)groupSize);
for (int i = 0; i < totalGroups; i++)
{
int startIndex = i * groupSize;
int endIndex = Mathf.Min(startIndex + groupSize, machineInfos.Count);
List<CompleteInfo> group = new List<CompleteInfo>();
for (int j = startIndex; j < endIndex; j++)
{
group.Add(machineInfos[j]);
}
result.Add(group);
}
return result;
}
public void SetDate()
{
CurrentDate.text = DateTime.Now.ToString("yyyy.MM.dd");

View File

@@ -5,12 +5,13 @@ using WI;
using System;
using System.Collections.Generic;
public class Panel_ThermostatControl : PanelBase
public class Panel_ThermostatControl : PanelBase, IPopupPanel
{
private Dictionary<string, string> thermostatValues = new();
public TextMeshProUGUI Title;
public TextMeshProUGUI RealValue;
public TextMeshProUGUI SettingValue;
public TMP_InputField InputField_ControlValue;
public Button Button_Control;
public Button Button_Cancel;
@@ -22,19 +23,25 @@ public class Panel_ThermostatControl : PanelBase
Button_Control.onClick.AddListener(OnClickControlButton);
Button_Cancel.onClick.AddListener(OnClickCancelButton);
}
public void Open(Thermostat thermostat)
public void SetData(Thermostat thermostat)
{
gameObject.SetActive(true);
Open();
Title.SetText($"¿ÂÀ¯±â/¿Â¼ö±â Á¦¾î {thermostat.thermostatName}");
if (thermostatValues.ContainsKey(Title.text))
{
RealValue.SetText(thermostatValues[Title.text]);
SettingValue.SetText(thermostatValues[Title.text]);
}
else
{
RealValue.SetText("");
SettingValue.SetText("0");
}
transform.SetAsLastSibling();
}
public void Open()
{
gameObject.SetActive(true);
}
public void Close()
{
@@ -54,7 +61,7 @@ public class Panel_ThermostatControl : PanelBase
thermostatValues[Title.text] = inputValue;
}
RealValue.SetText(inputValue);
SettingValue.SetText(inputValue);
float.TryParse(inputValue, out var controlValue);
onClickControlButton?.Invoke(controlValue);

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
[mqttClientSetting]
host=106.247.236.204
port=8901
topics=MES/PDV/BOARD1,MES/PDV/BOARD2
topics=MES/PDV/BOARD1,MES/PDV/BOARD2,MES/PDV/BOARD3
[controllerOption]
MoveSpeed=2