//转化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; }
//初始化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); } }