示例#1
0
    /// <summary>
    /// 清除输入框值
    /// </summary>
    /// <param name="dev"></param>
    private void ClearArchorValue(DevNode dev)
    {
        CommunicationObject service = CommunicationObject.Instance;
        Archor archor = service.GetArchorByDevId(dev.Info.Id);

        if (archor != null && !string.IsNullOrEmpty(archor.Code))
        {
            try
            {
                DevTypeDropdown.value = (int)archor.Type;
            }catch (Exception e)
            {
                DevTypeDropdown.value = 0;
            }
            DevCode.text   = archor.Code.ToString();
            XPosInput.text = archor.X.ToString();
            YPosInput.text = archor.Y.ToString();
            ZPosInput.text = archor.Z.ToString();
        }
        else
        {
            DevTypeDropdown.value = 0;
            DevCode.text          = "";
            XPosInput.text        = "";
            YPosInput.text        = "";
            ZPosInput.text        = "";
        }
        DevName.text        = dev.Info.Name;
        valueText.text      = "";
        SaveInfoResult.text = "";
    }
        public ActionResult GetArchor()
        {
            ArchorTrans recv = Activator.CreateInstance <ArchorTrans>();
            Archor      ch   = new Archor();

            try
            {
                string url = "http://localhost:41363/api/Archor/1";

                recv = TransClass.GetMethod <ArchorTrans> .GetHasDateTime(url);

                Archor ch2 = new Archor();
                ch2 = recv.data[0];
                if (ch2 != null)
                {
                    ch = ch2;
                }
            }
            catch (Exception ex)
            {
                string messgae = ex.Message;
            }

            return(View(ch));
        }
示例#3
0
 public void Open(DevNode dev)
 {
     currentDev = dev;
     ClearArchorValue(dev);
     currentArchor = null;
     InitSignObject();
     SignObject.SetActive(true);
 }
 public bool AddArchor(Archor archor)
 {
     if (archor.DevInfo != null)
     {
         archor.ParentId = archor.ParentId;
     }
     return(db.Archors.Add(archor.ToDbModel()));
 }
示例#5
0
        public ArchorSetting(Archor archor)
        {
            var dev = archor.DevInfo;

            Id       = archor.Id;
            ArchorId = archor.Id;
            Code     = archor.Code;
            Name     = archor.Name;
            var area = dev.Parent;
            var x    = dev.PosX;
            var y    = dev.PosZ;

            if (dev.Parent.IsPark()) //电厂
            {
                RelativeMode   = RelativeMode.相对园区;
                RelativeHeight = archor.Y;
                AbsoluteHeight = archor.Y;

                var park       = area;
                var leftBottom = park.InitBound.GetLeftBottomPoint();

                SetZero(leftBottom.X, leftBottom.Y);
                SetRelative((x - leftBottom.X), (y - leftBottom.Y));
                SetAbsolute(x, y);
            }
            else
            {
                var floor    = area;
                var building = floor.Parent;

                RelativeHeight = archor.Y;
                AbsoluteHeight = (archor.Y + building.GetFloorHeight(floor.Id));

                var minX = floor.InitBound.GetZeroX() + building.InitBound.GetZeroX();
                var minY = floor.InitBound.GetZeroY() + building.InitBound.GetZeroY();

                var room = GetDevRoom(floor.Children, dev);
                if (room != null)
                {
                    RelativeMode = RelativeMode.相对机房;
                    var roomX = room.InitBound.GetZeroX();
                    var roomY = room.InitBound.GetZeroY();
                    SetPath(room, floor, building);
                    SetZero(roomX, roomY);
                    SetRelative((x - roomX), (y - roomY));
                    SetAbsolute((minX + x), (minY + y));
                }
                else
                {
                    RelativeMode = RelativeMode.相对楼层;
                    SetPath(null, floor, building);
                    SetZero(0, 0);
                    SetRelative(x, y);
                    SetAbsolute((minX + x), (minY + y));
                }
            }
        }
        private void AddArchorDev(Archor archor1, Area parent)
        {
            DevInfo archor1Dev = new DevInfo()
            {
                Name = archor1.Name, Local_DevID = Guid.NewGuid().ToString(), ParentId = parent.Id, Local_TypeCode = 6345
            };

            archor1.DevInfo = archor1Dev;
            DevInfos.Add(archor1Dev);
            Archors.Add(archor1);
        }
