/// <summary>
 /// 显示定位修改工具
 /// </summary>
 /// <param name="dev"></param>
 private void ShowArchorPart(DevNode dev)
 {
     if (TypeCodeHelper.IsLocationDev(dev.Info.TypeCode.ToString()))
     {
         ArchorToolManage.Instance.Show(dev);
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// 保存其他信息
    /// </summary>
    /// <param name="devInfo"></param>
    /// <param name="service"></param>
    private void SaveDevSubInfo(List <GameObject> copyDevList, CommunicationObject service)
    {
        List <Dev_CameraInfo> cameraInfoList = new List <Dev_CameraInfo>();

        foreach (var devObjT in copyDevList)
        {
            DevNode devInfoT = devObjT.GetComponent <DevNode>();
            if (devInfoT == null)
            {
                continue;
            }
            DevInfo devInfo = devInfoT.Info;
            if (TypeCodeHelper.IsCamera(devInfo.TypeCode.ToString()))
            {
                Dev_CameraInfo cameraInfoT = new Dev_CameraInfo();
                cameraInfoT.Ip          = "127.0.0.1";
                cameraInfoT.DevInfoId   = devInfo.Id;
                cameraInfoT.UserName    = "******";
                cameraInfoT.PassWord    = "******";
                cameraInfoT.Port        = 80;
                cameraInfoT.CameraIndex = 0;
                cameraInfoT.Local_DevID = devInfo.Abutment_DevID;
                cameraInfoT.ParentId    = devInfo.ParentId;
                //CameraDevController camera = devInfoT as CameraDevController;
                //Dev_CameraInfo value = service.AddCameraInfo(cameraInfo);
                cameraInfoList.Add(cameraInfoT);
                //Debug.Log("Add cameraInfo value:" + value == null);
            }
        }
        if (cameraInfoList.Count != 0)
        {
            service.AddCameraInfo(cameraInfoList);
        }
    }
 public void Show(DevNode dev)
 {
     InitManager();
     currentDev = dev;
     SetWindowState(dev);
     ShowDeleteButton(dev);
     //Window.SetActive(true);
     if (TypeCodeHelper.IsStaticDev(dev.Info.TypeCode.ToString()))
     {
         if (!IsCopyDev)
         {
             DevNameNormal.text = dev.Info != null ? dev.Info.Name + "   " : "";
         }
         else
         {
             DevNameCopy.text = dev.Info != null ? dev.Info.Name + "   " : "";
         }
     }
     else
     {
         if (!IsCopyDev)
         {
             DevNameNormal.text = dev.Info != null ? dev.Info.Name : "";
         }
         else
         {
             DevNameCopy.text = dev.Info != null ? dev.Info.Name : "";
         }
     }
 }
Ejemplo n.º 4
0
        public List <DevInfo> GetListWithDetail(List <Archor> archors, List <Dev_CameraInfo> cameras)
        {
            var list = this.ToList();

            foreach (var dev in list)
            {
                var type = TypeCodeHelper.GetTypeName(dev.Local_TypeCode + "");
                if (type == "基站")
                {
                    dev.DevDetail = archors.FirstOrDefault(i => i.DevInfoId == dev.Id);
                }
                else if (type == "摄像头")
                {
                    dev.DevDetail = cameras.FirstOrDefault(i => i.DevInfoId == dev.Id);
                }
                else if (type == "生产设备")
                {
                    //return (int)Abutment_DevTypes.生产设备;
                }
                else if (type == "门禁")
                {
                    //return (int)Abutment_DevTypes.门禁;
                }
                else if (type == "警报设备")
                {
                    //return (int)Abutment_DevTypes.消防设备;
                }
                else if (type == "其他设备")
                {
                    //return (int)Abutment_DevTypes.无;
                }
            }
            return(list);
        }
    /// <summary>
    /// 设置区域下,边界告警设备的显示和隐藏
    /// </summary>
    /// <param name="dep"></param>
    /// <param name="isEnable"></param>
    private void SetDepBorderDevEnable(DepNode dep, bool isEnable)
    {
        if (dep == null)
        {
            return;
        }
        List <DevNode> dev = RoomFactory.Instance.GetDepDevs(dep);

        if (dev == null || dev.Count == 0)
        {
            return;
        }
        List <DevNode> borderDevList = dev.FindAll(item => TypeCodeHelper.IsBorderAlarmDev(item.Info.TypeCode.ToString()));

        if (borderDevList == null || borderDevList.Count == 0)
        {
            return;
        }
        foreach (var item in borderDevList)
        {
            if (item.isAlarm)
            {
                continue;
            }
            BorderDevController borderDev = item as BorderDevController;
            borderDev.SetRendererEnable(isEnable);
        }
    }
Ejemplo n.º 6
0
        private static int GetDeviceType(DevInfo devinfo)
        {
            var type = TypeCodeHelper.GetTypeName(devinfo.Local_TypeCode + "");

            if (type == "基站")
            {
                return((int)Abutment_DevTypes.定位基站);
            }
            else if (type == "摄像头")
            {
                return((int)Abutment_DevTypes.摄像头);
            }
            else if (type == "生产设备")
            {
                return((int)Abutment_DevTypes.生产设备);
            }
            else if (type == "门禁")
            {
                return((int)Abutment_DevTypes.门禁);
            }
            else if (type == "警报设备")
            {
                return((int)Abutment_DevTypes.消防设备);
            }
            else if (type == "其他设备")
            {
                return((int)Abutment_DevTypes.无);
            }
            return(0);
        }
Ejemplo n.º 7
0
 private Color unInteractableColor = new Color(109f / 255f, 236f / 255f, 254f / 255);//不可输入文本框颜色
 /// <summary>
 /// 设置角度和位置,是否可以输入
 /// </summary>
 /// <param name="devTemp"></param>
 private void SetAnglePosInputState(DevNode devTemp)
 {
     if (devTemp.Info != null && TypeCodeHelper.IsStaticDev(devTemp.Info.TypeCode.ToString()))
     {
         XPosField.interactable         = false;
         XPosField.textComponent.color  = unInteractableColor;
         YPosField.interactable         = false;
         YPosField.textComponent.color  = unInteractableColor;
         ZPosField.interactable         = false;
         ZPosField.textComponent.color  = unInteractableColor;
         AngleField.interactable        = false;
         AngleField.textComponent.color = unInteractableColor;
     }
     else
     {
         XPosField.interactable         = true;
         XPosField.textComponent.color  = Color.white;
         YPosField.interactable         = true;
         YPosField.textComponent.color  = Color.white;
         ZPosField.interactable         = true;
         ZPosField.textComponent.color  = Color.white;
         AngleField.interactable        = true;
         AngleField.textComponent.color = Color.white;
     }
 }
Ejemplo n.º 8
0
    /// <summary>
    /// 设置批量复制按钮
    /// </summary>
    /// <param name="devList"></param>
    private void SetBatchCopyState(List <DevNode> devList)
    {
        SurroundEditMenu_BatchCopy copyPart = SurroundEditMenu_BatchCopy.Instacne;

        if (copyPart)
        {
            if (devList.Count > 1)
            {
                copyPart.CloseUI();
            }
            else if (devList.Count == 1)
            {
                DevNode dev = devList[0];
                if (dev is RoomDevController || dev is DepDevController || !TypeCodeHelper.IsLocationDev(dev.Info.TypeCode.ToString()))
                {
                    if (ObjectAddListManage.IsEditMode)
                    {
                        copyPart.Open(dev);
                    }
                }
                else
                {
                    copyPart.CloseUI();
                }
            }
        }
    }
Ejemplo n.º 9
0
 private void BindingDev(List <TEntity> devInfoList)
 {
     BindingDevParent(devInfoList, db.Areas.ToList().ToTModel());
     foreach (var item in devInfoList)
     {
         item.TypeName = TypeCodeHelper.GetTypeName(item.TypeCode + "");
     }
 }
Ejemplo n.º 10
0
 /// <summary>
 /// 区域告警/消警
 /// </summary>
 private void AlarmMonitorRange(bool isAlarm, DeviceAlarm alarmInfo, DepNode parentNode)
 {
     if (parentNode == null)
     {
         return;
     }
     if (!TypeCodeHelper.IsFireFightDevType(alarmInfo.DevTypeCode.ToString()))
     {
         return;
     }
     if (isAlarm)
     {
         if ((parentNode is RoomController || parentNode is FloorController) && parentNode.monitorRangeObject != null)
         {
             if (!FireAreas.Contains(parentNode.NodeID))
             {
                 FireAreas.Add(parentNode.NodeID);
                 FollowTargetManage.Instance.CreateFireDevFollowUI(parentNode.monitorRangeObject.gameObject, parentNode, alarmInfo);
             }
             parentNode.monitorRangeObject.AlarmOn();
         }
     }
     else
     {
         if ((parentNode is RoomController || parentNode is FloorController))
         {
             parentNode.monitorRangeObject.AlarmOff();
             RemoveAlarmDevFollowUI(parentNode);
             if (FireAreas.Contains(parentNode.NodeID))
             {
                 FireAreas.Remove(parentNode.NodeID);
             }
             #region TestPart
             //List<DevNode> roomDevs = RoomFactory.Instance.GetDepDevs(parentNode);
             //if (roomDevs == null || roomDevs.Count == 0) return;
             //bool isOtherDevAlarm = false;
             //for (int i = 0; i < roomDevs.Count; i++)
             //{
             //    if (roomDevs[i].Info == null) continue;
             //    if (roomDevs[i].isAlarm && roomDevs[i].Info.Id != dev.Id)
             //    {
             //        isOtherDevAlarm = true;
             //        break;
             //    }
             //}
             ////区域下没有告警设备,取消告警
             //if (!isOtherDevAlarm && parentNode.monitorRangeObject != null)
             //{
             //    parentNode.monitorRangeObject.AlarmOff();
             //    RemoveAlarmDevFollowUI(parentNode);
             //    if (!FireAreas.Contains(parentNode.NodeID)) FireAreas.Remove(parentNode.NodeID);
             //}
             #endregion
         }
     }
 }
 /// <summary>
 /// 显示设备编辑部分
 /// </summary>
 /// <param name="dev"></param>
 private void ShowEditPart(DevNode dev)
 {
     if (TypeCodeHelper.IsBorderAlarmDev(dev.Info.TypeCode.ToString()))
     {
         EditPart.Close();
         MonitorRangePart.SetDeviceInfo(dev);
     }
     else
     {
         MonitorRangePart.Close();
         EditPart.SetDeviceInfo(dev);
     }
 }
    /// <summary>
    /// 保存其他信息
    /// </summary>
    /// <param name="devInfo"></param>
    /// <param name="service"></param>
    private void SaveDevSubInfo(DevNode devNode, CommunicationObject service)
    {
        DevInfo devInfo = devNode.Info;

        if (devInfo == null)
        {
            return;
        }
        if (TypeCodeHelper.IsLocationDev(devInfo.TypeCode.ToString()))
        {
            Archor archor = new Archor();
            archor.Code       = "";
            archor.DevInfoId  = devInfo.Id;
            archor.ParentId   = (int)devInfo.ParentId;
            archor.X          = 0;
            archor.Y          = 0;
            archor.Z          = 0;
            archor.Name       = devInfo.Name;
            archor.Type       = ArchorTypes.副基站;
            archor.IsAutoIp   = true;
            archor.Ip         = "";
            archor.ServerIp   = "";
            archor.ServerPort = 0;
            archor.Power      = 0;
            archor.AliveTime  = 0;
            archor.Enable     = IsStart.是;
            //archor.DevInfo = devInfo;
            bool value = service.AddArchor(archor);
            Debug.Log("Add archor value:" + value);
        }
        else if (TypeCodeHelper.IsCamera(devInfo.TypeCode.ToString()))
        {
            Dev_CameraInfo cameraInfo = new Dev_CameraInfo();
            cameraInfo.Ip          = "";
            cameraInfo.DevInfoId   = devInfo.Id;
            cameraInfo.UserName    = "";
            cameraInfo.PassWord    = "";
            cameraInfo.Port        = 0;
            cameraInfo.CameraIndex = 0;
            cameraInfo.Local_DevID = devInfo.Abutment_DevID;
            cameraInfo.ParentId    = devInfo.ParentId;
            CameraDevController camera = devNode as CameraDevController;
            //camera.SetCameraInfo(cameraInfo);
            Dev_CameraInfo value = service.AddCameraInfo(cameraInfo);
            if (value != null)
            {
                camera.SetCameraInfo(value);
            }
            Debug.Log("Add cameraInfo value:" + value == null);
        }
    }
Ejemplo n.º 13
0
 /// <summary>
 /// 初始化房间内设备
 /// </summary>
 /// <param name="room"></param>
 /// <param name="info"></param>
 /// <returns></returns>
 private DevNode InitRoomDevParent(GameObject copyModel, DepNode dep, GameObject devContainer, DevInfo info)
 {
     copyModel.transform.parent = devContainer.transform;
     if (TypeCodeHelper.IsCamera(info.TypeCode.ToString()))
     {
         CameraDevController roomDev = copyModel.AddMissingComponent <CameraDevController>();
         return(InitDevInfo(roomDev, info, dep));
     }
     else
     {
         RoomDevController roomDev = copyModel.AddMissingComponent <RoomDevController>();
         return(InitDevInfo(roomDev, info, dep));
     }
 }
Ejemplo n.º 14
0
    /// <summary>
    /// 设置设备信息
    /// </summary>
    /// <param name="devList"></param>
    public void SetDevInfo(List <DevNode> devList)
    {
        Window.SetActive(true);
        ClearDevList();
        int normalDev = 0;
        int cameraDev = 0;
        int doorDev   = 0;
        int borderDev = 0;
        int fireDev   = 0;

        foreach (DevNode dev in devList)
        {
            if (dev != null && dev.Info != null)
            {
                string typeCode = dev.Info.TypeCode.ToString();
                if (TypeCodeHelper.IsCamera(typeCode))
                {
                    cameraDev++;
                    cameraDevTemp.Add(dev.gameObject);
                }
                else if (TypeCodeHelper.IsDoorAccess(typeCode))
                {
                    doorDev++;
                    doorDevTemp.Add(dev.gameObject);
                }
                else if (TypeCodeHelper.IsBorderAlarmDev(typeCode))
                {
                    borderDev++;
                    borderDevTemp.Add(dev.gameObject);
                }
                else if (TypeCodeHelper.IsAlarmDev(typeCode))
                {
                    fireDev++;
                    fireDevTemp.Add(dev.gameObject);
                }
                else
                {
                    normalDev++;
                    normalDevTemp.Add(dev.gameObject);
                }
            }
        }
        SetSelections(normalDev, cameraDev, doorDev, borderDev, fireDev);
        NormalDevText.text  = normalDev.ToString();
        CameraDevText.text  = cameraDev.ToString();
        DoorAccessText.text = doorDev.ToString();
        BorderDevText.text  = borderDev.ToString();
        FireAlarmText.text  = fireDev.ToString();
    }
Ejemplo n.º 15
0
        /// <summary>
        /// 获取告警信息
        /// </summary>
        /// <param name="dev"></param>
        /// <returns></returns>
        private string GetAlarmMsg(DevInfo dev)
        {
            string msg      = "设备告警";
            string typecode = dev.TypeCode.ToString();

            if (TypeCodeHelper.IsBorderAlarmDev(typecode))
            {
                msg = string.Format("边界告警 : {0} 检测到非法越界.", dev.Name);
            }
            else if (TypeCodeHelper.IsAlarmDev(typecode))
            {
                msg = string.Format("消防告警 : {0} 消防装置被触发.", dev.Name);
            }
            return(msg);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 保存通用设备
        /// </summary>
        private void SaveNormalDev(List <Location.TModel.Location.AreaAndDev.DevInfo> devInfoList, LocationService service)
        {
            DevInfoBackupList backUpList = new DevInfoBackupList();

            backUpList.DevList = new List <DevInfoBackup>();
            foreach (var item in devInfoList)
            {
                string typeCodeT = item.TypeCode.ToString();
                if (TypeCodeHelper.IsLocationDev(typeCodeT) || TypeCodeHelper.IsCamera(typeCodeT) || TypeCodeHelper.IsDoorAccess(item.ModelName) || TypeCodeHelper.IsFireFightDevType(typeCodeT))
                {
                    continue;
                }
                DevInfoBackup dev = new DevInfoBackup();
                dev.DevId          = item.DevID;
                dev.KKSCode        = item.KKSCode;
                dev.Abutment_DevID = item.Abutment_DevID;
                dev.ModelName      = item.ModelName;
                dev.Name           = item.Name;
                dev.ParentName     = GetAreaPath((int)item.ParentId, service);
                dev.TypeCode       = item.TypeCode.ToString();

                DevPos pos = item.Pos;

                dev.RotationX = pos.RotationX.ToString();
                dev.RotationY = pos.RotationY.ToString();
                dev.RotationZ = pos.RotationZ.ToString();

                dev.XPos = pos.PosX.ToString();
                dev.YPos = pos.PosY.ToString();
                dev.ZPos = pos.PosZ.ToString();

                dev.ScaleX = pos.ScaleX.ToString();
                dev.ScaleY = pos.ScaleY.ToString();
                dev.ScaleZ = pos.ScaleZ.ToString();

                backUpList.DevList.Add(dev);
            }
            List <DevInfoBackup> deleteDevs = AddDeleteDev(devInfoList);

            if (devInfoList != null && devInfoList.Count != 0)
            {
                backUpList.DevList.AddRange(deleteDevs);
            }
            //string dirctory = GetSaveDevDirectory();
            //string initFile = dirctory+"DevInfoBackup.xml";
            //XmlSerializeHelper.Save(backUpList, initFile, Encoding.UTF8);
            SaveNormalDevXml("DevInfoBackup.xml", backUpList);
        }
Ejemplo n.º 17
0
    /// <summary>
    /// 设置窗口显示
    /// </summary>
    /// <param name="dev"></param>
    private void SetWindowState(DevNode dev)
    {
        bool isLoctaionDev = (dev.Info != null && TypeCodeHelper.IsLocationDev(dev.Info.TypeCode.ToString()));

        if ((dev is RoomDevController || dev is DepDevController) && !isLoctaionDev)
        {
            IsCopyDev = true;
            CopyPart.SetActive(true);
            NormalPart.SetActive(false);
        }
        else
        {
            IsCopyDev = false;
            CopyPart.SetActive(false);
            NormalPart.SetActive(true);
        }
    }
Ejemplo n.º 18
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());
            }
        }
    }
