/// <summary> /// 显示定位修改工具 /// </summary> /// <param name="dev"></param> private void ShowArchorPart(DevNode dev) { if (TypeCodeHelper.IsLocationDev(dev.Info.TypeCode.ToString())) { ArchorToolManage.Instance.Show(dev); } }
/// <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 : ""; } } }
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); } }
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); }
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; } }
/// <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(); } } } }
private void BindingDev(List <TEntity> devInfoList) { BindingDevParent(devInfoList, db.Areas.ToList().ToTModel()); foreach (var item in devInfoList) { item.TypeName = TypeCodeHelper.GetTypeName(item.TypeCode + ""); } }
/// <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); } }
/// <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)); } }
/// <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(); }
/// <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); }
/// <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); }
/// <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); } }
/// <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> 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(); } } } }
/// <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); } } } }
/// <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); } }
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; //} }
/// <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); } }
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:这里改成设备类型表中获取的设备类型信息 }
/// <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>(); } } }
/// <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); }
/// <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); } } }