示例#7
0
        public void AddArchorDev(Archor archor1, Area parent)
        {
            DevInfo archor1Dev = new DevInfo()
            {
                Name = archor1.Name, Local_DevID = Guid.NewGuid().ToString(), ParentId = parent.Id, Local_TypeCode = TypeCodes.Archor, PosX = (float)archor1.X, PosY = (float)archor1.Y, PosZ = (float)archor1.Z
            };

            archor1.DevInfo = archor1Dev;
            DevInfos.Add(archor1Dev);
            Archors.Add(archor1);
        }
        private void AddArchorDev(Archor archor1, PhysicalTopology parent)
        {
            DevInfo archor1Dev = new DevInfo()
            {
                Name = archor1.Name, DevID = Guid.NewGuid().ToString(), Parent = parent, TypeCode = 6345
            };

            archor1.Dev = archor1Dev;
            DevInfos.Add(archor1Dev);
            Archors.Add(archor1);
        }
示例#9
0
 /// <summary>
 /// 添加基站设备
 /// </summary>
 /// <param name="devList">设备列表</param>
 /// <param name="devBlls">数据信息</param>
 /// <param name="areaId">设备所属区域ID</param>
 private static void AddLocationDev(List <LocationDevice> devList, ArchorBll archorBll, int?areaId)
 {
     foreach (var locationDev in devList)
     {
         DevInfo devInfo = GetDevInfo(locationDev, areaId);
         DevPos  devPos  = GetDevPos(locationDev, devInfo.DevID);
         Archor  archor  = GetAnchorInfo(locationDev, devInfo.DevID);
         devInfo.Pos = devPos;
         archor.Dev  = devInfo;
         archorBll.Add(archor);
         //devBlls.Add(devInfo);
     }
 }
示例#10
0
 private string GetDevName(DevEntity dev)
 {
     if (dev.DevDetail is Archor)
     {
         Archor archor = dev.DevDetail as Archor;
         //return archor.Name+"("+archor.Code + "|" + archor.Ip+")";
         return(archor.Code);// + "|" + archor.Ip;
     }
     else
     {
         return(dev.Name);
     }
 }
    /// <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);
        }
    }
示例#12
0
    /// <summary>
    /// 保存设备信息
    /// </summary>
    private void SaveInfo()
    {
        if (!ArchorToolManage.Instance.SignSetPart.IsArchorSet)
        {
            SaveInfoResult.text = "基准点未设置。";
            return;
        }
        if (currentDev == null)
        {
            SaveInfoResult.text = "当前选中设备为空,位置计算失败。";
            return;
        }
        if (currentArchor == null)
        {
            SaveInfoResult.text = "测量值未输入";
            return;
        }
        //Todo:保存基站信息,修改DevInfo信息
        CommunicationObject service = CommunicationObject.Instance;

        if (service)
        {
            Archor archor     = service.GetArchorByDevId(currentDev.Info.Id);
            string archorName = DevName.text;
            if (!string.IsNullOrEmpty(archorName))
            {
                archor.Name = archorName;
            }
            else
            {
                archor.Name = currentDev.Info.Name;
            }
            if (DevTypeDropdown.value == 0)
            {
                archor.Type = ArchorTypes.副基站;
            }
            else
            {
                archor.Type = ArchorTypes.主基站;
            }
            archor.Code = DevCode.text;
            archor.X    = currentArchor.X;
            archor.Y    = currentArchor.Y;
            archor.Z    = currentArchor.Z;
            bool value = service.EditArchor(archor, (int)currentDev.Info.ParentId);
            Debug.Log("Edit Archor value:" + value);
            ShowSaveResult(value);
        }
    }
        // GET: Archors/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Archor archor = bll.Archors.Find(id);

            if (archor == null)
            {
                return(HttpNotFound());
            }

            return(PartialView(archor));
        }
        // GET: Archors/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Archor archor = bll.Archors.Find(id);

            if (archor == null)
            {
                return(HttpNotFound());
            }

            GetListToViewBag();
            return(PartialView(archor));
        }
        public bool EditBusAnchor(Archor archor, int ParentId)
        {
            bool bDeal = false;

            try
            {
                int nFlag = 0;
                var bac   = db.bus_anchors.FirstOrDefault(p => p.anchor_id == archor.Code);
                if (bac == null)
                {
                    bac   = new DbModel.Engine.bus_anchor();
                    nFlag = 1;
                }

                bac.anchor_id     = archor.Code;
                bac.anchor_x      = (int)(archor.X * 100);
                bac.anchor_y      = (int)(archor.Z * 100);
                bac.anchor_z      = (int)(archor.Y * 100);
                bac.anchor_type   = (int)archor.Type;
                bac.anchor_bno    = 0;
                bac.syn_anchor_id = null;
                bac.offset        = 0;
                bac.enabled       = 1;

                if (nFlag == 0)
                {
                    bDeal = db.bus_anchors.Edit(bac);
                }
                else
                {
                    bDeal = db.bus_anchors.Add(bac);
                }

                //if (!bDeal)
                //{
                //    return bDeal;
                //}

                //bDeal = EditArchor(Archor, ParentId);
            }
            catch (Exception ex)
            {
                string strError = ex.Message;
            }

            return(bDeal);
        }
        public ActionResult Edit([Bind(Include = "Id,DevInfoId,Code,Name,X,Y,Z,Type,IsAutoIp,Ip,ServerIp,ServerPort,Power,AliveTime,Enable,MapId")] Archor archor)
        {
            if (ModelState.IsValid)
            {
                var result = bll.Archors.Edit(archor);
                if (result)
                {
                    return(Json(new { success = result }));
                }
                else
                {
                    return(Json(new { success = result, errors = bll.Archors.ErrorMessage }));
                }
            }

            GetListToViewBag();
            return(View(archor));
        }
