using BjData;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Utility;
//============================================================
//支持中文,文件使用UTF-8编码
//@author YangHua
//@create 20230920
//@company QianHuo
//
//@description:
//============================================================
namespace QianHuo
{
public enum BiaoJiType
{
defaultModel,
电流异常,
电压异常,
私换互感器,
移相
}
[Serializable]
public struct ErrorObjs
{
public GameObject objParent;
public GameObject[] objChildren;
}
public class BiaoJiController : MonoBehaviour
{
public BiaoJiType biaoJiType = BiaoJiType.defaultModel;
public GameObject guimenFengYing;
public GameObject biaoJiFengYing;
public GameObject luoSi;
public GameObject jiexianheFengYing;
public GameObject huganqiFengYing;
///
/// 三相_无互感器_无光伏
///
public ErrorObjs[] correctObjs;
///
/// 三相_无互感器_无光伏
///
public ErrorObjs[] errorObjs;
public ErrorObjs[] dianYaCorrectObjs;
public ErrorObjs[] dianYaErrorObjs;
public ErrorObjs currentErrorObj;
public ErrorObjs currentCorrectObj;
public string[] abc;
public string warnningType;
public string onSite;
public string userState;
public bool isGuanFu = false;
// Use this for initialization
private void Start()
{
//userState = GlobalFlag.biaojiData.userState;
//warnningType = GlobalFlag.biaojiData.warningType;
//onSite = GlobalFlag.biaojiData.onSite;
//if (userState == "正常") return;
if (guimenFengYing.GetComponent())
guimenFengYing.GetComponent()._collider.enabled = true;
//guimenFengYing.SetActive(false);
GameManager.Instance.YanDian = true;
if (isGuanFu)
{
if (warnningType.Equals("电压异常"))
{
SwitchDianYaErrorObjs();
SwitchDianYaCorrectObjs();
}
else if (warnningType.Equals("电流异常"))
{
SwitchDianLiuErrorObjs();
SwitchDianLiuCorrectObjs();
}
}
else
{
SwitchDianYaErrorObjs();
SwitchDianYaCorrectObjs();
SwitchDianLiuErrorObjs();
SwitchDianLiuCorrectObjs();
}
switch (onSite)
{
case "电能表U型环短接":
if (biaoJiFengYing.GetComponent())
luoSi.GetComponent().enabled = true;
luoSi.GetComponent().Run = true;
biaoJiFengYing.SetActive(false);
SwitchDianLiuObjs();
break;
case "接线盒U型环短接":
case "接线盒连接片短接":
case "接线盒小电阻短接":
if (jiexianheFengYing != null)
{
if (jiexianheFengYing.GetComponent())
jiexianheFengYing.GetComponent()._collider.enabled = true;
jiexianheFengYing.SetActive(false);
}
SwitchDianLiuObjs();
break;
case "互感器U型环短接":
case "互感器开路":
if (huganqiFengYing != null)
{
if (huganqiFengYing.GetComponent())
huganqiFengYing.GetComponent()._collider.enabled = true;
huganqiFengYing.SetActive(false);
}
break;
}
SwitchABC();
}
///
/// 控制电流正确项
///
public void SwitchDianLiuObjs()
{
for (int i = 0; i < correctObjs.Length; i++)
{
correctObjs[i].objParent.SetActive(true);
}
}
///
/// 三相_无互感器_无光伏 控制电流错误项
///
public void SwitchDianLiuErrorObjs()
{
string onSiteState = GlobalFlag.biaojiData.warningType;
for (int i = 0; i < errorObjs.Length; i++)
{
int index = i;
errorObjs[index].objParent.SetActive(false);
if (onSiteState.Equals(errorObjs[index].objParent.name))
{
errorObjs[index].objParent.SetActive(true);
currentErrorObj = errorObjs[index];
}
}
}
///
/// 三相_无互感器_无光伏 控制电流正确项
///
public void SwitchDianLiuCorrectObjs()
{
string onSiteState = GlobalFlag.biaojiData.warningType;
for (int i = 0; i < correctObjs.Length; i++)
{
int index = i;
correctObjs[index].objParent.SetActive(false);
if (onSiteState.Equals(correctObjs[index].objParent.name))
{
correctObjs[index].objParent.SetActive(true);
currentCorrectObj = correctObjs[index];
}
}
}
public void SwitchABC()
{
//if (!string.IsNullOrEmpty(GlobalFlag.biaojiData.selectInfo))
// abc = ToolUtility.GetInfos(GlobalFlag.biaojiData.selectInfo, '_');
for (int i = 0; i < currentErrorObj.objChildren.Length; i++)
{
currentErrorObj.objChildren[i].SetActive(false);
}
for (int i = 0; i < currentCorrectObj.objChildren.Length; i++)
{
currentCorrectObj.objChildren[i].SetActive(true);
}
for (int i = 0; i < abc.Length; i++)
{
int index = i;
if (currentErrorObj.objParent != null)
{
for (int j = 0; j < currentErrorObj.objChildren.Length; j++)
{
if (abc[index].Equals(currentErrorObj.objChildren[j].name))
{
currentErrorObj.objChildren[j].SetActive(true);
}
}
}
}
for (int i = 0; i < abc.Length; i++)
{
int index = i;
if (currentCorrectObj.objParent != null)
{
for (int j = 0; j < currentCorrectObj.objChildren.Length; j++)
{
if (abc[index].Equals(currentCorrectObj.objChildren[j].name))
{
currentCorrectObj.objChildren[j].SetActive(false);
}
}
}
}
}
public void SwitchDianYaErrorObjs()
{
string onSiteState = GlobalFlag.biaojiData.warningType;
for (int i = 0; i < dianYaCorrectObjs.Length; i++)
{
dianYaCorrectObjs[i].objParent.SetActive(false);
if (dianYaCorrectObjs[i].objParent.name.Contains(onSiteState))
{
dianYaCorrectObjs[i].objParent.SetActive(true);
currentCorrectObj = dianYaCorrectObjs[i];
}
}
}
public void SwitchDianYaCorrectObjs()
{
string onSiteState = GlobalFlag.biaojiData.warningType;
for (int i = 0; i < dianYaErrorObjs.Length; i++)
{
dianYaErrorObjs[i].objParent.SetActive(false);
if (dianYaErrorObjs[i].objParent.name.Contains(onSiteState))
{
dianYaErrorObjs[i].objParent.SetActive(true);
currentErrorObj = dianYaErrorObjs[i];
}
}
}
}
}