Ejemplo n.º 19
0
    /// <summary>
    /// 区域告警/消警
    /// </summary>
    private void AlarmMonitorRange(bool isAlarm)
    {
        if (currentDev == null || currentDev.ParentDepNode == null)
        {
            return;
        }
        if (!TypeCodeHelper.IsAlarmDev(currentDev.Info.TypeCode.ToString()))
        {
            return;
        }
        DepNode dep = currentDev.ParentDepNode;

        if (isAlarm)
        {
            if ((dep is RoomController || dep is FloorController) && dep.monitorRangeObject != null)
            {
                dep.monitorRangeObject.AlarmOn();
            }
        }
        else
        {
            if ((dep is RoomController || dep is FloorController))
            {
                List <DevNode> roomDevs = RoomFactory.Instance.GetDepDevs(dep);
                if (roomDevs == null || roomDevs.Count == 0)
                {
                    return;
                }
                bool isOtherDevAlarm = false;
                for (int i = 0; i < roomDevs.Count; i++)
                {
                    if (roomDevs[i].isAlarm && roomDevs[i] != currentDev)
                    {
                        isOtherDevAlarm = true;
                        break;
                    }
                }
                //区域下没有告警设备,取消告警
                if (!isOtherDevAlarm && dep.monitorRangeObject != null)
                {
                    dep.monitorRangeObject.AlarmOff();
                }
            }
        }
    }
