/// <summary> /// 告警恢复 /// </summary> /// <param name="alarmInfo"></param> private void RemoveAlarmInfo(DeviceAlarm alarmInfo) { //if (AlarmDevsId.Contains(alarmInfo.DevId)) AlarmDevsId.Remove(alarmInfo.DevId); //else //{ // Debug.Log("CancelAlarm Failed,Dev is null.DevId:" + alarmInfo.DevId); // return; //} DeviceAlarm alarmInfoTemp = AlarmInfoList.Find(dev => dev.DevId == alarmInfo.DevId); if (alarmInfoTemp == null) { return; } AlarmInfoList.Remove(alarmInfoTemp); //恢复正在告警的设备 if (IsDepDev(FactoryDepManager.currentDep, alarmInfo.AreaId.ToString())) { try { if (TypeCodeHelper.IsFireFightDevType(alarmInfo.DevTypeCode.ToString())) { DepNode area = RoomFactory.Instance.GetDepNodeById((int)alarmInfo.AreaId); if (area != null) { AlarmMonitorRange(false, alarmInfo, area); } } else { DevAlarmInfo dev = AlarmDevList.Find(i => i.AlarmInfo.DevId == alarmInfo.DevId); if (dev == null) { return; } dev.AlarmOff(true); AlarmDevList.Remove(dev); DestroyImmediate(dev); } } catch (Exception e) { Debug.Log(e.ToString()); } } }
/// <summary> /// 显示设备告警 /// </summary> /// <param name="dev"></param> /// <param name="alarmInfo"></param> private void AlarmDev(DevNode dev, DeviceAlarm alarmInfo) { var logTag = "DevAlarmManage.AlarmDev"; Log.Info(logTag); if (TypeCodeHelper.IsFireFightDevType(alarmInfo.DevTypeCode.ToString())) { DepNode area = RoomFactory.Instance.GetDepNodeById((int)alarmInfo.AreaId); if (area != null) { AlarmMonitorRange(true, alarmInfo, area); } } else { if (dev == null || dev.gameObject == null) { return; } DevAlarmInfo info = dev.gameObject.GetComponent <DevAlarmInfo>(); if (info == null) { info = dev.gameObject.AddMissingComponent <DevAlarmInfo>(); } if (!AlarmDevList.Contains(info)) { AlarmDevList.Add(info); } //Debug.LogError("增加告警信息:"+alarmInfo.Message); info.InitAlarmInfo(alarmInfo, dev); //设置告警内容 info.AlarmOn(); //高亮显示 if (FollowTargetManage.Instance) //告警跟随UI信息 { FollowTargetManage.Instance.SetAlarmFollowUI(dev, alarmInfo); } } }