示例#17
0
 /// <summary>
 /// 获取设备信息
 /// </summary>
 /// <param name="callBack"></param>
 private void GetArchorDevInfo(Action <bool> callBack)
 {
     try
     {
         if (currentArchor != null)
         {
             if (callBack != null)
             {
                 callBack(true);
             }
             return;
         }
         ThreadManager.Run(() =>
         {
             currentArchor = CommunicationObject.Instance.GetArchorByDevId(dev.Info.Id);
         }, () =>
         {
             if (currentArchor != null)
             {
                 Title.text   = currentArchor.Name;
                 CodeIp.text  = string.Format("<color=#6DECFEFF>Code:</color>{0}  <color=#6DECFEFF>IP:</color>{1}", currentArchor.Code, currentArchor.Ip);
                 CADInfo.text = string.Format("<color=#6DECFEFF>X:</color>{0}  <color=#6DECFEFF>Y:</color>{1}  <color=#6DECFEFF>Z:</color>{2}", currentArchor.X.ToString("f2"), currentArchor.Y.ToString("f2"), currentArchor.Z.ToString("f2"));
                 if (callBack != null)
                 {
                     callBack(true);
                 }
             }
             else
             {
                 if (callBack != null)
                 {
                     callBack(false);
                 }
             }
         }, "");
     }catch (Exception e)
     {
         Debug.LogError(string.Format("BaseStationFollowUI.GetDevInfo Error:{0}", e.ToString()));
         if (callBack != null)
         {
             callBack(false);
         }
     }
 }
示例#18
0
    /// <summary>
    /// 修改位置
    /// </summary>
    private void ConfirmPos()
    {
        if (!ArchorToolManage.Instance.SignSetPart.IsArchorSet)
        {
            valueText.text = "基准点未设置。";
            return;
        }
        if (currentDev == null)
        {
            valueText.text = "当前选中设备为空,位置计算失败。";
            return;
        }
        float           x       = float.Parse(XPosInput.text);
        float           y       = float.Parse(YPosInput.text);
        float           z       = float.Parse(ZPosInput.text);
        LocationManager manager = LocationManager.Instance;

        if (manager == null)
        {
            Debug.LogError("LocationManager.Instance==null");
            return;
        }
        currentArchor = new Archor();
        Vector3 converSionUnit = manager.LocationOffsetScale;
        //根据测量值,获取相对于标记的位置
        Vector3 relativePos = new Vector3(-x / converSionUnit.x, y, -z / converSionUnit.z);

        //获取测量值,在3D中的位置
        Vector3 realPos = SignObject.transform.position + relativePos;

        currentDev.transform.position = new Vector3(realPos.x, currentDev.transform.position.y, realPos.z);

        //转换厂区CAD位置
        Vector3 FactoryPos = LocationManager.GetCadVector(realPos);

        FactoryPos.y    = y;
        valueText.text  = string.Format("CAD位置为:({0},{1},{2})", FactoryPos.x, FactoryPos.y, FactoryPos.z);
        currentArchor.X = FactoryPos.x;
        currentArchor.Y = FactoryPos.y;
        currentArchor.Z = FactoryPos.z;
        ChangeDevPos();
        RefleshGizmoPosition();
        //Debug.LogError("Archor CadPos:"+FactoryPos);
    }
