示例#1
0
        //转化StaticNode到与之对应的RawNode
        private RawTopo.RawNode SNodeToRNode(StaticNode sNode)
        {
            var rawNode = _rawTopo.NodeArray.Where(rNode => rNode.Type == sNode.NodeType &&
                                                   rNode.FrameId == sNode.FrameId &&
                                                   rNode.SlotId == sNode.SlotId &&
                                                   rNode.EndId == sNode.EndId).FirstOrDefault();

            return(rawNode);
        }
            }                                                   //对应的下载文件

            public DynamicNode(StaticNode sNode)
                : base(sNode.NodeType, sNode.Name)
            {
                SNode      = sNode;
                CNode      = null;
                Status     = NodeStatus.OffLine; //默认状态为掉线
                IsAssigned = false;
                FileName   = string.Empty;
                ComName    = string.Empty;
            }
示例#3
0
        //初始化TopoNet
        private void InitTopoNet()
        {
            int curUrlId = 0;

            _topoNet = new TopoNet <StaticNode, StaticLine>(ComputeNodeNum);

            //得到一个集合,是按照板卡为单位来分的NodeArray(PPC,ZYNQ,FPGA),且按照一定顺序
            var groups = from rNode in _rawTopo.NodeArray
                         where rNode.Type != EndType.SW && rNode.Type != EndType.VPX
                         orderby rNode.FrameId ascending, rNode.SlotId ascending
            group rNode by new { rNode.FrameId, rNode.SlotId };

            try
            {
                //分组访问把其中的rNode录入TopoNet中
                foreach (var group in groups)
                {
                    foreach (var rNode in group)
                    {
                        var sNode = new StaticNode(rNode.Type, rNode.Name, curUrlId++);
                        sNode.FrameId    = rNode.FrameId;
                        sNode.SlotId     = rNode.SlotId;
                        sNode.EndId      = rNode.EndId;
                        sNode.NodeObject = StaticTopo_GenNodeObj(sNode.NodeType, sNode.Name);
                        _topoNet.SetNodeValue(sNode.UrlId, sNode);
                    }
                }

                //把rNode的相关连接录入TopoNet中
                AddLinksToTopoNet();
            }
            catch (Exception e)
            {
                MessageBox.Show("InitTopoNet:" + e.Message);
            }
        }