Beispiel #1
0
        public void RefreshDev(DevEntity dev)
        {
            int scale = (int)CbScale.SelectedItem;

            var rect = AddDevRect(dev, scale, DevSize, ShowDevName);

            SelectDev(rect);
        }
Beispiel #2
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);
     }
 }
Beispiel #3
0
        public static Location.TModel.Location.AreaAndDev.DevInfo ToTModel(
            this DbModel.Location.AreaAndDev.DevInfo item1, bool haveParent = false)
        {
            if (item1 == null)
            {
                return(null);
            }
            var item2 = new Location.TModel.Location.AreaAndDev.DevInfo();

            item2.Id              = item1.Id;
            item2.Name            = item1.Name;
            item2.ParentId        = item1.ParentId;
            item2.Code            = item1.Code;
            item2.KKSCode         = item1.KKS;
            item2.DevID           = item1.Local_DevID;
            item2.Local_CabinetID = item1.Local_CabinetID;
            item2.TypeCode        = item1.Local_TypeCode;
            item2.Abutment_Id     = item1.Abutment_Id;
            item2.Abutment_DevID  = item1.Abutment_DevID;
            item2.Abutment_Type   = item1.Abutment_Type;
            item2.Status          = item1.Status;
            item2.RunStatus       = item1.RunStatus;
            item2.Placed          = item1.Placed;
            item2.ModelName       = item1.ModelName;
            item2.CreateTime      = item1.CreateTime;
            item2.CreateTimeStamp = item1.CreateTimeStamp;
            item2.ModifyTime      = item1.ModifyTime;
            item2.ModifyTimeStamp = item1.ModifyTimeStamp;
            item2.UserName        = item1.UserName;
            item2.Manufactor      = item1.Manufactor;
            item2.IP              = item1.IP;
            //item2.PosX = item1.PosX;
            //item2.PosY = item1.PosY;
            //item2.PosZ = item1.PosZ;
            //item2.RotationX = item1.RotationX;
            //item2.RotationY = item1.RotationY;
            //item2.RotationZ = item1.RotationZ;
            //item2.ScaleX = item1.ScaleX;
            //item2.ScaleY = item1.ScaleY;
            //item2.ScaleZ = item1.ScaleZ;
            if (haveParent)
            {
                item2.Parent = item1.Parent.ToTModel();
            }
            item2.SetPos(item1.GetPos());
            return(item2);
        }
Beispiel #4
0
        private Brush GetDevRectFillColor(DevEntity dev)
        {
            if (dev.DevDetail is Archor)
            {
                if (GetSettingFunc != null)
                {
                    ArchorSetting setting = GetSettingFunc(dev);
                    if (setting != null)
                    {
                        if (setting.RelativeHeight == 2)
                        {
                            return(Brushes.LightGreen);
                        }
                        else
                        {
                            return(Brushes.Green);
                        }
                    }
                    else
                    {
                        return(Brushes.DeepSkyBlue);
                    }
                }
                else
                {
                    return(Brushes.DeepSkyBlue);
                }

                //Archor archor = dev.DevDetail as Archor;
                //if (!string.IsNullOrEmpty(archor.Code) && !archor.Code.StartsWith("Code"))
                //{
                //    return Brushes.Green;
                //}
                //else
                //{
                //    return Brushes.DeepSkyBlue;
                //}
            }
            else
            {
                return(Brushes.CadetBlue);
            }
        }
        public static DbModel.Location.AreaAndDev.DevInfo ToDbModel(
            this Location.TModel.Location.AreaAndDev.DevInfo item1)
        {
            if (item1 == null)
            {
                return(null);
            }
            var item2 = new DbModel.Location.AreaAndDev.DevInfo();

            item2.Id              = item1.Id;
            item2.Name            = item1.Name;
            item2.ParentId        = item1.ParentId;
            item2.Code            = item1.Code;
            item2.KKS             = item1.KKSCode;
            item2.Local_DevID     = item1.DevID;
            item2.Local_CabinetID = item1.Local_CabinetID;
            item2.Local_TypeCode  = item1.TypeCode;
            item2.Abutment_Id     = item1.Abutment_Id;
            item2.Abutment_DevID  = item1.Abutment_DevID;
            item2.Abutment_Type   = item1.Abutment_Type;
            item2.Status          = item1.Status;
            item2.RunStatus       = item1.RunStatus;
            item2.Placed          = item1.Placed;
            item2.ModelName       = item1.ModelName;
            item2.CreateTime      = item1.CreateTime;
            item2.CreateTimeStamp = item1.CreateTimeStamp;
            item2.ModifyTime      = item1.ModifyTime;
            item2.ModifyTimeStamp = item1.ModifyTimeStamp;
            item2.UserName        = item1.UserName;
            item2.IP              = item1.IP;
            //item2.PosX = item1.PosX;
            //item2.PosY = item1.PosY;
            //item2.PosZ = item1.PosZ;
            //item2.RotationX = item1.RotationX;
            //item2.RotationY = item1.RotationY;
            //item2.RotationZ = item1.RotationZ;
            //item2.ScaleX = item1.ScaleX;
            //item2.ScaleY = item1.ScaleY;
            //item2.ScaleZ = item1.ScaleZ;
            item2.SetPos(item1.Pos);
            return(item2);
        }