示例#19
0
 /// <summary>
 /// 添加基站设备
 /// </summary>
 /// <param name="devList">设备列表</param>
 /// <param name="devBlls">数据信息</param>
 /// <param name="areaId">设备所属区域ID</param>
 private static void AddLocationDev(List <LocationDevice> devList, ArchorBll archorBll, Area area)
 {
     for (int i = 0; i < devList.Count; i++)
     {
         var     locationDev = devList[i];
         DevInfo devInfo     = GetDevInfo(locationDev, area);
         DevPos  devPos      = GetDevPos(locationDev, devInfo.Local_DevID);
         Archor  archor      = GetAnchorInfo(locationDev, devInfo.Id);
         archor.ParentId = area.Id;
         if (string.IsNullOrEmpty(archor.Code) || archor.Code.Contains("Code"))
         {
             archor.Code = "Code_" + i;
         }
         devInfo.SetPos(devPos);
         archor.DevInfo = devInfo;
         archorBll.Add(archor);
         //devBlls.Add(devInfo);
     }
 }
        public ActionResult Create([Bind(Include = "Id,Code,Name,X,Y,Z,Type,IsAutoIp,Ip,ServerIp,ServerPort,Power,AliveTime,Enable,MapId")] Archor archor)
        {
            if (ModelState.IsValid)
            {
                DevInfo dev = new DevInfo();
                dev.Local_DevID = Guid.NewGuid().ToString();
                dev.IP          = "";
                dev.KKS         = "";
                dev.Name        = archor.Name;
                dev.ModelName   = TypeNames.Archor;
                dev.Status      = 0;
                string DepID = Request["DepID"];
                if (DepID == "" || DepID == null)
                {
                    GetListToViewBag();
                    return(View(archor));
                }
                dev.ParentId = Convert.ToInt32(Request["DepID"]);
                try
                {
                    dev.Local_TypeCode = TypeCodes.Archor;
                }
                catch (Exception e)
                {
                    dev.Local_TypeCode = 0;
                }
                dev.UserName = "******";

                archor.DevInfo = dev;
                var result = bll.Archors.Add(archor);
                if (result)
                {
                    return(Json(new { success = result }));
                }
                else
                {
                    return(Json(new { success = result, errors = bll.Archors.ErrorMessage }));
                }
            }
            GetListToViewBag();
            return(View(archor));
        }
        public ArchorTrans GetArchor(int?id)
        {
            ArchorTrans send = new ArchorTrans();

            send.total = 1;
            send.msg   = "ok";

            if (id != null)
            {
                Archor archor = bllNoVirtual.Archors.Find(id);
                if (archor != null)
                {
                    List <Archor> archorList = new List <Archor>();
                    archorList.Add(archor);
                    send.data = archorList;
                }
            }

            return(send);
        }
示例#22
0
 private string GetArchorCode(DevEntity dev)
 {
     if (dev.DevDetail is Archor)
     {
         Archor archor = dev.DevDetail as Archor;
         if (archor.Code == null)
         {
             return("NULL");
         }
         if (archor.Code.Contains("Code"))
         {
             return("[C]");
         }
         return(archor.Code);
     }
     else
     {
         return(dev.Name);
     }
 }
示例#23
0
        private void BtnModifyArchor_OnClick(object sender, RoutedEventArgs e)
        {
            Archor Archor = new Archor();

            Archor.Code       = "85G8";
            Archor.Name       = "测试";
            Archor.X          = 1000;
            Archor.Y          = 1000;
            Archor.Z          = 1000;
            Archor.Type       = 0;
            Archor.IsAutoIp   = true;
            Archor.Ip         = "127.0.0.1";
            Archor.ServerIp   = "127.0.0.1";
            Archor.ServerPort = 40010;
            Archor.Power      = 100;
            Archor.AliveTime  = 100;
            Archor.Enable     = 0;
            Archor.DevInfoId  = 10;

            client.EditBusAnchor(Archor, 1);
        }
