Ejemplo n.º 1
0
 /// <summary>
 /// 删除门禁
 /// </summary>
 /// <param name="doorAccess"></param>
 public void RemoveDoorAccess(DoorAccessDevController doorAccess)
 {
     if (DoorAccessList.Contains(doorAccess))
     {
         DoorAccessList.Remove(doorAccess);
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// 添加门禁
    /// </summary>
    /// <param name="doorAccess"></param>
    public void AddDoorAccess(DoorAccessDevController doorAccess)
    {
        DoorAccessDevController dev = DoorAccessList.Find(i => i.DevId == doorAccess.DevId);

        if (dev == null)
        {
            DoorAccessList.Add(doorAccess);
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 获取门禁所有信息
    /// </summary>
    private void GetDoorAccessData(GameObject door, string doorID, int?areaId, out DoorAccessDevController controller, out Dev_DoorAccess doorAccessInfo)
    {
        DevInfo devInfo = GetDevInfo(areaId);

        controller = SetDevController(door, devInfo, areaId);
        DevPos pos = GetDevPos(devInfo.DevID, door);

        devInfo.Pos               = pos;
        doorAccessInfo            = GetDoorAccessInfo(devInfo, doorID, areaId);
        doorAccessInfo.DevInfo    = devInfo;
        controller.DoorAccessInfo = doorAccessInfo;
    }
Ejemplo n.º 4
0
    public void AddSave(List <GameObject> DoorAccessList, string doorID, int?areaId)
    {
        List <DevNode> doorList = new List <DevNode>();

        //List<Dev_DoorAccess> doorInfos = new List<Dev_DoorAccess>();
        if (IsDoorAccessAdd(DoorAccessList))
        {
            UGUIMessageBox.Show(errorMsg);
            for (int i = DoorAccessList.Count - 1; i >= 0; i--)
            {
                DestroyImmediate(DoorAccessList[i]);
            }
            return;
        }
        foreach (var door in DoorAccessList)
        {
            DoorAccessDevController controller;
            Dev_DoorAccess          doorInfo;

            GetDoorAccessData(door, doorID, areaId, out controller, out doorInfo);
            doorList.Add(controller);
            //doorInfos.Add(doorInfo);
        }
        ShowEditUI(doorList);
        CommunicationObject service = CommunicationObject.Instance;

        if (service)
        {
            //bool value = service.AddDoorAccess(doorInfos);
            foreach (var dev in doorList)
            {
                DoorAccessDevController doorDev = dev as DoorAccessDevController;
                if (doorDev)
                {
                    doorDev.DoorAccessInfo = service.AddDoorAccess(doorDev.DoorAccessInfo);
                    if (doorDev.DoorAccessInfo != null)
                    {
                        doorDev.Info = doorDev.DoorAccessInfo.DevInfo;
                    }
                }
            }
        }
    }
    /// <summary>
    /// 更换当前区域下,门的开关状态
    /// </summary>
    /// <param name="state"></param>
    private void PushDoorStateInfo(DoorAccessState state)
    {
        DoorAccessState door = DoorStateList.Find(i => i.DoorId == state.DoorId && i.Dev.Id == state.Dev.Id);

        if (door != null)
        {
            door.Abutment_CardState = state.Abutment_CardState;
        }
        else
        {
            DoorStateList.Add(state);
        }
        if (FactoryDepManager.currentDep == null)
        {
            return;
        }
        string parentId = state.Dev.ParentId.ToString();

        if (IsDepDev(FactoryDepManager.currentDep, parentId))
        {
            DevNode dev = RoomFactory.Instance.GetCreateDevById(state.Dev.DevID, int.Parse(parentId));
            if (dev != null)
            {
                DoorAccessDevController doorAccess = dev as DoorAccessDevController;
                if (doorAccess)
                {
                    DoorAccessItem doorItem = doorAccess.DoorItem;
                    if (doorItem == null)
                    {
                        Log.Error("DoorAccessManage.PushDoorStateInfo.DoorAcessItem is null:" + doorAccess.Info == null? "devinfo id is null":doorAccess.Info.Id.ToString());
                        return;
                    }
                    doorItem.ChangeDoorState(state);
                    if (!DepDoorList.Contains(doorItem))
                    {
                        DepDoorList.Add(doorItem);
                    }
                }
            }
        }
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 设置设备的Controller
    /// </summary>
    /// <param name="devModel"></param>
    /// <param name="devInfo"></param>
    /// <param name="parentID"></param>
    private DoorAccessDevController SetDevController(GameObject devModel, DevInfo devInfo, int?parentID)
    {
        ObjectModel_DoorAccess access = devModel.GetComponent <ObjectModel_DoorAccess>();
        DepNode node = RoomFactory.Instance.GetDepNodeById((int)parentID);

        devModel.transform.parent = GetDevContainer(node).transform;
        DoorAccessDevController controller = devModel.AddMissingComponent <DoorAccessDevController>();

        controller.DevId = devInfo.DevID;
        if (RoomFactory.Instance)
        {
            RoomFactory.Instance.SaveDepDevInfo(node, controller, devInfo);
        }
        if (access)
        {
            controller.DoorItem = access.DoorItem;
            access.DoorItem.AddDoorAccess(controller);
        }
        devModel.RemoveComponent <ObjectModel_DoorAccess>();
        return(controller);
    }
 /// <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);
     }
 }
    /// <summary>
    /// 显示当前区域门的状态
    /// </summary>
    /// <param name="currentDep"></param>
    private void ShowDepDoors(DepNode currentDep)
    {
        List <DoorAccessState> doorStates = DoorStateList.FindAll(dev => dev.Dev.ParentId == currentDep.NodeID);

        if (doorStates != null && doorStates.Count != 0)
        {
            foreach (var door in doorStates)
            {
                DevNode dev = RoomFactory.Instance.GetCreateDevById(door.Dev.DevID, (int)door.Dev.ParentId);
                DoorAccessDevController devController = dev as DoorAccessDevController;
                if (devController != null)
                {
                    DoorAccessItem doorItem = devController.DoorItem;
                    doorItem.ChangeDoorState(door);
                    if (!DepDoorList.Contains(doorItem))
                    {
                        DepDoorList.Add(doorItem);
                    }
                }
            }
        }
    }
 /// <summary>
 /// 删除设备信息
 /// </summary>
 /// <param name="dev"></param>
 private void RemoveDevCache(DevNode dev)
 {
     if (RoomFactory.Instance)
     {
         RoomFactory.Instance.RemoveDevInfo(dev);
     }
     if (dev is DoorAccessDevController)
     {
         DoorAccessDevController doorAccess = dev as DoorAccessDevController;
         if (doorAccess.DoorItem)
         {
             doorAccess.DoorItem.RemoveDoorAccess(doorAccess);
         }
     }
     if (CameraSceneManager.Instance)
     {
         if (CameraSceneManager.Instance.alignCamera.GetTarget() == dev.gameObject.transform)
         {
             //FactoryDepManager.currentDep.FocusOn();
             dev.FocusOff();
         }
     }
 }
Ejemplo n.º 10
0
    /// <summary>
    /// 查找另一个门禁
    /// </summary>
    /// <param name="currentDev"></param>
    /// <returns></returns>
    public DoorAccessDevController GetAnotherAccess(DoorAccessDevController currentDev)
    {
        DoorAccessDevController dev = DoorAccessList.FirstOrDefault(door => door.Info.DevID != currentDev.Info.DevID);

        return(dev);
    }