/// <summary> /// 3D响应推送状态 /// </summary> /// <param name="state"></param> public void ChangeDoorState(DoorAccessState state) { CurrentDoorState = state; if (state.Abutment_CardState == "开") { OpenDoor(); } else { CloseDoor(false); } }
/// <summary> /// 设置门禁信息 /// </summary> private void SetDoorAccessInfo() { IList <DevInfo> devlist = new List <DevInfo>(); IList <Dev_DoorAccess> doorAccessList = new List <Dev_DoorAccess>(); Worker.Run(() => { LocationService service = new LocationService(); devlist = service.GetAllDevInfos(); doorAccessList = service.GetAllDoorAccessInfo(); }, () => { //MessageBox.Show("完成"); if (devlist == null || doorAccessList == null) { return; } BindingDevInfo(devlist.ToList(), doorAccessList.ToList()); DoorAccessListBox1.LoadData(doorAccessList.ToArray()); DoorAccessListBox1.AddMenu("开门", (se, arg) => { var dev = DoorAccessListBox1.CurrentDev; DoorAccessState doorAccessState = new DoorAccessState() { DoorId = dev.DoorId, Abutment_CardId = dev.Id.ToString(), Abutment_CardState = "开", Dev = dev.DevInfo }; DoorAccessHub.SendDoorAccessInfo(doorAccessState); }); DoorAccessListBox1.AddMenu("关门", (se, arg) => { var dev = DoorAccessListBox1.CurrentDev; DoorAccessState doorAccessState = new DoorAccessState() { DoorId = dev.DoorId, Abutment_CardId = dev.Id.ToString(), Abutment_CardState = "关", Dev = dev.DevInfo }; DoorAccessHub.SendDoorAccessInfo(doorAccessState); }); }); }
/// <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); } } } } }