示例#24
0
        /// <summary>
        /// 获取基站信息
        /// </summary>
        /// <param name="locationDev"></param>
        /// <param name="devID"></param>
        /// <returns></returns>
        private static Archor GetAnchorInfo(LocationDevice locationDev, int DevInfoId)
        {
            //new Archor() { Code = "85A4", Name = "基站1", X = 3000, Y = 870, Z = 200, Type = 0, IsAutoIp = true, Ip = "", ServerIp = "", ServerPort = 0, Power = 0, AliveTime = 0, Enable = 1 };
            Archor archor = new Archor();

            archor.Code       = locationDev.AnchorId;
            archor.DevInfoId  = DevInfoId;
            archor.X          = TryParseFloat(locationDev.AbsolutePosX);
            archor.Y          = TryParseFloat(locationDev.AbsolutePosY);
            archor.Z          = TryParseFloat(locationDev.AbsolutePosZ);
            archor.Name       = locationDev.Name;
            archor.Type       = ArchorTypes.副基站;
            archor.IsAutoIp   = true;
            archor.Ip         = locationDev.IP;
            archor.ServerIp   = "";
            archor.ServerPort = 0;
            archor.Power      = 0;
            archor.AliveTime  = 0;
            archor.Enable     = IsStart.是;
            return(archor);
        }
示例#25
0
        /// <summary>
        /// 获取基站信息
        /// </summary>
        /// <param name="locationDev"></param>
        /// <param name="devID"></param>
        /// <returns></returns>
        private static Archor GetAnchorInfo(LocationDevice locationDev, string devID)
        {
            //new Archor() { Code = "85A4", Name = "基站1", X = 3000, Y = 870, Z = 200, Type = 0, IsAutoIp = true, Ip = "", ServerIp = "", ServerPort = 0, Power = 0, AliveTime = 0, Enable = 1 };
            Archor archor = new Archor();

            archor.Code       = locationDev.AnchorId;
            archor.DevId      = devID;
            archor.X          = TryParseFloat(locationDev.XPos);
            archor.Y          = TryParseFloat(locationDev.ZPos);
            archor.Z          = TryParseFloat(locationDev.YPos);
            archor.Name       = locationDev.Name;
            archor.Type       = 0;
            archor.IsAutoIp   = true;
            archor.Ip         = "";
            archor.ServerIp   = "";
            archor.ServerPort = 0;
            archor.Power      = 0;
            archor.AliveTime  = 0;
            archor.Enable     = 1;
            return(archor);
        }
    /// <summary>
    /// 闪烁所有基站
    /// </summary>
    public void FlashingOnArchors()
    {
        FlashingOffArchors();

        archorObjs.Clear();

        Position p = GetPosition();

        if (p == null)
        {
            return;
        }

        if (p.Archors != null)
        {
            foreach (string astr in p.Archors)
            {
                Archor a = LocationManager.Instance.GetArchorByCode(astr);
                if (a == null)
                {
                    continue;
                }
                int idT = a.DevInfoId;
                RoomFactory.Instance.GetDevByid(idT, (nodeT)
                                                =>
                {
                    if (nodeT == null)
                    {
                        return;
                    }
                    archorObjs.Add(nodeT);
                    nodeT.FlashingOn();
                });
            }
        }
    }
