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.      整体布局

整体布局是9X10grid网格布局。

前台关键代码:

  <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。

2Grid整体高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秒的时间内让动画作用的角度属性从3600,且永远循环下去

            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为粗线。

原创粉丝点击