/// <summary> /// 初始化成员变量_topoNet(TopoNet<DynamicNode, DynamicLine>) /// </summary> private void InitTopoNet() { _topoNet = new TopoNet <DynamicNode, DynamicLine>(_sTopo.ComputeNodeNum); //初始化节点 foreach (StaticNode sNode in _sTopo._topoNet.NodeArray) { DynamicNode dNode = new DynamicNode(sNode); //默认除了机箱0都设置为掉线 if (sNode.FrameId == 0) { dNode.Status = NodeStatus.OnLine; } _topoNet.SetNodeValue(sNode.UrlId, dNode); } //连接初始化 InitTopoLink(_sTopo._topoNet.EthLinks); InitTopoLink(_sTopo._topoNet.RioLinks); InitTopoLink(_sTopo._topoNet.GTXLinks.Cast <StaticLine>()); InitTopoLink(_sTopo._topoNet.LVDSLinks.Cast <StaticLine>()); }
//初始化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); } }