示例#27
0
        public AnchorCheckWindow()
        {
            InitializeComponent();

            DataGrid2 = new UDPArchorListBox();
            DataGrid2.DataGrid.SelectionChanged += DataGrid2_SelectionChanged;
            DataGrid2.DataGridMenu.AddMenu("定位", (obj) =>
            {
                Bll bll  = new Bll();
                var list = new List <int>();
                foreach (var item in DataGrid2.SelectedItems)
                {
                    var archor      = item as UDPArchor;
                    Archor dbArchor = bll.Archors.FindByIp(archor.GetClientIP());
                    if (dbArchor != null)
                    {
                        list.Add(dbArchor.Id);
                    }
                }
                var win = new AreaCanvasWindow(list.ToArray());
                win.Show();
            });
            Group2.Content = DataGrid2;
        }
        private void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            if (AppContext.ParkName == "宝钢园区")
            {
                pow = 1;
            }

            List <DevInfo> devs = null;

            worker.ReportProgress(0);
            var bll = Bll.NewBllNoRelation();

            if (IsTrackPoint)
            {
                if (areaId == 0)
                {
                    devs = bll.DevInfos.Where(i => i.Local_TypeCode == TypeCodes.TrackPoint);
                }
                else
                {
                    devs = bll.DevInfos.Where(i => i.Local_TypeCode == TypeCodes.TrackPoint && i.ParentId == areaId);
                }
                archors = new List <Archor>();
                foreach (var item in devs)
                {
                    Archor anchor = new Archor(item);
                    archors.Add(anchor);
                }
            }
            else
            {
                if (areaId == 0)
                {
                    archors = bll.Archors.ToList();
                }
                else
                {
                    archors = bll.Archors.Where(i => i.ParentId == areaId);
                }
            }

            devs = bll.DevInfos.ToList();
            var areas = bll.Areas.GetWithBoundPoints(true);

            list = new List <ArchorSetting>();
            var list2 = bll.ArchorSettings.ToList();
            var list3 = new List <ArchorSetting>();

            for (int i = 0; i < archors.Count; i++)
            {
                try
                {
                    var           archor        = archors[i];
                    ArchorSetting archorSetting = bll.ArchorSettings.GetByArchor(archor);
                    if (archorSetting == null)
                    {
                        if (CalculateAll)
                        {
                            archorSetting = new ArchorSetting(archor.GetCode(), archor.Id);
                            listAdd.Add(archorSetting);
                            archorSetting.Name = archor.Name;
                            //var dev = archor.DevInfo;//大量循环获取sql数据的话采用按需加载的方式会慢很多
                            var dev = devs.Find(j => j.Id == archor.DevInfoId); //应该采用全部事先获取并从列表中搜索的方式,具体680多个,从35s变为1s
                                                                                //var area = dev.Parent;
                            var floor    = areas.Find(j => j.Id == dev.ParentId);
                            var building = areas.Find(j => j.Id == floor.ParentId);
                            if (building.Children == null)
                            {
                                building.Children = areas.FindAll(j => j.ParentId == building.Id);
                            }
                            var x = dev.PosX;
                            var y = dev.PosZ;
                            if (floor.IsPark()) //电厂
                            {
                                archorSetting.RelativeMode   = RelativeMode.相对园区;
                                archorSetting.RelativeHeight = archor.Y;
                                archorSetting.AbsoluteHeight = archor.Y;
                                var park       = floor;
                                var leftBottom = park.InitBound.GetLeftBottomPoint();
                                archorSetting.SetZero(leftBottom.X, leftBottom.Y);
                                archorSetting.SetRelative((x - leftBottom.X), (y - leftBottom.Y));
                                archorSetting.SetAbsolute(x, y);
                            }
                            else //机房
                            {
                                //var floor = area;
                                //var building = floor.Parent;
                                archorSetting.RelativeHeight = archor.Y;
                                archorSetting.AbsoluteHeight = (archor.Y + building.GetFloorHeight(floor.Id));

                                var minX = floor.InitBound.GetZeroX() + building.InitBound.GetZeroX();
                                var minY = floor.InitBound.GetZeroY() + building.InitBound.GetZeroY();

                                archorSetting.AbsoluteX = (x + minX).ToString("F3");
                                archorSetting.AbsoluteY = (y + minY).ToString("F3");

                                var room = Bll.GetDevRoom(floor, dev);
                                if (room != null)
                                {
                                    archorSetting.RelativeMode = RelativeMode.相对机房;
                                    var roomX = room.InitBound.GetZeroX();
                                    var roomY = room.InitBound.GetZeroY();
                                    archorSetting.SetPath(room, floor, building);
                                    archorSetting.SetZero(roomX, roomY);
                                    archorSetting.SetRelative((x - roomX), (y - roomY));
                                    archorSetting.SetAbsolute((minX + x), (minY + y));
                                }
                                else
                                {
                                    archorSetting.RelativeMode = RelativeMode.相对楼层;
                                    archorSetting.SetPath(null, floor, building);
                                    archorSetting.SetZero(0, 0);
                                    archorSetting.SetRelative(x, y);
                                    archorSetting.SetAbsolute((minX + x), (minY + y));
                                }
                            }
                        }
                    }
                    else
                    {
                        bool r = archorSetting.CalAbsolute();
                        if (r == false)
                        {
                            list3.Add(archorSetting);
                        }
                        listEdit.Add(archorSetting);
                    }
                    if (archorSetting != null)
                    {
                        archorSetting.SetExtensionInfo(LocationContext.OffsetX, LocationContext.OffsetY, pow);

                        if (ShowAll)
                        {
                            //if (archorSetting.RelativeHeight != 2)//过滤掉2m的基站 未测量位置坐标的
                            list.Add(archorSetting);
                        }
                        else
                        {
                            int defaultHeight = 2;
                            if (AppContext.ParkName == "宝钢园区")
                            {
                                defaultHeight = 200;
                            }
                            if (archorSetting.RelativeHeight != defaultHeight)//过滤掉2m的基站 未测量位置坐标的
                            {
                                list.Add(archorSetting);
                            }
                        }
                    }

                    double percent = i * 100f / archors.Count;
                    worker.ReportProgress((int)percent);
                }
                catch (Exception ex)
                {
                    worker.ReportProgress(0, ex);
                }
            }
        }
 public ArchorDistance(double d, Archor a)
 {
     Distance = d;
     Archor   = a;
 }