Ejemplo n.º 20
0
    /// <summary>
    /// 服务端推送告警信息
    /// </summary>
    private void PushAlarmInfo(DeviceAlarm alarmInfo)
    {
        var logTag = "DevAlarmManage.PushAlarmInfo";

        Log.Info(logTag);
        //if (AlarmDevsId.Contains(alarmInfo.DevId))
        //{
        //    Debug.Log("Alarm is already exist.");
        //    return;
        //}
        //AlarmDevsId.Add(alarmInfo.DevId);
        if (AlarmInfoList.Contains(alarmInfo))
        {
            Debug.Log("Alarm is already exist.");
            return;
        }
        AlarmInfoList.Add(alarmInfo);

        string parentId           = alarmInfo.AreaId.ToString();
        bool   isDepDev           = IsDepDev(FactoryDepManager.currentDep, parentId);
        bool   isFireFightDevType = TypeCodeHelper.IsFireFightDevType(alarmInfo.DevTypeCode.ToString());

        Log.Info(logTag, string.Format("isDepDev:{0},isFireFightDevType:{1}", isDepDev, isFireFightDevType));
        if (isDepDev)
        {
            DevNode dev = RoomFactory.Instance.GetCreateDevById(alarmInfo.DevId.ToString(), int.Parse(parentId));
            if (dev == null && !isFireFightDevType)
            {
                Debug.LogError("Dev not find:" + alarmInfo.DevId);
                return;
            }
            AlarmDev(dev, alarmInfo);
        }
        else
        {
            if (isFireFightDevType)
            {
                int areaId = (int)alarmInfo.AreaId;
                if (!FireAreas.Contains(areaId))
                {
                    FireAreas.Add(areaId);
                }
            }
        }
    }
