/// <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)); }
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())); }
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); }
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); }
/// <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); } }
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); } }
/// <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)); }
/// <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); } } }
/// <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); }
/// <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); }
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); } }
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); }
/// <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); }
/// <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(); }); } } }
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; }
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); }