具体实施方式
下面结合附图及具体实施例对本发明的技术方案作进一步的描述。
如图1所示,一种基于IE浏览器的系统资源动态显示方法,共分为三个步骤:
步骤101,系统的设备数据访问模块从嵌入式设备读取嵌入式设备系统资源利用状态的数据。这里读取的数据是原始的数据,而且网络管理系统访问嵌入式设备并读取设备数据是现有技术,一般实现方式为:嵌入式设备利用超文本传输协议HTTP单独启动一个服务,并利用其配置命令读取设备系统资源的状态信息,通过HTTP协议传输到IE浏览器。
步骤102,设备数据转换模块将所述设备数据访问模块读取的嵌入式设备的系统资源利用状态数据转换为用于显示的百分比数值。在本步骤中,设备数据转换模块通过文本解析,解析出嵌入式设备的系统资源利用状态数据,形成用于显示的百分比数值。
步骤103,系统的设备资源显示模块利用创建的仪表盘显示嵌入式设备的系统资源利用率。本步骤中设备资源显示模块首先判断是否存在用于显示嵌入式设备系统资源利用率的仪表盘,如是,则直接利用已创建的仪表盘根据步骤102中转换后的嵌入式设备的系统资源利用状态数据,显示嵌入式设备的系统资源利用状态,该已创建的仪表盘可以是预先创建的,也可以是在进行第一次显示之前创建的;如否,则设备资源显示模块首先创建仪表盘,再利用已创建的仪表盘显示嵌入式设备的系统资源利用状态。
设备资源显示模块创建仪表盘的具体流程图参见图2,包括如下步骤:
步骤1031,在HTML中创建一个分区DIV层,并设置该层的背景图片为选择的带有刻度的仪表盘图片。图3为本发明实施例选择的仪表盘图片的示意图,用于显示嵌入式设备CPU资源的利用率。在本步骤中,创建的第一个DIV层的位置属性为相对位置即position:relative,指定该层的宽度和高度分别为所选择的带有刻度的仪表盘图片的宽度和高度。
步骤1032,在步骤1031中创建的DIV层的基础上,依次创建A、B、C三个DIV层,其中A层位于步骤1031中创建的DIV层的上一层,C层位于最外层,B层位于A层和C层之间,并分别对A、B、C三个DIV层进行属性设置;具体实现方法为:
a)创建一个DIV层A,将A添加到第一个DIV层内,设置A的属性:
位置属性为绝对位置即position:absolute
高度:仪表盘图片的高度;宽度:仪表盘图片的宽度
位置:top:0,left:0
通过滤镜的方式设置旋转方式:自动扩张(auto expand),旋转角度为0
b)创建一个DIV层B,将B添加到A内:设置B的属性:
位置属性为绝对位置即position:absolute
高度:仪表盘图片的高度;宽度:仪表盘图片的宽度
位置:top:0,left:0
边距:margin:0px
通过滤镜的方式设置旋转方式:原始裁剪模式(clip tooriginal),旋转角度为0
c)创建一个DIV层C,将C添加到B内;设置C的属性:
背景图片为选择的仪表盘的指针图片,图4为本发明实施例选择的仪表盘的指针图片的示意图
高度:仪表盘的指针图片高度;宽度:仪表盘的指针图片高度
位置:top:0,left:0
设置左边距(margin-left)、上边距(margin-top)的属性,达到仪表盘的指针图片的中心位置与选择的仪表盘图标的中心位置重合
通过滤镜的方式设置旋转方式:clip tooriginal,旋转角度为0
设备资源显示模块利用已创建的仪表盘,并根据步骤102中转换后的嵌入式设备的系统资源利用状态数据,通过A、B、C三层的共同旋转完成指针在仪表盘上的指示,显示嵌入式设备系统资源利用率,具体包括如下步骤:
a)将嵌入式设备的系统资源利用状态数据的百分比值,转换为选择的仪表盘的指针图片的旋转角度值。具体是根据当前指针图片中的指针所指向的仪表盘图片中百分比数值(刻度值),以及当前获取的嵌入式设备的系统资源利用状态数据的百分比值,由开发人员进行调试比对后获取指针图片的旋转角度值;
b)利用所述指针图片的旋转角度值,计算A、B、C三层的旋转角度值,通过A、B、C三层的共同旋转完成所述指针图片在仪表盘图片上的指示。假设针图片旋转角度值为deg,设置A层的旋转角度为:所述指针图片的旋转角度值deg与30相加的和整除90得到倍数,将倍数乘以90后的值;设置B层的旋转角度为:所述指针图片的旋转角度值deg整除30得到30的倍数,将倍数与3求余,余数值为0时,B层的旋转角度为0,余数为1时,B层的旋转角度为30,余数为2时,B的旋转角度为330;设置C层的旋转角度为:所述指针图片的旋转角度值deg除以30的余数;设置B层的边距属性,使得所述指针图片的中心位置和仪表盘图片的中心位置重合。具体设置过程如下:
1)当指针图片旋的转角度值deg为0-30度之间时,则C顺时针旋转deg,B不旋转,A不旋转;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=1,M12=0,M21=0,M22=1
设置B的滤镜属性Matrix中的M11=1,M12=0,M21=0,M22=1
设置B的边距属性margin-left:0px,margin-top:0px
设置C的滤镜属性Matrix中的
M11=Math.cos(aDeg*Math.PI*2/360)
M12=-Math.sin(aDeg*Math.PI*2/360)
M21=Math.sin(aDeg*Math.PI*2/360)
M22=Math.cos(aDeg*Math.PI*2/360)
2)当指针图片的旋转角度值deg为30-60度之间时,则C顺时针旋转deg-30,B顺时针旋转30°,A不旋转;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=1,M12=0,M21=0;M22=1
设置B的滤镜属性Matrix中的
M11=Math.cos(30*Math.PI*2/360)
M12=-Math.sin(30*Math.PI*2/360)
M21=Math.sin(30*Math.PI*2/360)
M22=Math.cos(30*Math.PI*2/360)
设置B的边距属性margin-left:51px,margin-top:-29px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-30)*Math.PI*2/360)
M12=-Math.sin((aDeg-30)*Math.PI*2/360)
M21=Math.sin((aDeg-30)*Math.PI*2/360)
M22=Math.cos((aDeg-30)*Math.PI*2/360)
3)当指针图片的旋转角度值deg为60-90度之间时,则C顺时针旋转deg-60,B顺时针旋转60°,A不旋转;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=0,M12=-1,M21=1,M22=0
设置B的滤镜属性Matrix中的
M11=Math.cos(330*Math.PI*2/360)
M12=-Math.sin(330*Math.PI*2/360)
M21=Math.sin(330*Math.PI*2/360)
M22=Math.cos(330*Math.PI*2/360)
设置B的边距属性margin-left:-29px,margin-top:58px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-60)*Math.PI*2/360)
M12=-Math.sin((aDeg-60)*Math.PI*2/360)
M21=Math.sin((aDeg-60)*Math.PI*2/360)
M22=Math.cos((aDeg-60)*Math.PI*2/360)
4)当指针图片的旋转角度值deg为90-120度之间时,则C顺时针旋转deg-90,B不旋转,A顺时针旋转90°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=0,M12=-1,M21=1,M22=0
设置B的滤镜属性Matrix中的M11=1,M12=0,M21=0,M22=1
设置B的边距属性margin-left:-1px,margin-top:9px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-90)*Math.PI*2/360)
M12=-Math.sin((aDeg-90)*Math.PI*2/360)
M21=Math.sin((aDeg-90)*Math.PI*2/360)
M22=Math.cos((aDeg-90)*Math.PI*2/360)
5)当指针图片的旋转角度值deg为120-150度之间时,则C顺时针旋转deg-120,B顺时针旋转30°,A顺时针旋转90°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=0,M12=-1,M21=1,M22=0
设置B的滤镜属性Matrix中的
M11=Math.cos(30*Math.PI*2/360)
M12=-Math.sin(30*Math.PI*2/360)
M21=Math.sin(30*Math.PI*2/360)
M22=Math.cos(30*Math.PI*2/360)
设置B的边距属性margin-left:49px,margin-top:-21px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-120)*Math.PI*2/360)
M12=-Math.sin((aDeg-120)*Math.PI*2/360)
M21=Math.sin((aDeg-120)*Math.PI*2/360)
M22=Math.cos((aDeg-120)*Math.PI*2/360)
6)当指针图片的旋转角度值deg为150-180度之间时,则C顺时针旋转deg-150,B顺时针旋转60°,A顺时针旋转90°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=-1,M12=0,M21=0,M22=-1
设置B的滤镜属性Matrix中的
M11=Math.cos(330*Math.PI*2/360)
M12=-Math.sin(330*Math.PI*2/360)
M21=Math.sin(330*Math.PI*2/360)
M22=Math.cos(330*Math.PI*2/360)
设置B的边距属性margin-left:-21px,margin-top:60px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-150)*Math.PI*2/360)
M12=-Math.sin((aDeg-150)*Math.PI*2/360)
M21=Math.sin((aDeg-150)*Math.PI*2/360)
M22=Math.cos((aDeg-150)*Math.PI*2/360)
7)当指针图片的旋转角度值deg为180-210度之间时,则C顺时针旋转deg-180,B不旋转,A顺时针旋转180°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=-1,M12=0,M21=0,M22=-1
设置B的滤镜属性Matrix中的M11=1,M12=0,M21=0,M22=1
设置B的边距属性margin-left:10px,margin-top:9px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-180)*Math.PI*2/360)
M12=-Math.sin((aDeg-180)*Math.PI*2/360)
M21=Math.sin((aDeg-180)*Math.PI*2/360)
M22=Math.cos((aDeg-180)*Math.PI*2/360)
8)当指针图片的旋转角度值deg为210-240度之间时,则C旋转deg-210,B顺时针旋转30°,A顺时针旋转180°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=-1,M12=0,M21=0,M22=-1
设置B的滤镜属性Matrix中的
M11=Math.cos(30*Math.PI*2/360)
M12=-Math.sin(30*Math.PI*2/360)
M21=Math.sin(30*Math.PI*2/360)
M22=Math.cos(30*Math.PI*2/360)
设置B的边距属性margin-left:60px,margin-top:-21px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-210)*Math.PI*2/360)
M12=-Math.sin((aDeg-210)*Math.PI*2/360)
M21=Math.sin((aDeg-210)*Math.PI*2/360)
M22=Math.cos((aDeg-210)*Math.PI*2/360)
9)当指针图片的旋转角度值deg为240-270度之间时,则C顺时针旋转deg-240,B顺时针旋转60°,A顺时针旋转180°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=0,M12=1,M21=-1,M22=0
设置B的滤镜属性Matrix中的
M11=Math.cos(330*Math.PI*2/360)
M12=-Math.sin(330*Math.PI*2/360)
M21=Math.sin(330*Math.PI*2/360)
M22=Math.cos(330*Math.PI*2/360)
设置B的边距属性margin-left:-21px,margin-top:50px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-240)*Math.PI*2/360)
M12=-Math.sin((aDeg-240)*Math.PI*2/360)
M21=Math.sin((aDeg-240)*Math.PI*2/360)
M22=Math.cos((aDeg-240)*Math.PI*2/360)
10)当指针图片的旋转角度值deg为270-300度之间时,则C顺时针旋转deg-270,B不旋转,A顺时针旋转270°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=0,M12=1,M21=-1,M22=0
设置B的滤镜属性Matrix中的M11=1,M12=0,M21=0,M22=1
设置B的边距属性margin-left:9px,margin-top:0px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-270)*Math.PI*2/360)
M12=-Math.sin((aDeg-270)*Math.PI*2/360)
M21=Math.sin((aDeg-270)*Math.PI*2/360)
M22=Math.cos((aDeg-270)*Math.PI*2/360)
11)当指针图片的旋转角度值deg为300-330度之间时,则C顺时针旋转deg-300,B顺时针旋转30°,A顺时针旋转270°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=0,M12=1,M21=-1,M22=0
设置B的滤镜属性Matrix中的
M11=Math.cos(30*Math.PI*2/360)
M12=-Math.sin(30*Math.PI*2/360)
M21=Math.sin(30*Math.PI*2/360)
M22=Math.cos(30*Math.PI*2/360)
设置B的边距属性margin-left:59px,margin-top:-29px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-300)*Math.PI*2/360)
M12=-Math.sin((aDeg-300)*Math.PI*2/360)
M21=Math.sin((aDeg-300)*Math.PI*2/360)
M22=Math.cos((aDeg-300)*Math.PI*2/360)
12)当指针图片的旋转角度值deg为330-360度之间时,则C顺时针旋转deg-330,B顺时针旋转60°,A顺时针旋转270°;即分别设置A、B、C三层的属性:
设置A的滤镜属性Matrix中的M11=1,M12=0,M21=0,M22=1
设置B的滤镜属性Matrix中的
M11=Math.cos(330*Math.PI*2/360)
M12=-Math.sin(330*Math.PI*2/360)
M21=Math.sin(330*Math.PI*2/360)
M22=Math.cos(330*Math.PI*2/360)
设置B的边距属性margin-left:-29px,margin-top:50px
设置C的滤镜属性Matrix中的
M11=Math.cos((aDeg-330)*Math.PI*2/360)
M12=-Math.sin((aDeg-330)*Math.PI*2/360)
M21=Math.sin((aDeg-330)*Math.PI*2/360)
M22=Math.cos((aDeg-330)*Math.PI*2/360)
本发明实施例,还提供了一种实施上述基于IE浏览器的系统资源动态显示方法的系统,参见图5,具体包括:
设备数据访问模块501,用于从嵌入式设备读取嵌入式设备系统资源利用状态的数据;
设备数据转换模块502,用于将所述设备数据访问模块读取的嵌入式设备的系统资源利用状态数据转换为用于显示的百分比数值;
设备资源显示模块503,用于利用创建的仪表盘显示嵌入式设备的系统资源利用率。该模块还用于创建仪表盘。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。