Silverlight制作网络拓扑图(21)
来源:互联网 发布:oracle数据库设计规范 编辑:程序博客网 时间:2024/06/11 03:02
Silverlight制作网络拓扑图
1. 概述
最近项目中要做一个网络拓扑图程序监控网络设备,流量等。网上找了很多资料,也有很多例子。原先想用Flex实现,网上也有一些开源的Birdeye可用,要花时间精力去研究,研究明白了项目基本也就结束了,花费成本精力太大.总的感觉是,网上的东西要么复杂难用,要么功能简单达不到要求。于是决定自己用Silverlight做。
2. 实现效果
先贴个效果图再一步步讲解实现过程。
功能:
1) 能够根据配置动态生成拓扑图。
2) 类似雷达扫描效果。10秒钟搜索一圈。设置5分钟刷新一次网络状态。
3) 网络断开时连线变红,设备图标变成断开状态图标。
3. 设计及技术实现要点
3.1. 网络设备控件制作
思路:动态设置用户控件背景,实现断开状态下动态切换图标。
拓扑图中用到的图标:
注意图标为:32X32背景透明的png文件。这样显示在silverlight中才不会有背景阴影。
Ø 图标表示
通过枚举NodeType区分正常图标,网络断开图标
///<summary>
///区分正常图标,网络断开图标
///</summary>
public enum NodeType
{
NomalBlack,
ErrorRed,
None
}
图标代码对应表:
类别
图标代码
对应图标
网络正常图标
r
BR.png
n
BN.png
b
BB.png
a
BA.png
k
BK.png
c
BC.png
p
BP.png
网络断开图标
R
BRS.png
N
BNS.png
B
BBS.png
A
BAS.png
K
BKS.png
C
BCS.png
P
BPS.png
注:小写字母代表网络正常图标,大写字母代表网络断开图标,其他不在上表中的图标备用。
Ø 前台设置背景代码:
后台控制图标切换代码:
private void setType(string BK)
{
_type = getChessType(MyName);//设置类型
switch(BK)
{
//正常
case"r":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BR.png",UriKind.Relative)) };
break;
case"n"://马
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BN.png",UriKind.Relative)) };
break;
case"b":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BB.png",UriKind.Relative)) };
break;
case"a":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BA.png",UriKind.Relative)) };
break;
case"k":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BK.png",UriKind.Relative)) };
break;
case"c":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BC.png",UriKind.Relative)) };
break;
case"p":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BP.png",UriKind.Relative)) };
break;
//不正常
case"R":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BRS.png",UriKind.Relative)) };
break;
case"N":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BNS.png",UriKind.Relative)) };
break;
case"B":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BBS.png",UriKind.Relative)) };
break;
case"A":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BAS.png",UriKind.Relative)) };
break;
case"K":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BKS.png",UriKind.Relative)) };
break;
case"C":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BCS.png",UriKind.Relative)) };
break;
case"P":
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/BPS.png",UriKind.Relative)) };
break;
case"O"://无
this.LayoutRoot.Background=newImageBrush(){ ImageSource =newBitmapImage(newUri("/SLAppTopMap;component/Images/Nodes/Router.png",UriKind.Relative)) };
break;
default:
break;
}
}
3.2. 主界面布局
3.2.1. 整体布局
整体布局是9X10的grid网格布局。
前台关键代码:
<Grid x:Name="LayoutRoot" ShowGridLines="False" Height="500" Width="450">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
</Grid>
代码说明:
(1)9行,10列布局,高度宽度均为50。
(2)Grid整体高10*50=500,宽9*50=450
也可后台实现代码:
int stepCount = 50;
public void SetGridRowCol()
{
for(int x = 0; x < 9; x++)
{
ColumnDefinitioncd1 =newColumnDefinition();
cd1.Width = new GridLength(stepCount);
LayoutRoot.ColumnDefinitions.Add(cd1);
}
for(int y = 0; y < 10; y++)
{
RowDefinitionrd1 =newRowDefinition();
rd1.Height = new GridLength(stepCount);
LayoutRoot.RowDefinitions.Add(rd1);
}
}
3.2.2. 渐变效果实现
Grid渐变背景实现代码:
<Grid.Background>
<RadialGradientBrush>
<GradientStop Color="#FF4166FF" Offset="0.965" />
<GradientStop Color="#FF0027FF" Offset="0.634" />
<GradientStop Color="#FFFBFE03" Offset="0" />
<GradientStop Color="#FF41F702" Offset="0.116" />
<GradientStop Color="#FFEEFF23" Offset="0.814" />
</RadialGradientBrush>
</Grid.Background>
3.2.3. 雷达扫描动画效果实现
Ø 雷达指针前台代码:
<Canvas Margin="225250 0 0" Name="layRoot" Canvas.ZIndex="450" >
<Line X1="0" Y1="0" X2="252" Y2="0" StrokeThickness="1" RenderTransformOrigin="0.0,0.0" Stroke="#ffffffff" Fill="#ffffffff"></Line>
<Rectangle x:Name="rectangle" Height="60" Width="250" RenderTransformOrigin="0.0,0.0">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<CompositeTransform CenterY="0.5" CenterX="0.5" Rotation="39.2"/>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#8Dffffff"/>
<GradientStop Color="#00ffffff" Offset="0.483"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Canvas>
Ø 设置让雷达围绕中心点扫描360度,后台代码:
void AddCanvasTransform()
{
#region 为Canvas添加一个二维 x-y 坐标系内围绕指定点顺时针旋转对象
RotateTransformrTransform =newRotateTransform();
//设置旋转的初始角度为360度
rTransform.Angle = 360;
//设置旋转对象的名称属性为rTrans,让下面的DoubleAnimation使用
rTransform.SetValue(NameProperty, "rTrans");
//将此旋转对象给Canvas
this.layRoot.RenderTransform= rTransform;
#endregion
#region 设置动画板且让Canvas对象内的物品以某点位圆心360度旋转下去
//设置一个DoubleAnimation动画来翻转这个旋转对象。
Storyboardsboard =newStoryboard();
DoubleAnimationdanima =newDoubleAnimation();//设置rectangle1矩形控件的透明度的Double类型数字变化
//设置DoubleAnimation动画的作用对象名称和作用对象属性
danima.SetValue(Storyboard.TargetNameProperty,"rTrans");
danima.SetValue(Storyboard.TargetPropertyProperty,newPropertyPath("RotateTransform.Angle"));
//在10秒的时间内让动画作用的角度属性从360到0,且永远循环下去
danima.From = 360; danima.To = 0;
danima.Duration = newDuration(newTimeSpan(0, 0,10));
danima.RepeatBehavior = RepeatBehavior.Forever;
sboard.Children.Add(danima);
LayoutRoot.Resources.Add("colorboard", sboard);
sboard.Begin();
#endregion
}
3.2.4. 黑色外框效果实现
<!--增加外框为圆角矩形-->
<Border BorderThickness="2" BorderBrush="Black" Height="503" Width="453"CornerRadius="5">
…
</Border>
说明:BorderThickness属性代表外框粗细,设置外框为黑色BorderBrush="Black"。
宽高略大于grid的宽高Height="503" Width="453"。
3.3. 后台数据控制拓扑图显示
3.3.1. 数据模型
代码:
public classNodeInfo
{
///<summary>
///唯一标示
///</summary>
public string NodeID { get; set; }
///<summary>
///名称
///</summary>
public string MyName { get; set; }
///<summary>
///显示名称
///</summary>
public string MyText { get; set; }
///<summary>
///状态
///</summary>
public int StateFlag { get; set; }
///<summary>
///数据流量
///</summary>
public double DataFlowSize { get;set; }
///<summary>
///提示信息
///</summary>
public string ToolTip { get;set; }
///<summary>
/// IP地址
///</summary>
public string IPAddress { get;set; }
///<summary>
///位置
///</summary>
public string Address { get;set; }
}
3.3.2. XML数据配置文件
<?xmlversion="1.0"encoding="utf-8" ?>
<NodesInfo>
<NodeInfoNodeID ="1" MyName = "b"IPAddress ="10.10.168.1"DataFlowSize ="80" Address ="宁夏县区1"MyText ="名称"StateFlag ="0"ToolTip ="服务器1正常运行" />
<NodeInfoNodeID ="2" MyName = "b"IPAddress ="10.10.168.2"DataFlowSize ="80" Address ="宁夏县区2"MyText ="名称"StateFlag ="1"ToolTip ="服务器2正常运行" />
<NodeInfoNodeID ="3" MyName = "b"IPAddress ="10.10.168.3"DataFlowSize ="80" Address ="宁夏县区3"MyText ="名称"StateFlag ="1"ToolTip ="服务器3正常运行" />
<NodeInfoNodeID ="4" MyName = "b"IPAddress ="10.10.168.4"DataFlowSize ="80" Address ="宁夏县区4"MyText ="名称"StateFlag ="1"ToolTip ="服务器4正常运行" />
<NodeInfoNodeID ="5" MyName = "b"IPAddress ="10.10.168.5"DataFlowSize ="80" Address ="宁夏县区5"MyText ="名称"StateFlag ="1"ToolTip ="服务器5正常运行" />
<NodeInfoNodeID ="6" MyName = "b"IPAddress ="10.10.168.6"DataFlowSize ="80" Address ="宁夏县区6"MyText ="名称"StateFlag ="1"ToolTip ="服务器6正常运行" />
<NodeInfoNodeID ="7" MyName = "b"IPAddress ="10.10.168.7"DataFlowSize ="80" Address ="宁夏县区7"MyText ="名称"StateFlag ="1"ToolTip ="服务器7正常运行" />
<NodeInfoNodeID ="8" MyName = "b"IPAddress ="10.10.168.8"DataFlowSize ="80" Address ="宁夏县区8"MyText ="名称"StateFlag ="1"ToolTip ="服务器8正常运行" />
<NodeInfoNodeID ="9" MyName = "b"IPAddress ="10.10.168.9"DataFlowSize ="80" Address ="宁夏县区9"MyText ="名称"StateFlag ="1"ToolTip ="服务器9正常运行" />
<NodeInfoNodeID ="10" MyName = "0"IPAddress ="10.10.168.10"DataFlowSize ="80" Address ="宁夏县区10"MyText ="名称"StateFlag ="1"ToolTip ="服务器10正常运行" />
<NodeInfoNodeID ="11" MyName = "0"IPAddress ="10.10.168.11"DataFlowSize ="80" Address ="宁夏县区11"MyText ="名称"StateFlag ="1"ToolTip ="服务器11正常运行" />
<NodeInfoNodeID ="12" MyName = "0"IPAddress ="10.10.168.12"DataFlowSize ="80" Address ="宁夏县区12"MyText ="名称"StateFlag ="1"ToolTip ="服务器12正常运行" />
<NodeInfoNodeID ="13" MyName = "0"IPAddress ="10.10.168.13"DataFlowSize ="80" Address ="宁夏县区13"MyText ="名称"StateFlag ="1"ToolTip ="服务器13正常运行" />
<NodeInfoNodeID ="14" MyName = "0"IPAddress ="10.10.168.14"DataFlowSize ="80" Address ="宁夏县区14"MyText ="名称"StateFlag ="1"ToolTip ="服务器14正常运行" />
<NodeInfoNodeID ="15" MyName = "0"IPAddress ="10.10.168.15"DataFlowSize ="80" Address ="宁夏县区15"MyText ="名称"StateFlag ="1"ToolTip ="服务器15正常运行" />
<NodeInfoNodeID ="16" MyName = "0"IPAddress ="10.10.168.16"DataFlowSize ="80" Address ="宁夏县区16"MyText ="名称"StateFlag ="1"ToolTip ="服务器16正常运行" />
<NodeInfoNodeID ="17" MyName = "0"IPAddress ="10.10.168.17"DataFlowSize ="80" Address ="宁夏县区17"MyText ="名称"StateFlag ="1"ToolTip ="服务器17正常运行" />
<NodeInfoNodeID ="18" MyName = "0"IPAddress ="10.10.168.18"DataFlowSize ="80" Address ="宁夏县区18"MyText ="名称"StateFlag ="1"ToolTip ="服务器18正常运行" />
<NodeInfoNodeID ="19" MyName = "0"IPAddress ="10.10.168.19"DataFlowSize ="80" Address ="宁夏县区19"MyText ="名称"StateFlag ="1"ToolTip ="服务器19正常运行" />
<NodeInfoNodeID ="20" MyName = "c"IPAddress ="10.10.168.20"DataFlowSize ="80" Address ="宁夏县区20"MyText ="名称"StateFlag ="1"ToolTip ="服务器20正常运行" />
<NodeInfoNodeID ="21" MyName = "0"IPAddress ="10.10.168.21"DataFlowSize ="80" Address ="宁夏县区21"MyText ="名称"StateFlag ="1"ToolTip ="服务器21正常运行" />
<NodeInfoNodeID ="22" MyName = "0"IPAddress ="10.10.168.22"DataFlowSize ="80" Address ="宁夏县区22"MyText ="名称"StateFlag ="1"ToolTip ="服务器22正常运行" />
<NodeInfoNodeID ="23" MyName = "0"IPAddress ="10.10.168.23"DataFlowSize ="80" Address ="宁夏县区23"MyText ="名称"StateFlag ="1"ToolTip ="服务器23正常运行" />
<NodeInfoNodeID ="24" MyName = "0"IPAddress ="10.10.168.24"DataFlowSize ="80" Address ="宁夏县区24"MyText ="名称"StateFlag ="1"ToolTip ="服务器24正常运行" />
<NodeInfoNodeID ="25" MyName = "0"IPAddress ="10.10.168.25"DataFlowSize ="80" Address ="宁夏县区25"MyText ="名称"StateFlag ="1"ToolTip ="服务器25正常运行" />
<NodeInfoNodeID ="26" MyName = "c"IPAddress ="10.10.168.26"DataFlowSize ="80" Address ="宁夏县区26"MyText ="名称"StateFlag ="1"ToolTip ="服务器26正常运行" />
<NodeInfoNodeID ="27" MyName = "0"IPAddress ="10.10.168.27"DataFlowSize ="80" Address ="宁夏县区27"MyText ="名称"StateFlag ="1"ToolTip ="服务器27正常运行" />
<NodeInfoNodeID ="28" MyName = "p"IPAddress ="10.10.168.28"DataFlowSize ="80" Address ="宁夏县区28"MyText ="名称"StateFlag ="1"ToolTip ="服务器28正常运行" />
<NodeInfoNodeID ="29" MyName = "0"IPAddress ="10.10.168.29"DataFlowSize ="80" Address ="宁夏县区29"MyText ="名称"StateFlag ="1"ToolTip ="服务器29正常运行" />
<NodeInfoNodeID ="30" MyName = "p"IPAddress ="10.10.168.30"DataFlowSize ="80" Address ="宁夏县区30"MyText ="名称"StateFlag ="1"ToolTip ="服务器30正常运行" />
<NodeInfoNodeID ="31" MyName = "0"IPAddress ="10.10.168.31"DataFlowSize ="80" Address ="宁夏县区31"MyText ="名称"StateFlag ="1"ToolTip ="服务器31正常运行" />
<NodeInfoNodeID ="32" MyName = "p"IPAddress ="10.10.168.32"DataFlowSize ="80" Address ="宁夏县区32"MyText ="名称"StateFlag ="1"ToolTip ="服务器32正常运行" />
<NodeInfoNodeID ="33" MyName = "0"IPAddress ="10.10.168.33"DataFlowSize ="80" Address ="宁夏县区33"MyText ="名称"StateFlag ="1"ToolTip ="服务器33正常运行" />
<NodeInfoNodeID ="34" MyName = "p"IPAddress ="10.10.168.34"DataFlowSize ="80" Address ="宁夏县区34"MyText ="名称"StateFlag ="1"ToolTip ="服务器34正常运行" />
<NodeInfoNodeID ="35" MyName = "0"IPAddress ="10.10.168.35"DataFlowSize ="80" Address ="宁夏县区35"MyText ="名称"StateFlag ="1"ToolTip ="服务器35正常运行" />
<NodeInfoNodeID ="36" MyName = "p"IPAddress ="10.10.168.36"DataFlowSize ="80" Address ="宁夏县区36"MyText ="名称"StateFlag ="1"ToolTip ="服务器36正常运行" />
<NodeInfoNodeID ="37" MyName = "0"IPAddress ="10.10.168.37"DataFlowSize ="80" Address ="宁夏县区37"MyText ="名称"StateFlag ="1"ToolTip ="服务器37正常运行" />
<NodeInfoNodeID ="38" MyName = "0"IPAddress ="10.10.168.38"DataFlowSize ="80" Address ="宁夏县区38"MyText ="名称"StateFlag ="1"ToolTip ="服务器38正常运行" />
<NodeInfoNodeID ="39" MyName = "0"IPAddress ="10.10.168.39"DataFlowSize ="80" Address ="宁夏县区39"MyText ="名称"StateFlag ="1"ToolTip ="服务器39正常运行" />
<NodeInfoNodeID ="40" MyName = "0"IPAddress ="10.10.168.40"DataFlowSize ="80" Address ="宁夏县区40"MyText ="名称"StateFlag ="1"ToolTip ="服务器40正常运行" />
<NodeInfoNodeID ="41" MyName = "0"IPAddress ="10.10.168.41"DataFlowSize ="80" Address ="宁夏县区41"MyText ="名称"StateFlag ="1"ToolTip ="服务器41正常运行" />
<NodeInfoNodeID ="42" MyName = "0"IPAddress ="10.10.168.42"DataFlowSize ="80" Address ="宁夏县区42"MyText ="名称"StateFlag ="1"ToolTip ="服务器42正常运行" />
<NodeInfoNodeID ="43" MyName = "0"IPAddress ="10.10.168.43"DataFlowSize ="80" Address ="宁夏县区43"MyText ="名称"StateFlag ="1"ToolTip ="服务器43正常运行" />
<NodeInfoNodeID ="44" MyName = "0"IPAddress ="10.10.168.44"DataFlowSize ="80" Address ="宁夏县区44"MyText ="名称"StateFlag ="1"ToolTip ="服务器44正常运行" />
<NodeInfoNodeID ="45" MyName = "0"IPAddress ="10.10.168.45"DataFlowSize ="80" Address ="宁夏县区45"MyText ="名称"StateFlag ="1"ToolTip ="服务器45正常运行" />
<NodeInfoNodeID ="46" MyName = "0"IPAddress ="10.10.168.46"DataFlowSize ="80" Address ="宁夏县区46"MyText ="名称"StateFlag ="1"ToolTip ="服务器46正常运行" />
<NodeInfoNodeID ="47" MyName = "0"IPAddress ="10.10.168.47"DataFlowSize ="80" Address ="宁夏县区47"MyText ="名称"StateFlag ="1"ToolTip ="服务器47正常运行" />
<NodeInfoNodeID ="48" MyName = "0"IPAddress ="10.10.168.48"DataFlowSize ="80" Address ="宁夏县区48"MyText ="名称"StateFlag ="1"ToolTip ="服务器48正常运行" />
<NodeInfoNodeID ="49" MyName = "0"IPAddress ="10.10.168.49"DataFlowSize ="80" Address ="宁夏县区49"MyText ="名称"StateFlag ="1"ToolTip ="服务器49正常运行" />
<NodeInfoNodeID ="50" MyName = "0"IPAddress ="10.10.168.50"DataFlowSize ="80" Address ="宁夏县区50"MyText ="名称"StateFlag ="1"ToolTip ="服务器50正常运行" />
<NodeInfoNodeID ="51" MyName = "0"IPAddress ="10.10.168.51"DataFlowSize ="80" Address ="宁夏县区51"MyText ="名称"StateFlag ="1"ToolTip ="服务器51正常运行" />
<NodeInfoNodeID ="52" MyName = "0"IPAddress ="10.10.168.52"DataFlowSize ="80" Address ="宁夏县区52"MyText ="名称"StateFlag ="1"ToolTip ="服务器52正常运行" />
<NodeInfoNodeID ="53" MyName = "0"IPAddress ="10.10.168.53"DataFlowSize ="80" Address ="宁夏县区53"MyText ="名称"StateFlag ="1"ToolTip ="服务器53正常运行" />
<NodeInfoNodeID ="54" MyName = "0"IPAddress ="10.10.168.54"DataFlowSize ="80" Address ="宁夏县区54"MyText ="名称"StateFlag ="1"ToolTip ="服务器54正常运行" />
<NodeInfoNodeID ="55" MyName = "P"IPAddress ="10.10.168.55"DataFlowSize ="80" Address ="宁夏县区55"MyText ="名称"StateFlag ="1"ToolTip ="服务器55正常运行" />
<NodeInfoNodeID ="56" MyName = "0"IPAddress ="10.10.168.56"DataFlowSize ="80" Address ="宁夏县区56"MyText ="名称"StateFlag ="1"ToolTip ="服务器56正常运行" />
<NodeInfoNodeID ="57" MyName = "P"IPAddress ="10.10.168.57"DataFlowSize ="80" Address ="宁夏县区57"MyText ="名称"StateFlag ="1"ToolTip ="服务器57正常运行" />
<NodeInfoNodeID ="58" MyName = "0"IPAddress ="10.10.168.58"DataFlowSize ="80" Address ="宁夏县区58"MyText ="名称"StateFlag ="1"ToolTip ="服务器58正常运行" />
<NodeInfoNodeID ="59" MyName = "P"IPAddress ="10.10.168.59"DataFlowSize ="80" Address ="宁夏县区59"MyText ="名称"StateFlag ="1"ToolTip ="服务器59正常运行" />
<NodeInfoNodeID ="60" MyName = "0"IPAddress ="10.10.168.60"DataFlowSize ="80" Address ="宁夏县区60"MyText ="名称"StateFlag ="1"ToolTip ="服务器60正常运行" />
<NodeInfoNodeID ="61" MyName = "P"IPAddress ="10.10.168.61"DataFlowSize ="80" Address ="宁夏县区61"MyText ="名称"StateFlag ="1"ToolTip ="服务器61正常运行" />
<NodeInfoNodeID ="62" MyName = "0"IPAddress ="10.10.168.62"DataFlowSize ="80" Address ="宁夏县区62"MyText ="名称"StateFlag ="1"ToolTip ="服务器62正常运行" />
<NodeInfoNodeID ="63" MyName = "P"IPAddress ="10.10.168.63"DataFlowSize ="80" Address ="宁夏县区63"MyText ="名称"StateFlag ="1"ToolTip ="服务器63正常运行" />
<NodeInfoNodeID ="64" MyName = "0"IPAddress ="10.10.168.64"DataFlowSize ="80" Address ="宁夏县区64"MyText ="名称"StateFlag ="1"ToolTip ="服务器64正常运行" />
<NodeInfoNodeID ="65" MyName = "C"IPAddress ="10.10.168.65"DataFlowSize ="80" Address ="宁夏县区65"MyText ="名称"StateFlag ="1"ToolTip ="服务器65正常运行" />
<NodeInfoNodeID ="66" MyName = "0"IPAddress ="10.10.168.66"DataFlowSize ="80" Address ="宁夏县区66"MyText ="名称"StateFlag ="1"ToolTip ="服务器66正常运行" />
<NodeInfoNodeID ="67" MyName = "0"IPAddress ="10.10.168.67"DataFlowSize ="80" Address ="宁夏县区67"MyText ="名称"StateFlag ="1"ToolTip ="服务器67正常运行" />
<NodeInfoNodeID ="68" MyName = "0"IPAddress ="10.10.168.68"DataFlowSize ="80" Address ="宁夏县区68"MyText ="名称"StateFlag ="1"ToolTip ="服务器68正常运行" />
<NodeInfoNodeID ="69" MyName = "0"IPAddress ="10.10.168.69"DataFlowSize ="80" Address ="宁夏县区69"MyText ="名称"StateFlag ="1"ToolTip ="服务器69正常运行" />
<NodeInfoNodeID ="70" MyName = "0"IPAddress ="10.10.168.70"DataFlowSize ="80" Address ="宁夏县区70"MyText ="名称"StateFlag ="1"ToolTip ="服务器70正常运行" />
<NodeInfoNodeID ="71" MyName = "C"IPAddress ="10.10.168.71"DataFlowSize ="80" Address ="宁夏县区71"MyText ="名称"StateFlag ="1"ToolTip ="服务器71正常运行" />
<NodeInfoNodeID ="72" MyName = "0"IPAddress ="10.10.168.72"DataFlowSize ="80" Address ="宁夏县区72"MyText ="名称"StateFlag ="1"ToolTip ="服务器72正常运行" />
<NodeInfoNodeID ="73" MyName = "0"IPAddress ="10.10.168.73"DataFlowSize ="80" Address ="宁夏县区73"MyText ="名称"StateFlag ="1"ToolTip ="服务器73正常运行" />
<NodeInfoNodeID ="74" MyName = "0"IPAddress ="10.10.168.74"DataFlowSize ="80" Address ="宁夏县区74"MyText ="名称"StateFlag ="1"ToolTip ="服务器74正常运行" />
<NodeInfoNodeID ="75" MyName = "0"IPAddress ="10.10.168.75"DataFlowSize ="80" Address ="宁夏县区75"MyText ="名称"StateFlag ="1"ToolTip ="服务器75正常运行" />
<NodeInfoNodeID ="76" MyName = "0"IPAddress ="10.10.168.76"DataFlowSize ="80" Address ="宁夏县区76"MyText ="名称"StateFlag ="1"ToolTip ="服务器76正常运行" />
<NodeInfoNodeID ="77" MyName = "0"IPAddress ="10.10.168.77"DataFlowSize ="80" Address ="宁夏县区77"MyText ="名称"StateFlag ="1"ToolTip ="服务器77正常运行" />
<NodeInfoNodeID ="78" MyName = "0"IPAddress ="10.10.168.78"DataFlowSize ="80" Address ="宁夏县区78"MyText ="名称"StateFlag ="1"ToolTip ="服务器78正常运行" />
<NodeInfoNodeID ="79" MyName = "0"IPAddress ="10.10.168.79"DataFlowSize ="80" Address ="宁夏县区79"MyText ="名称"StateFlag ="1"ToolTip ="服务器79正常运行" />
<NodeInfoNodeID ="80" MyName = "0"IPAddress ="10.10.168.80"DataFlowSize ="80" Address ="宁夏县区80"MyText ="名称"StateFlag ="1"ToolTip ="服务器80正常运行" />
<NodeInfoNodeID ="81" MyName = "0"IPAddress ="10.10.168.81"DataFlowSize ="80" Address ="宁夏县区81"MyText ="名称"StateFlag ="1"ToolTip ="服务器81正常运行" />
<NodeInfoNodeID ="82" MyName = "b"IPAddress ="10.10.168.82"DataFlowSize ="80" Address ="宁夏县区82"MyText ="名称"StateFlag ="1"ToolTip ="服务器82正常运行" />
<NodeInfoNodeID ="83" MyName = "b"IPAddress ="10.10.168.83"DataFlowSize ="80" Address ="宁夏县区83"MyText ="名称"StateFlag ="1"ToolTip ="服务器83正常运行" />
<NodeInfoNodeID ="84" MyName = "b"IPAddress ="10.10.168.84"DataFlowSize ="80" Address ="宁夏县区84"MyText ="名称"StateFlag ="1"ToolTip ="服务器84正常运行" />
<NodeInfoNodeID ="85" MyName = "b"IPAddress ="10.10.168.85"DataFlowSize ="80" Address ="宁夏县区85"MyText ="名称"StateFlag ="1"ToolTip ="服务器85正常运行" />
<NodeInfoNodeID ="86" MyName = "b"IPAddress ="10.10.168.86"DataFlowSize ="80" Address ="宁夏县区86"MyText ="名称"StateFlag ="1"ToolTip ="服务器86正常运行" />
<NodeInfoNodeID ="87" MyName = "b"IPAddress ="10.10.168.87"DataFlowSize ="80" Address ="宁夏县区87"MyText ="名称"StateFlag ="1"ToolTip ="服务器87正常运行" />
<NodeInfoNodeID ="88" MyName = "b"IPAddress ="10.10.168.88"DataFlowSize ="80" Address ="宁夏县区88"MyText ="名称"StateFlag ="1"ToolTip ="服务器88正常运行" />
<NodeInfoNodeID ="89" MyName = "b"IPAddress ="10.10.168.89"DataFlowSize ="80" Address ="宁夏县区89"MyText ="名称"StateFlag ="1"ToolTip ="服务器89正常运行" />
<NodeInfoNodeID ="90" MyName = "b"IPAddress ="10.10.168.90"DataFlowSize ="80" Address ="宁夏县区90"MyText ="名称"StateFlag ="1"ToolTip ="服务器90正常运行" />
</NodesInfo>
说明:
(1) 最多支持90个节点设备
(2) MyName中通过设置设备编码显示不同设备,小写代表设备网络连接正常,大写字母代表网络设备断开。同时控制设备连线是否正常。
(3) DataFlowSize ="80"代表数据流量,控制拓扑图中连线粗细。小于100为细线,大于等于100为粗线。
- Silverlight制作网络拓扑图(21)
- flex拓扑图制作
- flex拓扑图制作
- 实现silverlight实现拓扑图、网状结构图(有图形)
- 网络拓扑图
- 全球网络拓扑图
- 网络拓扑图
- 画网络拓扑图
- 网络拓扑图
- BZOJ-4010 菜肴制作 贪心+堆+(拓扑图拓扑序)
- Jsp网络拓扑图--用java实现网络拓扑图
- 网络拓扑图自动布局
- 湖南CA网络拓扑图
- JS实现网络拓扑图
- NS3搭建网络拓扑图
- JS实现网络拓扑图
- mininet 画网络拓扑图
- 图形化网络拓扑图
- 淘宝数据产品部总监赵昆:数据可视化--挖掘数据背后模式与关联
- fedora 开机加载模块
- UVa 10110: Light, more light
- SDK和MFC的区别
- Python Python内置函数清单
- Silverlight制作网络拓扑图(21)
- Android百度地图相关内容汇总
- Microsoft Office Visio 2010如何创建UML 用例图
- linux下qt4.8.0库的裁剪
- Heroku 部署时 time out 错误,对GFW无力吐槽!!!
- MySQL字段类型详解
- C++内存分配秘籍------new, malloc, GlobalAlloc详解
- 使用C#对MySQL数据库执行存在中文的SQL语句,不返回值的问题
- Chrome可以从其它浏览器上拖拽图片