Ejemplo n.º 1
0
    public void SetColor(int x, int y, int z)
    {
        if (y == 1)
        {
            UpPlane.SetActive(true);
        }
        else if (y == -1)
        {
            DownPlane.SetActive(true);
        }

        if (z == 1)
        {
            LeftPlane.SetActive(true);
        }
        else if (z == -1)
        {
            RightPlane.SetActive(true);
        }

        if (x == 1)
        {
            BackPlane.SetActive(true);
        }
        else if (x == -1)
        {
            FrontPlane.SetActive(true);
        }
    }
Ejemplo n.º 2
0
        //添加一个背板的描述到_rawTopo里面
        private void AddBackPlane(BackPlane bp, int frameId, ref int curUrlId)
        {
            //添加节点(槽位,包含虚拟槽位)
            for (int i = 0; i < bp.VirtualSlotsNum; i++)
            {
                RawTopo.RawNode bpNode = new RawTopo.RawNode(EndType.VPX, null, curUrlId++);
                bpNode.FrameId = frameId;
                bpNode.SlotId  = i;
                _rawTopo.SetNodeValue(bpNode.UrlId, bpNode);
            }

            //加入link
            foreach (var links in bp.LinksArray)
            {
                foreach (var link in links)
                {
                    var subLink = new RawTopo.RawSubLink(link.FirstEndPostion, link.SecondEndPostion, link.LanesNum);
                    int urlId1  = _rawTopo.NodeArray
                                  .Where(node => ((node != null) && (node.SlotId == link.FirstEndId) && (node.Type == EndType.VPX) && (node.FrameId == frameId)))
                                  .Select(node => node.UrlId)
                                  .FirstOrDefault();
                    int urlId2 = _rawTopo.NodeArray
                                 .Where(node => ((node != null) && (node.SlotId == link.SecondEndId) && (node.Type == EndType.VPX) && (node.FrameId == frameId)))
                                 .Select(node => node.UrlId)
                                 .FirstOrDefault();
                    _rawTopo.AddSubLink(link.LinkType, urlId1, urlId2, subLink);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 背板初始化界面初始化一个背板类
        /// </summary>
        /// <param name="bp"></param>
        private void ReFreshBackPlane(BackPlane bp)
        {
            bp.Name = _typeTB.Text;
            bp.Type = _typeTB.Text;
            List <BackPlaneLink> linksList;     //单个槽位对应的Links列表

            for (int i = 0; i < _slotNum; i++)
            {
                //TODO:行信息有效性检查
                //获取一个槽位的信息
                var dgv = _dgvsOpt.DataGridViweList[i];
                linksList = new List <BackPlaneLink>();

                foreach (DataGridViewRow row in dgv.Rows)
                {
                    //获取一条连接的信息
                    string   linkTypeString = row.Cells[_dgvColumnTitle_linkType].Value as string;
                    LinkType type           = (LinkType)Enum.Parse(typeof(LinkType), linkTypeString);

                    int end1Slot = i;
                    int end1Pos  = int.Parse(row.Cells[_dgvColumnTitle_end1PosNum].Value as string);
                    int end2Slot = int.Parse(row.Cells[_dgvColumnTitle_end2SlotNum].Value as string);
                    int end2Pos  = int.Parse(row.Cells[_dgvColumnTitle_end2PosNum].Value as string);

                    linksList.Add(new BackPlaneLink(end1Slot, end1Pos, end2Slot, end2Pos, type));
                }
                bp.LinksArray[i] = linksList;
            }
        }
Ejemplo n.º 4
0
        private void _addBtn_Click(object sender, EventArgs e)
        {
            BackPlane bp = ModelFactory <BackPlane> .CreateByName(_bpTypeCB.Text);

            for (int i = 0; i < bp.SlotsNum; i++)
            {
                int index = dataGridView1.Rows.Add();
                dataGridView1.Rows[index].Cells[0].Value = i.ToString();
                dataGridView1.Rows[index].Cells[1].Value = "无";
            }
        }
Ejemplo n.º 5
0
        //页面确定按钮按下事件响应
        private void yesBtn_Click(object sender, EventArgs e)
        {
            if (false == CompleteJudgment())
            {
                return;
            }
            BackPlane bp = new BackPlane(_slotNum);

            ReFreshBackPlane(bp);
            bp.SaveXmlByName();
            this.DialogResult = DialogResult.Yes;
        }
Ejemplo n.º 6
0
        /*组件修改*/
        private void ContextMSModify_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode = _eqTreeView.SelectedNode;
            string   oldNodeName  = selectedNode.Text;

            switch (selectedNode.Parent.Text)
            {
            case "PPCs":
                //通过读取XML文件初始化PPC,然后用一个PPC实例初始化PPCInitForm
                PPC ppc = ModelFactory <PPC> .CreateByName(selectedNode.Text);

                PPCInitForm ppcInitForm = new PPCInitForm(ppc);
                ppcInitForm.ShowDialog();

                if (ppcInitForm.DialogResult == DialogResult.Yes)
                {
                    if (ppcInitForm.GetObjectName() != oldNodeName)
                    {    //改了名字的话,要删除老文件
                        selectedNode.Text = ppcInitForm.GetObjectName();
                        var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetPPCPath(), oldNodeName);
                        File.Delete(filePath);
                    }
                }
                ppcInitForm.Dispose();
                break;

            case "FPGAs":
                FPGA fpga = ModelFactory <FPGA> .CreateByName(selectedNode.Text);

                FPGAInitForm fpgaInitForm = new FPGAInitForm(fpga);
                fpgaInitForm.ShowDialog();

                if (fpgaInitForm.DialogResult == DialogResult.Yes)
                {
                    if (fpgaInitForm.GetObjectName() != oldNodeName)
                    {
                        selectedNode.Text = fpgaInitForm.GetObjectName();
                        var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetFPGAPath(), oldNodeName);
                        File.Delete(filePath);
                    }
                }
                fpgaInitForm.Dispose();
                break;

            case "ZYNQs":
                ZYNQ zynq = ModelFactory <ZYNQ> .CreateByName(selectedNode.Text);

                ZYNQInitForm zynqInitForm = new ZYNQInitForm(zynq);
                zynqInitForm.ShowDialog();

                if (zynqInitForm.DialogResult == DialogResult.Yes)
                {
                    if (zynqInitForm.GetObjectName() != oldNodeName)
                    {
                        selectedNode.Text = zynqInitForm.GetObjectName();
                        var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetZYNQPath(), oldNodeName);
                        File.Delete(filePath);
                    }
                }
                zynqInitForm.Dispose();
                break;

            case "板卡库":
                Board board = ModelFactory <Board> .CreateByName(selectedNode.Text);

                BoardInitForm boardInitForm = new BoardInitForm(board);
                boardInitForm.ShowDialog();

                if (boardInitForm.DialogResult == DialogResult.Yes)
                {
                    if (boardInitForm.GetObjectName() != oldNodeName)
                    {
                        selectedNode.Text = boardInitForm.GetObjectName();
                        var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetBoardPath(), oldNodeName);
                        File.Delete(filePath);
                    }
                }
                boardInitForm.Dispose();
                break;

            case "背板库":
                BackPlane bp = ModelFactory <BackPlane> .CreateByName(selectedNode.Text);

                BackPlaneInitForm bpInitForm = new BackPlaneInitForm(bp);
                bpInitForm.ShowDialog();

                if (bpInitForm.DialogResult == DialogResult.Yes)
                {
                    if (bpInitForm.GetObjectName() != oldNodeName)
                    {
                        selectedNode.Text = bpInitForm.GetObjectName();
                        var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetBackPlanePath(), oldNodeName);
                        File.Delete(filePath);
                    }
                }
                bpInitForm.Dispose();
                break;

            case "机箱库":
                Models.Container  ctnView     = ModelFactory <Models.Container> .CreateByName(selectedNode.Text);;
                ContainerInitForm ctnInitForm = new ContainerInitForm(ctnView);
                ctnInitForm.ShowDialog();

                if (ctnInitForm.DialogResult == DialogResult.Yes)
                {
                    if (ctnInitForm.GetObjectName() != oldNodeName)
                    {
                        selectedNode.Text = ctnInitForm.GetObjectName();
                        var filePath = string.Format(@"{0}\{1}.xml", XMLManager.PathManager.GetContainerPath(), oldNodeName);
                        File.Delete(filePath);
                    }
                }
                ctnInitForm.Dispose();
                break;

            default:
                break;
            }
            //无论有无文件内容更改都把TreeView的内容读入对应xml文件内
            XMLManager.HandleTreeView.ReadTreeViewToXML(_eqTreeView, XMLManager.PathManager.GetEqLibFilePath());
        }
