258 lines
8.3 KiB
C#
258 lines
8.3 KiB
C#
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;
|
||
|
||
/// <summary>
|
||
/// 三相_无互感器_无光伏
|
||
/// </summary>
|
||
public ErrorObjs[] correctObjs;
|
||
/// <summary>
|
||
/// 三相_无互感器_无光伏
|
||
/// </summary>
|
||
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<DoolsPlayer>())
|
||
guimenFengYing.GetComponent<DoolsPlayer>()._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<AmmeterSon>())
|
||
luoSi.GetComponent<AmmeterSon>().enabled = true;
|
||
luoSi.GetComponent<AmmeterSon>().Run = true;
|
||
biaoJiFengYing.SetActive(false);
|
||
SwitchDianLiuObjs();
|
||
break;
|
||
case "接线盒U型环短接":
|
||
case "接线盒连接片短接":
|
||
case "接线盒小电阻短接":
|
||
if (jiexianheFengYing != null)
|
||
{
|
||
if (jiexianheFengYing.GetComponent<DoolsPlayer>())
|
||
jiexianheFengYing.GetComponent<DoolsPlayer>()._collider.enabled = true;
|
||
jiexianheFengYing.SetActive(false);
|
||
}
|
||
SwitchDianLiuObjs();
|
||
break;
|
||
case "互感器U型环短接":
|
||
case "互感器开路":
|
||
if (huganqiFengYing != null)
|
||
{
|
||
if (huganqiFengYing.GetComponent<DoolsPlayer>())
|
||
huganqiFengYing.GetComponent<DoolsPlayer>()._collider.enabled = true;
|
||
huganqiFengYing.SetActive(false);
|
||
|
||
}
|
||
break;
|
||
}
|
||
SwitchABC();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 控制电流正确项
|
||
/// </summary>
|
||
public void SwitchDianLiuObjs()
|
||
{
|
||
for (int i = 0; i < correctObjs.Length; i++)
|
||
{
|
||
correctObjs[i].objParent.SetActive(true);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 三相_无互感器_无光伏 控制电流错误项
|
||
/// </summary>
|
||
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];
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 三相_无互感器_无光伏 控制电流正确项
|
||
/// </summary>
|
||
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];
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|