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;
public BiaoJIData biaoJiData = new BiaoJIData();
///
/// 短接类型
///
///
public string ShortCircuitType()
{
switch (biaoJiData.warningType)
{
case "电流短接":
warnningType = "电流异常";
return "电能表U型环短接";
case "A相短接":
warnningType = "电流异常";
return "电能表U型环短接";
case "B相短接":
warnningType = "电流异常";
return "电能表U型环短接";
case "C相短接":
warnningType = "电流异常";
return "电能表U型环短接";
}
return "";
}
public string[] ABC()
{
switch (biaoJiData.warningType)
{
case "电流短接":
return new string[1] { "A" };
case "A相短接":
return new string[1] { "A" };
case "B相短接":
return new string[1] { "B" };
case "C相短接":
return new string[1] { "C" };
}
return null;
}
// Use this for initialization
private void Start()
{
biaoJiData = GlobalFlag.biaojiData;
//userState = GlobalFlag.biaojiData.userState;
//warnningType = GlobalFlag.biaojiData.warningType;
onSite = ShortCircuitType();
//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 = onSite;
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 = onSite;
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 (ABC() != null)
abc = ABC();
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];
}
}
}
}
}