Ejemplo n.º 7
0
        public const int ViewMargin = 100;//边距100

        public ShowViewPanel(TreeNode node)
        {
            //初始化成员变量
            this.DoubleBuffered = true;//重绘双缓冲开启,防止界面闪烁
            base.AutoScroll     = true;
            _treeNode           = node;
            NodeInfo info = (NodeInfo)node.Tag;

            FormType    = info._formType;
            ZoomFactor  = 1;
            _viewOffset = new PointF();

            switch (FormType)
            {
            case Princeple.FormType.PPC:
                PPC ppc = ModelFactory <PPC> .CreateByName(node.Text);

                ShowView = new PPCViewModel(ppc);
                break;

            case Princeple.FormType.FPGA:
                FPGA fpga = ModelFactory <FPGA> .CreateByName(node.Text);

                ShowView = new FPGAViewModel(fpga);
                break;

            case Princeple.FormType.ZYNQ:
                ZYNQ zynq = ModelFactory <ZYNQ> .CreateByName(node.Text);

                ShowView = new ZYNQViewModel(zynq);
                break;

            case Princeple.FormType.BOARD:
                Board board = ModelFactory <Board> .CreateByName(node.Text);

                ShowView = new BoardViewModel(board);
                break;

            case Princeple.FormType.BACKPLANE:
                BackPlane bp = ModelFactory <BackPlane> .CreateByName(node.Text);

                ShowView = new BackPlaneViewModel(bp);
                break;

            case Princeple.FormType.CONTIANER:
                Container ctn = ModelFactory <Container> .CreateByName(node.Text);

                ShowView = new ContainerViewModel(ctn);
                break;

            case Princeple.FormType.COMPONENT:
                Component cmp = ModelFactory <Component> .CreateByName(node.Text);

                ShowView = new ComponentViewModel(cmp);
                break;

            case Princeple.FormType.SYSTEM:
                SystemStru sys = ModelFactory <SystemStru> .CreateByName(node.Text);

                ShowView = new SystemStruViewModel(sys);
                break;

            case Princeple.FormType.TOPO:
                var        sysName = node.Text.Substring(node.Text.IndexOf(':') + 1);
                SystemStru sys2    = ModelFactory <SystemStru> .CreateByName(sysName);

                ShowView = new StaticTopo(sys2);
                break;

            case Princeple.FormType.APP:
                var        sysNode  = node.Parent.Nodes[0];
                var        sysSName = sysNode.Text.Substring(sysNode.Text.IndexOf(':') + 1);
                SystemStru sys3     = ModelFactory <SystemStru> .CreateByName(sysSName);

                var sysStatic = new StaticTopo(sys3);

                ShowView = new DynamicTopo(sysStatic);
                ((DynamicTopo)ShowView).Components = (GetNodeCmps(node));
                break;

            case Princeple.FormType.STATUS:
                ShowView = new Status();
                break;

            default:    //无对应界面类型退出
                return;
            }
            SetViewSize();

            //绑定界面点击事件的处理
            if (ShowView as IDrawerChoosed != null)
            {
                this.MouseClick += new MouseEventHandler(((IDrawerChoosed)ShowView).MouseEventHandler);
            }
            if (ShowView as IDrawerNotify != null)
            {
                info.NodeInfoChanged += new Action <TargetNode>(((IDrawerNotify)ShowView).OnNodeInfoChanged);
            }
            ShowView.RedrawRequst += new Action(OnShowViewRedrawRequst);
            this.Scroll           += new ScrollEventHandler(ShowViewPanel_Scroll);
            this.MouseWheel       += new MouseEventHandler(ShowViewPanel_MouseWheel);
        }
Ejemplo n.º 8
0
 public BackPlaneViewModel(BackPlane bp)
 {
     _bp = bp;
 }
Ejemplo n.º 9
0
 }                                                                           //当前视图被选中的图元
 public BackPlaneViewModel(BackPlane bp, Rectangle rect)
 {
     _bp = bp;
     Init(rect);
 }
Ejemplo n.º 10
0
 /// <summary>
 /// 通过一个BackPlane实例来初始化BackPlaneInitForm,用于修改背板的时候
 /// </summary>
 /// <param name="bp"></param>
 public BackPlaneInitForm(BackPlane bp)
 {
     //TODO
 }