using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
///
/// 专变终端屏显控制
///
public class Device_SpecializedVariableAcquisitionTerminal_ScreenControl : Device_Base
{
public DeviceTrigger upBtn;
public DeviceTrigger downBtn;
public DeviceTrigger leftBtn;
public DeviceTrigger rightBtn;
public DeviceTrigger okBtn;
public DeviceTrigger backBtn;
///
/// 重启画面
///
public Transform restart;
///
/// 唤醒界面
///
public Transform wakeUp;
///
/// 主菜单界面
///
public Transform mainMenu;
///
/// 二级菜单
///
public List menu_2s;
///
/// 面板
///
public SpecializedVariableAcquisitionTerminal_Screen_Enum type= SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页;
public bool isGPRS故障;
///
/// 当前选择的主菜单项
///
public int currentChose_MainMenu_item=1;
///
/// 当前选择的二级菜单项
///
public int currenChose_SecondMenu_item=1;
protected override void OnAwake()
{
base.OnAwake();
upBtn.clickAction += () =>
{
if (triggerAction?.Invoke(upBtn.triggerName, true) == 0)
{
if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
AwakeUp();
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
//主菜单
currentChose_MainMenu_item = Mathf.Max(currentChose_MainMenu_item - 1, 1);
ChoseMainMenu(currentChose_MainMenu_item);
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息)
{
//进入7-1
menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.SetActive(true);
menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.SetActive(false);
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy)
{
//菜单选择界面
currenChose_SecondMenu_item = Mathf.Max(currenChose_SecondMenu_item - 1, 1);
Chose参数定值Menu(currenChose_SecondMenu_item);
}
}
}
};
downBtn.clickAction += () =>
{
if (triggerAction?.Invoke(downBtn.triggerName, true) == 0)
{
if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
AwakeUp();
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
//主菜单
currentChose_MainMenu_item = Mathf.Min(currentChose_MainMenu_item + 1, 8);
ChoseMainMenu(currentChose_MainMenu_item);
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息)
{
//进入7-2
menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.SetActive(false);
menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.SetActive(true);
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy)
{
//菜单选择界面
currenChose_SecondMenu_item = Mathf.Min(currenChose_SecondMenu_item + 1, 8);
Chose参数定值Menu(currenChose_SecondMenu_item);
}
}
}
};
leftBtn.clickAction += () =>
{
if (triggerAction?.Invoke(leftBtn.triggerName, true) == 0)
{
if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
AwakeUp();
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
//主菜单
currentChose_MainMenu_item = Mathf.Max(currentChose_MainMenu_item - 4, 1);
ChoseMainMenu(currentChose_MainMenu_item);
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy)
{
//菜单选择界面
currenChose_SecondMenu_item = Mathf.Max(currenChose_SecondMenu_item - 4, 1);
Chose参数定值Menu(currenChose_SecondMenu_item);
}
}
}
};
rightBtn.clickAction += () =>
{
if (triggerAction?.Invoke(rightBtn.triggerName, true) == 0)
{
if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
AwakeUp();
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
//主菜单
currentChose_MainMenu_item = Mathf.Min(currentChose_MainMenu_item + 4, 8);
ChoseMainMenu(currentChose_MainMenu_item);
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy)
{
//菜单选择界面
currenChose_SecondMenu_item = Mathf.Min(currenChose_SecondMenu_item + 4, 8);
Chose参数定值Menu(currenChose_SecondMenu_item);
}
}
}
};
okBtn.clickAction += () =>
{
if (triggerAction?.Invoke(okBtn.triggerName, true) == 0)
{
if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
AwakeUp();
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页)
{
//进入主菜单
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单;
wakeUp.gameObject.SetActive(false);
mainMenu.gameObject.SetActive(true);
currentChose_MainMenu_item = 1;
ChoseMainMenu(1);
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
//进入二级菜单
if(currentChose_MainMenu_item==2)
{
//参数定制选择界面
currenChose_SecondMenu_item = 1;
mainMenu.gameObject.SetActive(false);
menu_2s[1].gameObject.SetActive(true);
//初始化除菜单选择外全部隐藏
menu_2s[1].Find("2-menu").gameObject.SetActive(true);
menu_2s[1].Find("2-8").gameObject.SetActive(false);
Chose参数定值Menu(1);
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值;
}
else if (currentChose_MainMenu_item == 7)
{
//7-1界面
mainMenu.gameObject.SetActive(false);
menu_2s[6].gameObject.SetActive(true);
menu_2s[6].Find("7-1").gameObject.SetActive(true);
menu_2s[6].Find("7-2").gameObject.SetActive(false);
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息;
}
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
//进入参数选择子页面
if(currenChose_SecondMenu_item==8)
{
menu_2s[1].Find("2-8").gameObject.SetActive(true);
menu_2s[1].Find("2-menu").gameObject.SetActive(false);
}
}
//打分
CallScoreAction(type, triggerName);
}
};
backBtn.clickAction += () =>
{
if (triggerAction?.Invoke(backBtn.triggerName, true) == 0)
{
if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
AwakeUp();
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
if (menu_2s[1].Find("2-menu").gameObject.activeInHierarchy)
{
//退出到主菜单
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单;
mainMenu.gameObject.SetActive(true);
menu_2s[1].gameObject.SetActive(false);
currentChose_MainMenu_item = 2;
ChoseMainMenu(2);
}
else
{
//退出到参数定制菜单页
menu_2s[1].Find("2-" + currenChose_SecondMenu_item.ToString()).gameObject.SetActive(false);
menu_2s[1].Find("2-menu").gameObject.SetActive(true);
}
}
else if (type == SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息)
{
if (menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.activeInHierarchy)
{
//退出到主菜单
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单;
mainMenu.gameObject.SetActive(true);
menu_2s[6].gameObject.SetActive(false);
currentChose_MainMenu_item = 7;
ChoseMainMenu(7);
}
else if (menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.activeInHierarchy)
{
//退出到7-1
menu_2s[currentChose_MainMenu_item - 1].Find("7-1").gameObject.SetActive(true);
menu_2s[currentChose_MainMenu_item - 1].Find("7-2").gameObject.SetActive(false);
}
}
}
};
}
///
/// 唤醒
///
private void AwakeUp()
{
if (type== SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页;
restart.gameObject.SetActive(false);
wakeUp.gameObject.SetActive(true);
wakeUp.Find("信号").gameObject.SetActive(!isGPRS故障);
}
}
///
/// 选中主菜单项
///
///
private void ChoseMainMenu(int num)
{
for (int i = 1; i <= 8; i++)
{
if (i==num)
{
//选中
mainMenu.Find(i.ToString()).GetComponent().color = new Color(0, 0, 0, 1);
mainMenu.Find(i.ToString()).GetComponentInChildren().color = Color.white;
}
else
{
//未选中
mainMenu.Find(i.ToString()).GetComponent().color = new Color(0, 0, 0, 0);
mainMenu.Find(i.ToString()).GetComponentInChildren().color = Color.black;
}
}
mainMenu.Find("信号").gameObject.SetActive(!isGPRS故障);
}
///
/// 选中二级菜单项
///
///
private void Chose参数定值Menu(int num)
{
for (int i = 1; i <= 8; i++)
{
if (i == num)
{
//选中
menu_2s[1].Find("2-menu/"+i.ToString()).GetComponent().color = new Color(0, 0, 0, 1);
menu_2s[1].Find("2-menu/"+i.ToString()).GetComponentInChildren().color = Color.white;
}
else
{
//未选中
menu_2s[1].Find("2-menu/"+i.ToString()).GetComponent().color = new Color(0, 0, 0, 0);
menu_2s[1].Find("2-menu/"+i.ToString()).GetComponentInChildren().color = Color.black;
}
}
menu_2s[1].Find("2-menu/信号").gameObject.SetActive(!isGPRS故障);
}
///
/// 设置到屏显界面
///
///
public void SetState(SpecializedVariableAcquisitionTerminal_Screen_Enum type)
{
this.type= type;
if (type== SpecializedVariableAcquisitionTerminal_Screen_Enum.待机页)
{
wakeUp.gameObject.SetActive(false);
mainMenu.gameObject.SetActive(false);
menu_2s.ForEach(sec => { sec?.gameObject.SetActive(false); });
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页)
{
wakeUp.gameObject.SetActive(true);
mainMenu.gameObject.SetActive(false);
menu_2s.ForEach(sec => { sec?.gameObject.SetActive(false); });
wakeUp.Find("信号").gameObject.SetActive(!isGPRS故障);
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
wakeUp.gameObject.SetActive(false);
mainMenu.gameObject.SetActive(true);
menu_2s.ForEach(sec => { sec.gameObject.SetActive(false); });
mainMenu.Find("信号").gameObject.SetActive(!isGPRS故障);
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_终端信息)
{
wakeUp.gameObject.SetActive(false);
mainMenu.gameObject.SetActive(false);
currentChose_MainMenu_item = 6;
ChoseMainMenu(6);
//进入7-1界面
menu_2s[6].Find("7-1").gameObject.SetActive(true);
menu_2s[6].Find("7-2").gameObject.SetActive(false);
}
else if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.二级菜单_参数定值)
{
wakeUp.gameObject.SetActive(false);
mainMenu.gameObject.SetActive(false);
menu_2s[1].gameObject.SetActive(true);
currentChose_MainMenu_item = 2;
Chose参数定值Menu(1);
menu_2s[1].Find("2-menu").gameObject.SetActive(true);
menu_2s[1].Find("2-8").gameObject.SetActive(false);
}
}
///
/// 刷新故障状态
///
public void Refresh()
{
if(type== SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页)
{
wakeUp.Find("信号").gameObject.SetActive(!isGPRS故障);
}
else if(type == SpecializedVariableAcquisitionTerminal_Screen_Enum.主菜单)
{
mainMenu.Find("信号").gameObject.SetActive(!isGPRS故障);
}
}
///
/// 重启
///
public void Restart()
{
if (!isMoving)
{
Debug.Log("开始重启");
isMoving = true;
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.重启页;
restart.gameObject.SetActive(true);
wakeUp.gameObject.SetActive(false);
mainMenu.gameObject.SetActive(false);
menu_2s.ForEach(sec => { sec?.gameObject.SetActive(false); });
StartCoroutine(DoRestart());
}
}
IEnumerator DoRestart()
{
yield return new WaitForSeconds(3);
isMoving = false;
type = SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页;
SetState(SpecializedVariableAcquisitionTerminal_Screen_Enum.锁屏页);
Debug.Log("重启成功");
}
}
///
/// 专变设备终端屏显枚举
///
public enum SpecializedVariableAcquisitionTerminal_Screen_Enum
{
待机页,
锁屏页,
主菜单,
二级菜单_实时数据,
二级菜单_参数定值,
二级菜单_控制状态,
二级菜单_电能表示数,
二级菜单_中文信息,
二级菜单_购电信息,
二级菜单_终端信息,
二级菜单_测量点数据,
重启页
}