示例#1
0
    /// <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());
            }
        }
    }
示例#2
0
    /// <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);
            }
        }
    }