Ejemplo n.º 21
0
        /// <summary>
        /// 通过文件导入设备信息
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="devBll"></param>
        /// <returns></returns>
        public static bool ImportDevInfoFromFile(string filePath, Bll bll)
        {
            if (!File.Exists(filePath) || bll == null)
            {
                Log.Error("文件不存在:" + filePath);
                return(false);
            }
            var initInfo = XmlSerializeHelper.LoadFromFile <DevInfoBackupList>(filePath);

            if (initInfo == null || initInfo.DevList == null || initInfo.DevList.Count == 0)
            {
                return(false);
            }
            var areas = bll.Areas.ToList();

            //var devs = bll.DevInfos.Where(i => i.Local_TypeCode != TypeCodes.Archor);
            //bll.DevInfos.RemoveList(devs);//先清空所有设备
            foreach (var devInfo in initInfo.DevList)
            {
                if (devInfo.TypeCode == TypeCodes.Archor + "" || TypeCodeHelper.IsFireFightDevType(devInfo.TypeCode))
                {
                    continue;
                }
                if (devInfo.TypeCode == DeleteTypeCode)
                {
                    //RemoveDeleteDev(devInfo, bll.DevInfos);
                }
                else
                {
                    int?parentID = GetAreaIdByPath(devInfo.ParentName, areas);
                    if (parentID != null)
                    {
                        devInfo.ParentId = (int)parentID;
                        bool r = AddDevInfo(devInfo, bll.DevInfos);
                        if (r == false)
                        {
                            Log.Info("ImportDevInfoFromFile Error:" + devInfo.Name);
                        }
                    }
                }
            }
            return(true);
        }
    /// <summary>
    /// 保存信息
    /// </summary>
    private void SaveInfo()
    {
        Debug.Log("SaveInfo:" + CurrentDev.Info.Name);
        CheckInputValue();
        DeviceEditUIManager manager = DeviceEditUIManager.Instacne;

        if (CurrentDev != null)
        {
            CurrentDev.Info.Name    = NameInput.text;
            CurrentDev.Info.KKSCode = IDField.text;
            string typeCode = CurrentDev.Info.TypeCode.ToString();
            DevPos posInfo  = null;
            if (!TypeCodeHelper.IsStaticDev(typeCode))
            {
                ChangeDevPosAngle();
                bool    isLocation = !(CurrentDev.ParentDepNode == FactoryDepManager.Instance);
                Vector3 cadPos     = LocationManager.UnityToCadPos(TryParsePos(), isLocation);
                posInfo = CurrentDev.Info.Pos;
                if (posInfo != null)
                {
                    posInfo.PosX      = cadPos.x;
                    posInfo.PosY      = cadPos.y;
                    posInfo.PosZ      = cadPos.z;
                    posInfo.RotationY = TryParseFloat(AngleInput.text);
                    posInfo.ScaleX    = TryParseFloat(ScaleXInput.text);
                    posInfo.ScaleY    = TryParseFloat(ScaleYInput.text);
                    posInfo.ScaleZ    = TryParseFloat(ScaleZInput.text);
                }
                manager.RefleshGizmoPosition();
            }
            manager.ChangeDevFollowInfo(CurrentDev);
            CommunicationObject service = CommunicationObject.Instance;
            if (service)
            {
                service.ModifyDevInfo(CurrentDev.Info);
                if (!TypeCodeHelper.IsStaticDev(typeCode))
                {
                    service.ModifyDevPos(posInfo);
                }
            }
        }
    }
    private DeviceAlarmFollowUI CreateAlarmFollowUI(DevNode alarmDev, DepNode dep, DeviceAlarm alarmInfo)
    {
        try
        {
            string depNodeId = dep is RoomController?dep.ParentNode.NodeID.ToString() : dep.NodeID.ToString();

            string     groupName = string.Format("{0}{1}", AlarmDevUIName, depNodeId);
            string     typeCode  = alarmDev.Info.TypeCode.ToString();
            GameObject followObj = null;
            if (TypeCodeHelper.IsLocationDev(typeCode))
            {
                followObj = CreateFollowTarget(ArchorAlarmUI, alarmDev.gameObject, groupName);
            }
            else if (TypeCodeHelper.IsCamera(typeCode))
            {
                followObj = CreateFollowTarget(CameraAlarmUI, alarmDev.gameObject, groupName);
            }
            else if (TypeCodeHelper.IsDoorAccess(typeCode))
            {
                followObj = CreateFollowTarget(DoorAccessAlarmUI, alarmDev.gameObject, groupName);
            }
            else
            {
                followObj = CreateFollowTarget(BorderDevUIPrefab, alarmDev.gameObject, groupName);
            }
            if (followObj == null)
            {
                return(null);
            }
            DeviceAlarmFollowUI followUI = followObj.GetComponent <DeviceAlarmFollowUI>();
            if (followUI != null)
            {
                followUI.InitInfo(alarmInfo);
            }
            return(followUI);
        }
        catch (Exception ex)
        {
            Log.Error("FollowTargetManage.CreateAlarmDevFollowUI", ex.ToString());
            return(null);
        }
    }