Beispiel #6
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);
     }
 }
 private Rectangle AddDevRectEx(DevEntity dev, double scale, double devSize)
 {
     if (dev == null)
     {
         return(null);
     }
     if (dev.TypeCode == ArchorTypeCode)
     {
         if (IsShowAnchor)
         {
             return(AddDevRect(dev, scale, devSize, ShowDevName));
         }
     }
     else if (dev.TypeCode == TypeCodes.TrackPoint)
     {
         if (IsShowTrackPoint)
         {
             return(AddDevRect(dev, scale, devSize * 0.5, false));
         }
     }
     else if (dev.TypeCode == TypeCodes.Camera)
     {
         if (IsShowCamera)
         {
             return(AddDevRect(dev, scale, devSize * 0.8, false));
         }
     }
     else
     {
         if (IsShowOtherDev)
         {
             return(AddDevRect(dev, scale, devSize * 1.5, false));
         }
     }
     return(null);
 }
 public TEntity Put(TEntity item)
 {
     return(service.Put(item));
 }
 public TEntity Post(string pid, TEntity item)
 {
     return(service.Post(pid, item));
 }
Beispiel #10
0
 private string GetDevText(DevEntity dev)
 {
     return(string.Format("[{0}]({1},{2})", dev.Name, dev.Pos.PosX, dev.Pos.PosZ));
 }
Beispiel #11
0
        private Rectangle AddDevRect(DevEntity dev, double scale, double size, bool showDevName)
        {
            if (DevDict.ContainsKey(dev.Id))
            {
                DevDict[dev.Id].Remove();
            }

            AreaEntity parent = dev.Parent;

            double roomOffX = 0;
            double roomOffY = 0;

            if (DrawMode == 1)//大图模式
            {
                if (parent != null)
                {
                    if (parent.Type == AreaTypes.楼层 && parent.Parent != null)
                    {
                        roomOffX = parent.InitBound.MinX + parent.Parent.InitBound.MinX;
                        roomOffY = parent.InitBound.MinY + parent.Parent.InitBound.MinY;
                    }
                    else if (parent.Type == AreaTypes.机房 && parent.Parent != null)
                    {
                        roomOffX = parent.Parent.Parent.InitBound.MinX + parent.Parent.InitBound.MinX;
                        roomOffY = parent.Parent.Parent.InitBound.MinY + parent.Parent.InitBound.MinY;
                    }
                }
            }
            else //小图模式
            {
                if (parent != null)
                {
                    if (parent.Type == AreaTypes.楼层)
                    {
                        roomOffX = parent.InitBound.MinX;
                        roomOffY = parent.InitBound.MinY;
                    }
                    else if (parent.Type == AreaTypes.机房)
                    {
                        roomOffX = parent.Parent.InitBound.MinX;
                        roomOffY = parent.Parent.InitBound.MinY;
                    }
                }
            }

            double ax = dev.Pos.PosX + roomOffX;
            double ay = dev.Pos.PosZ + roomOffY;

            if (DrawMode == 1 && GetSettingFunc != null)//大图模式
            {
                ArchorSetting setting = GetSettingFunc(dev);
                if (setting != null)
                {
                    setting.CalAbsolute();//检测配置的数据是否正确
                    ax = setting.AbsoluteX.ToDouble();
                    ay = setting.AbsoluteY.ToDouble();
                }
            }


            double x = (ax - OffsetX) * scale - size * scale / 2;
            double y = (ay - OffsetY) * scale - size * scale / 2;

            DevShape devShape = new DevShape(Canvas1);

            if (showDevName)
            {
                if (udpArchorList == null)
                {
                    string path = AppDomain.CurrentDomain.BaseDirectory + "\\Data\\基站信息\\UDPArchorList.xml";
                    udpArchorList = XmlSerializeHelper.LoadFromFile <UDPArchorList>(path);
                }
                Label lb = new Label();
                lb.Content = GetDevName(dev);
                Canvas.SetLeft(lb, x + size * scale);
                Canvas.SetTop(lb, y);
                Canvas1.Children.Add(lb);
                lb.LayoutTransform = ScaleTransform1;

                var udpArchor = udpArchorList.Find(i => i.Id == GetArchorCode(dev));
                if (udpArchor != null)
                {
                    lb.Foreground = Brushes.Blue;
                }

                devShape.Label = lb;
            }


            //if (ViewMode == 0)
            //    y = Canvas1.Height - size * scale - y; //上下颠倒一下,不然就不是CAD上的上北下南的状况了
            Rectangle devRect = new Rectangle()
            {
                //Margin = new Thickness(x, y, 0, 0),
                Width           = size * scale,
                Height          = size * scale,
                Fill            = GetDevRectFillColor(dev),
                Stroke          = Brushes.Black,
                StrokeThickness = 1,
                Tag             = dev,
                ToolTip         = GetDevNameEx(dev)
            };

            devShape.Rect = devRect;
            devShape.Id   = dev.Id;

            devRect.ContextMenu = DevContextMenu;

            Canvas.SetLeft(devRect, x);
            Canvas.SetTop(devRect, y);

            DevDict[dev.Id]     = devShape;
            devRect.MouseDown  += DevRect_MouseDown;
            devRect.MouseEnter += DevRect_MouseEnter;
            devRect.MouseLeave += DevRect_MouseLeave;
            Canvas1.Children.Add(devRect);

            return(devRect);
        }