示例#30
0
        public bool ShowInfo(Rectangle rect, int devId)
        {
            ArchorDevList archorList = ArchorHelper.ArchorList;

            TbCode.ItemsSource       = archorList.ArchorList;
            TbCode.DisplayMemberPath = "ArchorID";

            IPCode1.ItemsSource       = archorList.ArchorList;
            IPCode1.DisplayMemberPath = "ArchorIp";

            Bll bll = new Bll();

            this._dev  = bll.DevInfos.Find(devId);
            this._rect = rect;
            _archor    = bll.Archors.Find(i => i.DevInfoId == _dev.Id);
            if (_archor == null)
            {
                return(false);//不是基站的设备
            }
            _item      = new ArchorSetting(_archor.GetCode(), _archor.Id);
            _code      = _archor.Code;
            _item.Name = _archor.Name;

            var area = bll.GetAreaTree(false, _dev.ParentId);

            _item.RelativeMode = RelativeMode.相对楼层;

            x = _dev.PosX;
            z = _dev.PosZ;

            _item.SetRelative(x, z);
            _item.RelativeHeight = _dev.PosY;

            park = area;

            var minX = park.InitBound.MinX;
            var minY = park.InitBound.MinY;

            _item.SetAbsolute(x + minX, z + minY);

            LbId.Text     = _archor.Id + "";
            TbName.Text   = _archor.Name;
            TbCode.Text   = _archor.GetCode();
            IPCode1.Text  = _archor.Ip;
            TbHeight.Text = _item.RelativeHeight.ToString("F3");

            PcArchor.X = x;
            PcArchor.Y = z;


            PcArchor.IsEnabled = true;

            var setting = bll.ArchorSettings.GetByCode(_code, _archor.Id);

            if (setting != null)
            {
                //PcZero.X = setting.ZeroX.ToDouble();
                //PcZero.Y = setting.ZeroY.ToDouble();

                SetZeroPoint(setting.ZeroX.ToDouble(), setting.ZeroY.ToDouble());
                Title += " [已配置]";
            }
            else
            {
                SetZeroPoint(ArchorSettingContext.ZeroX, ArchorSettingContext.ZeroY);
                //PcZero.X = ArchorSettingContext.ZeroX;
                //PcZero.Y = ArchorSettingContext.ZeroY;
                //PcRelative.X = x - ArchorSettingContext.ZeroX;
                //PcRelative.Y = z - ArchorSettingContext.ZeroY;
            }

            PcAbsolute.X = PcZero.X + PcRelative.X;
            PcAbsolute.Y = PcZero.Y + PcRelative.Y;

            PcZero.ValueChanged     += PcZero_OnValueChanged;
            PcRelative.ValueChanged += PcRelative_OnValueChanged;

            return(true);
        }