Ejemplo n.º 24
0
 public static Dictionary <string, string> GetTypeCode(string typeName)
 {
     return(TypeCodeHelper.TryGetCodeByType(typeName));
     //if (typeName == "基站")
     //{
     //    return TypeCodes.Archor;
     //}
     //else if (typeName == "摄像头")
     //{
     //    return 20180825;
     //}
     //else if (typeName == "门禁")
     //{
     //    return TypeCodes.Door;
     //}
     //else
     //{
     //    return 0;
     //}
 }
Ejemplo n.º 25
0
    /// <summary>
    /// 检测输入框的值
    /// </summary>
    private void CheckInputValue()
    {
        if (TypeCodeHelper.IsStaticDev(CurrentDev.Info.TypeCode.ToString()))
        {
            return;
        }
        DevPos  devPos    = CurrentDev.Info.Pos;
        Vector3 cadPos    = new Vector3(devPos.PosX, devPos.PosY, devPos.PosZ);
        bool    isRoomDev = CurrentDev.IsLocal();
        Vector3 pos       = LocationManager.CadToUnityPos(cadPos, isRoomDev);

        if (string.IsNullOrEmpty(NameField.text))
        {
            NameField.text = CurrentDev.Info.Name;
        }
        CheckEmptyField(XPosField, pos.x);
        CheckEmptyField(YPosField, pos.y);
        CheckEmptyField(ZPosField, pos.z);
        CheckEmptyField(AngleField, devPos.RotationY);
    }
 /// <summary>
 /// 删除子设备(门禁、基站等)
 /// </summary>
 /// <param name="dev"></param>
 /// <returns></returns>
 private bool ClearSubDev(DevNode dev)
 {
     if (dev as DoorAccessDevController)
     {
         DoorAccessDevController controller     = dev as DoorAccessDevController;
         List <Dev_DoorAccess>   doorAccessList = new List <Dev_DoorAccess>();
         doorAccessList.Add(controller.DoorAccessInfo);
         bool value = CommunicationObject.Instance.DeleteDoorAccess(doorAccessList);
         return(true);
     }
     else if (TypeCodeHelper.IsLocationDev(dev.Info.TypeCode.ToString()))
     {
         bool value = CommunicationObject.Instance.DeleteArchor(dev.Info.Id);
         //print("DeleteArchor:"+value);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 27
0
 public static string GetTypeName(int code)
 {
     return(TypeCodeHelper.GetTypeName(code.ToString()));
     //if (code == TypeCodes.Archor)
     //{
     //    return "基站";
     //}
     //else if (code == 20180825)
     //{
     //    return "摄像头";
     //}
     //else if (code == TypeCodes.Door)
     //{
     //    return "门禁";
     //}
     //else
     //{
     //    return "其他设备";
     //}
     //todo:这里改成设备类型表中获取的设备类型信息
 }
Ejemplo n.º 28
0
 /// <summary>
 /// 开始拖拽模型,改变场景环境
 /// </summary>
 private void ChangeEnvironmentOnBegin()
 {
     if (TypeCodeHelper.IsDoorAccess(ModelName))
     {
         Debug.Log("Add Door Access...");
         DepNode currentDep = FactoryDepManager.currentDep;
         if (currentDep == null)
         {
             return;
         }
         if (currentDep.Doors != null)
         {
             IsEnvironmentChange = true;
             currentDep.Doors.SetDoorsRenderEnable(true);
             Rigidbody DoorRig = model.AddMissingComponent <Rigidbody>();
             DoorRig.useGravity  = false;
             DoorRig.isKinematic = true;
             model.AddMissingComponent <ObjectModel_DoorAccess>();
         }
     }
 }
Ejemplo n.º 29
0
        /// <summary>
        /// 保存通用设备
        /// </summary>
        private void SaveNormalDev(List <Location.TModel.Location.AreaAndDev.DevInfo> devInfoList, LocationService service)
        {
            DevInfoBackupList backUpList = new DevInfoBackupList();

            backUpList.DevList = new List <DevInfoBackup>();
            foreach (var item in devInfoList)
            {
                string typeCodeT = item.TypeCode.ToString();
                if (TypeCodeHelper.IsLocationDev(typeCodeT) || TypeCodeHelper.IsCamera(typeCodeT) || TypeCodeHelper.IsDoorAccess(item.ModelName))
                {
                    continue;
                }
                DevInfoBackup dev = new DevInfoBackup();
                dev.DevId      = item.DevID;
                dev.KKSCode    = item.KKSCode;
                dev.ModelName  = item.ModelName;
                dev.Name       = item.Name;
                dev.ParentName = GetAreaPath((int)item.ParentId, service);
                dev.TypeCode   = item.TypeCode.ToString();

                DevPos pos = item.Pos;

                dev.RotationX = pos.RotationX.ToString();
                dev.RotationY = pos.RotationY.ToString();
                dev.RotationZ = pos.RotationZ.ToString();

                dev.XPos = pos.PosX.ToString();
                dev.YPos = pos.PosY.ToString();
                dev.ZPos = pos.PosZ.ToString();

                dev.ScaleX = pos.ScaleX.ToString();
                dev.ScaleY = pos.ScaleY.ToString();
                dev.ScaleZ = pos.ScaleZ.ToString();

                backUpList.DevList.Add(dev);
            }
            string initFile = AppDomain.CurrentDomain.BaseDirectory + "Data\\设备信息\\DevInfoBackup.xml";

            XmlSerializeHelper.Save(backUpList, initFile, Encoding.UTF8);
        }
Ejemplo n.º 30
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);
            }
        }
    }