diff --git a/Assets/Res/language/language.json b/Assets/Res/language/language.json index d9c367e..2720df4 100644 --- a/Assets/Res/language/language.json +++ b/Assets/Res/language/language.json @@ -1433,6 +1433,16 @@ "key": "100287", "zh": "该设备已绑定", "en": "This device is already linked" + }, + { + "key": "100288", + "zh": "指纹已开启", + "en": "Fingerprint is enabled" + }, + { + "key": "100289", + "zh": "如需新增或修改指纹,可按设备端屏幕提示,录入指纹", + "en": "If you have any new or modified fingerprint requirements, please follow the instructions on the device screen to enter the fingerprint." } diff --git a/Assets/Res/ui/common/单按钮提示.prefab b/Assets/Res/ui/common/单按钮提示.prefab new file mode 100644 index 0000000..bcdd293 --- /dev/null +++ b/Assets/Res/ui/common/单按钮提示.prefab @@ -0,0 +1,625 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1628669527465019229 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7071856029691567709} + - component: {fileID: 9202845661971650394} + - component: {fileID: 3190920873548207298} + - component: {fileID: 1248201578676027279} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7071856029691567709 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628669527465019229} + 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: 269136806169290716} + 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} +--- !u!222 &9202845661971650394 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628669527465019229} + m_CullTransparentMesh: 1 +--- !u!114 &3190920873548207298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628669527465019229} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.20392157, g: 0.56078434, b: 0.98039216, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Confirm +--- !u!114 &1248201578676027279 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628669527465019229} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89f1d49b50a31514787b4e268b1c73bb, type: 3} + m_Name: + m_EditorClassIdentifier: + textKey: 100106 +--- !u!1 &1792236051090932880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6715770809397732722} + - component: {fileID: 5567174151178045016} + - component: {fileID: 4029649795924197337} + - component: {fileID: 4810305385758750724} + - component: {fileID: 8836701026981932298} + m_Layer: 5 + m_Name: "\u6846" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6715770809397732722 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792236051090932880} + 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: 8191280304241920082} + - {fileID: 381961421419391428} + - {fileID: 269136806169290716} + m_Father: {fileID: 696055543828060918} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -524} + m_SizeDelta: {x: 590, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5567174151178045016 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792236051090932880} + m_CullTransparentMesh: 1 +--- !u!114 &4029649795924197337 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792236051090932880} + 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: 21300000, guid: 842300c204002d94e9ae203dcf1f8d9c, 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!114 &4810305385758750724 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792236051090932880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 30 + m_Right: 30 + m_Top: 55 + m_Bottom: 30 + m_ChildAlignment: 1 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &8836701026981932298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792236051090932880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &4130916194918958444 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 696055543828060918} + - component: {fileID: 8040655407952689925} + - component: {fileID: 5055016361213408001} + - component: {fileID: 5839719937898351776} + m_Layer: 5 + m_Name: "\u5355\u6309\u94AE\u63D0\u793A" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &696055543828060918 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4130916194918958444} + 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: 6715770809397732722} + m_Father: {fileID: 0} + 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} +--- !u!222 &8040655407952689925 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4130916194918958444} + m_CullTransparentMesh: 1 +--- !u!114 &5055016361213408001 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4130916194918958444} + 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, g: 0, b: 0, a: 0.6} + 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 &5839719937898351776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4130916194918958444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ce7f9a66c3b832343bd86c4b491d90c8, type: 3} + m_Name: + m_EditorClassIdentifier: + confirmButton: {fileID: 2090749183783791373} + cancelButton: {fileID: 0} +--- !u!1 &8351434878804813786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 269136806169290716} + - component: {fileID: 1053182184697387171} + - component: {fileID: 1199500508654548052} + - component: {fileID: 2090749183783791373} + m_Layer: 5 + m_Name: "\u786E\u8BA4" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &269136806169290716 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8351434878804813786} + 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: 7071856029691567709} + m_Father: {fileID: 6715770809397732722} + 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: 0, y: 0} + m_Pivot: {x: 1, y: 0} +--- !u!222 &1053182184697387171 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8351434878804813786} + m_CullTransparentMesh: 1 +--- !u!114 &1199500508654548052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8351434878804813786} + 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: 21300000, guid: 9ba8285e32466b442b315221e67f1b27, 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!114 &2090749183783791373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8351434878804813786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1199500508654548052} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &8472836610491391961 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 381961421419391428} + - component: {fileID: 4672404822650930682} + - component: {fileID: 2791978210847019385} + - component: {fileID: 1962274305946165533} + m_Layer: 5 + m_Name: "\u63D0\u793A" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &381961421419391428 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8472836610491391961} + 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: 6715770809397732722} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4672404822650930682 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8472836610491391961} + m_CullTransparentMesh: 1 +--- !u!114 &2791978210847019385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8472836610491391961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1.5 + m_Text: "\u5982\u9700\u65B0\u589E\u6216\u4FEE\u6539\u6307\u7EB9\uFF0C\u53EF\u6309\u8BBE\u5907\u7AEF\u5C4F\u5E55\u63D0\u793A\uFF0C\u5F55\u5165\u6307\u7EB9" +--- !u!114 &1962274305946165533 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8472836610491391961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89f1d49b50a31514787b4e268b1c73bb, type: 3} + m_Name: + m_EditorClassIdentifier: + textKey: 100289 +--- !u!1 &8523344762577489648 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8191280304241920082} + - component: {fileID: 3138494585675734589} + - component: {fileID: 7437345878654692032} + - component: {fileID: 6546256193871353219} + m_Layer: 5 + m_Name: "\u6807\u9898" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8191280304241920082 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8523344762577489648} + 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: 6715770809397732722} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3138494585675734589 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8523344762577489648} + m_CullTransparentMesh: 1 +--- !u!114 &7437345878654692032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8523344762577489648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Fingerprint is enabled +--- !u!114 &6546256193871353219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8523344762577489648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89f1d49b50a31514787b4e268b1c73bb, type: 3} + m_Name: + m_EditorClassIdentifier: + textKey: 100288 diff --git a/Assets/Res/ui/common/单按钮提示.prefab.meta b/Assets/Res/ui/common/单按钮提示.prefab.meta new file mode 100644 index 0000000..1658802 --- /dev/null +++ b/Assets/Res/ui/common/单按钮提示.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5889751526db1f74a9543acbf94fd9ad +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Res/ui/common/删除提示.prefab b/Assets/Res/ui/common/双按钮提示.prefab similarity index 99% rename from Assets/Res/ui/common/删除提示.prefab rename to Assets/Res/ui/common/双按钮提示.prefab index 7194171..425b519 100644 --- a/Assets/Res/ui/common/删除提示.prefab +++ b/Assets/Res/ui/common/双按钮提示.prefab @@ -399,7 +399,7 @@ GameObject: - component: {fileID: 6479957488366169775} - component: {fileID: 104968393464765146} m_Layer: 5 - m_Name: "\u5220\u9664\u63D0\u793A" + m_Name: "\u53CC\u6309\u94AE\u63D0\u793A" m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Res/ui/common/删除提示.prefab.meta b/Assets/Res/ui/common/双按钮提示.prefab.meta similarity index 100% rename from Assets/Res/ui/common/删除提示.prefab.meta rename to Assets/Res/ui/common/双按钮提示.prefab.meta diff --git a/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab b/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab index 8a5d17d..a66999e 100644 --- a/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab +++ b/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab @@ -6139,6 +6139,7 @@ RectTransform: - {fileID: 4490097547122601957} - {fileID: 2859089164995719961} - {fileID: 537902066735883185} + - {fileID: 1020774894406731393} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -6218,6 +6219,7 @@ MonoBehaviour: type: 3} aboutDevicePage: {fileID: 5262132869297104299, guid: 670a441669367ce488c5e5669588bd7b, type: 3} + fingerTip: {fileID: 4526559540901943579} renamePage: {fileID: 5645959591324032198, guid: be26d26f3871cd74a9948cdacf02e1be, type: 3} videoAndSoundSetting: {fileID: 2229569971690620424, guid: f9b831fc6ebe43947b737bcd71c8839f, @@ -7328,6 +7330,261 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: textKey: 100156 +--- !u!1001 &541108773294447735 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1237914662051168101} + m_Modifications: + - target: {fileID: 269136806169290716, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 269136806169290716, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 269136806169290716, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.x + value: 530 + objectReference: {fileID: 0} + - target: {fileID: 269136806169290716, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 269136806169290716, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 560 + objectReference: {fileID: 0} + - target: {fileID: 269136806169290716, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -365 + objectReference: {fileID: 0} + - target: {fileID: 381961421419391428, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 381961421419391428, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 381961421419391428, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.x + value: 530 + objectReference: {fileID: 0} + - target: {fileID: 381961421419391428, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.y + value: 84 + objectReference: {fileID: 0} + - target: {fileID: 381961421419391428, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 295 + objectReference: {fileID: 0} + - target: {fileID: 381961421419391428, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -141 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2090749183783791373, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2090749183783791373, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4526559540901943579} + - target: {fileID: 2090749183783791373, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: SetActive + objectReference: {fileID: 0} + - target: {fileID: 2090749183783791373, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UnityEngine.GameObject, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 2090749183783791373, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4130916194918958444, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_Name + value: "\u6307\u7EB9\u63D0\u793A" + objectReference: {fileID: 0} + - target: {fileID: 4130916194918958444, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6715770809397732722, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.y + value: 395 + objectReference: {fileID: 0} + - target: {fileID: 8191280304241920082, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8191280304241920082, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8191280304241920082, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.x + value: 530 + objectReference: {fileID: 0} + - target: {fileID: 8191280304241920082, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_SizeDelta.y + value: 36 + objectReference: {fileID: 0} + - target: {fileID: 8191280304241920082, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 295 + objectReference: {fileID: 0} + - target: {fileID: 8191280304241920082, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -55 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5889751526db1f74a9543acbf94fd9ad, type: 3} +--- !u!224 &1020774894406731393 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 696055543828060918, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + m_PrefabInstance: {fileID: 541108773294447735} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4526559540901943579 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4130916194918958444, guid: 5889751526db1f74a9543acbf94fd9ad, + type: 3} + m_PrefabInstance: {fileID: 541108773294447735} + m_PrefabAsset: {fileID: 0} --- !u!1001 &5824630111754697378 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Res/ui/homepage/homePage.prefab b/Assets/Res/ui/homepage/homePage.prefab index b0cac95..e501d59 100644 --- a/Assets/Res/ui/homepage/homePage.prefab +++ b/Assets/Res/ui/homepage/homePage.prefab @@ -1639,8 +1639,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: -370} - m_SizeDelta: {x: 327, y: 269} + m_AnchoredPosition: {x: 0, y: -390} + m_SizeDelta: {x: 246, y: 202} m_Pivot: {x: 0.5, y: 1} --- !u!222 &8844074217959470940 CanvasRenderer: @@ -12494,7 +12494,7 @@ RectTransform: 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: -53.5, y: -40} + m_AnchoredPosition: {x: -40, y: -40} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8379037123785794455 diff --git a/Assets/Res/ui/homepage/产品图.png b/Assets/Res/ui/homepage/产品图.png index 2337970..67da998 100644 Binary files a/Assets/Res/ui/homepage/产品图.png and b/Assets/Res/ui/homepage/产品图.png differ diff --git a/Assets/Scripts/Bluetooth/BLECommunicationManager.cs b/Assets/Scripts/Bluetooth/BLECommunicationManager.cs index 463ed68..8350c6c 100644 --- a/Assets/Scripts/Bluetooth/BLECommunicationManager.cs +++ b/Assets/Scripts/Bluetooth/BLECommunicationManager.cs @@ -2272,8 +2272,6 @@ namespace Kill.Bluetooth if (frame.Command == BLEConstants.CMD_SCHEDULE_TASK) { Debug.Log($"[SendFrame] 完整帧数据: {BitConverter.ToString(frameBytes)}"); - Debug.Log($"[SendFrame] 帧解析: Header={frameBytes[0]:X2}-{frameBytes[1]:X2}, Cmd={frameBytes[2]:X2}, RW={frameBytes[3]:X2}, Len={frameBytes[4]:X2}"); - Debug.Log($"[SendFrame] 数据字段: {BitConverter.ToString(frameBytes, 5, frameBytes[4])}"); } IsWaitingResponse = true; @@ -2665,6 +2663,77 @@ namespace Kill.Bluetooth } } + #region WiFi指令获取接口 + + /// + /// 获取完整蓝牙指令字节数组(用于WiFi发送) + /// 将BLE协议帧转换为字节数组,可直接通过TCP发送给服务器 + /// + /// 命令码 + /// 读写标识 0x00=读, 0x01=写, 0x02=通知 + /// 数据字段(可为null) + /// 完整的协议帧字节数组(包含帧头、命令、数据、CRC) + public byte[] GetCommandBytes(byte command, byte readWrite, byte[] data) + { + var frame = new BLEFrame + { + Header1 = BLEConstants.FRAME_HEADER_1, + Header2 = BLEConstants.FRAME_HEADER_2, + Command = command, + ReadWrite = readWrite, + Length = (byte)(data?.Length ?? 0), + Data = data + }; + + return frame.ToBytes(); + } + + /// + /// 获取完整蓝牙指令字节数组(简化版,默认写操作) + /// + /// 命令码 + /// 数据字段(可为null) + /// 完整的协议帧字节数组 + public byte[] GetCommandBytes(byte command, byte[] data) + { + return GetCommandBytes(command, BLEConstants.RW_WRITE, data); + } + + /// + /// 获取读取指令字节数组(简化版,读操作无数据) + /// + /// 命令码 + /// 完整的协议帧字节数组 + public byte[] GetReadCommandBytes(byte command) + { + return GetCommandBytes(command, BLEConstants.RW_READ, null); + } + + /// + /// 获取指令的十六进制字符串表示(用于调试) + /// + /// 命令码 + /// 读写标识 + /// 数据字段 + /// 十六进制字符串,如 "AA-55-23-01-04-..." + public string GetCommandHexString(byte command, byte readWrite, byte[] data) + { + byte[] bytes = GetCommandBytes(command, readWrite, data); + return BitConverter.ToString(bytes); + } + + /// + /// 从BLEFrame获取完整指令字节数组 + /// + /// 协议帧结构 + /// 完整的协议帧字节数组 + public byte[] GetFrameBytes(BLEFrame frame) + { + return frame.ToBytes(); + } + + #endregion + private void Log(string message) { Debug.Log($"[BLECommunication] {message}"); diff --git a/Assets/Scripts/Network/NetworkCtrl.cs b/Assets/Scripts/Network/NetworkCtrl.cs index 7e06bea..508c15a 100644 --- a/Assets/Scripts/Network/NetworkCtrl.cs +++ b/Assets/Scripts/Network/NetworkCtrl.cs @@ -1058,5 +1058,33 @@ namespace Kill.Network } #endregion + + #region 设备控制指令接口 + + #endregion } + + #region 设备控制接口数据模型 + + /// + /// 设备控制指令请求 + /// + [System.Serializable] + public class DeviceControlRequest + { + public string device_sn; + public string command; + } + + /// + /// 设备控制指令响应 + /// + [System.Serializable] + public class DeviceControlResponse + { + public string code; + public string message; + } + + #endregion } diff --git a/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs b/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs index 7edfc5d..45ed927 100644 --- a/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs +++ b/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs @@ -127,6 +127,7 @@ namespace Kill.UI.Pages }); }); } + public GameObject fingerTip; public void SetFingerprint() { BLECommunicationManager.Instance.StartFingerprintRecord(nowUserid, (response) => @@ -135,6 +136,7 @@ namespace Kill.UI.Pages { if (response.IsSuccess) { + fingerTip.SetActive(true); LoadingUI.Hide(); } else diff --git a/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs b/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs index 816eade..a506ba9 100644 --- a/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs +++ b/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs @@ -492,9 +492,6 @@ namespace Kill.UI.Pages { deviceCtrl?.InitWrokMode(mode); }); - - // 等待响应处理完成后再查询工作模式确认 - StartCoroutine(QueryWorkModeAfterSet()); } else { @@ -506,52 +503,34 @@ namespace Kill.UI.Pages } - - - - /// - /// 设置工作模式后查询确认(等待响应处理完成) - /// - private IEnumerator QueryWorkModeAfterSet() + public void SetWorkModeByWifi(int mode) { - // 等待一帧确保响应处理完成 - yield return null; - - // 再等待 300ms 确保设备处理完成 - yield return new WaitForSeconds(0.3f); - - Debug.Log("[HomePageCtrl] 重新查询工作模式确认..."); - BLECommunicationManager.Instance?.ReadWorkMode(); - - // 等待查询响应完成后再隐藏 Loading - StartCoroutine(HideLoadingAfterQueryWorkMode()); + SetWorkModeByWifiAsync(mode); } - - /// - /// 查询工作模式响应后隐藏 Loading - /// - private IEnumerator HideLoadingAfterQueryWorkMode() + public async Task SetWorkModeByWifiAsync(int mode) { - isWaitingForWorkModeQuery = true; - - // 等待最多 2 秒接收工作模式响应 - float timeout = 2f; - float elapsed = 0f; - - while (elapsed < timeout) + // 发送设置工作模式为消杀的指令 + var setting = new WorkModeSetting { Mode = (WorkMode)mode }; + byte[] commandBytes = BLECommunicationManager.Instance.GetCommandBytes( + BLEConstants.CMD_WORK_MODE_SETTING, + BLEConstants.RW_WRITE, + setting.ToBytes() + ); + string commandHex = BitConverter.ToString(commandBytes).Replace("-", ""); + Debug.Log(commandHex); + var requestData = new DeviceControlRequest { - // 如果标志被重置,说明收到了响应 - if (!isWaitingForWorkModeQuery) - { - Debug.Log("[HomePageCtrl] 收到工作模式查询响应,隐藏 Loading"); - break; - } - yield return new WaitForSeconds(0.05f); - elapsed += 0.05f; - } + device_sn =selectedDevice.ble_mac, + command = commandHex + }; - isWaitingForWorkModeQuery = false; - LoadingUI.Hide(); + var response = await NetworkCtrl.Instance.Post("/api/v1/device/command",requestData); + + // 处理结果 + if (response.IsSuccess) + { + ToastUI.Show(response.Data.message); + } }