TWaver 3D应用于大型数据中心(续)

在2014年11月份,我们当时发了一篇有关TWaver HTML5 3D应用于大型数据中心的文章,该blog比较详细的描述一些常用的功能的实现方法,比如:动态添加机柜,告警,温度,湿度等相关的功能的具体实现。其实会用这些东西的话基本上可以使用我们的TWaver HTML5 3D来实现相关的应用了,可是在有些客户觉得这还不够“动态”,都是代码一下生成的,少了一些交互,前些天同事说要不再加点功能,让它更加“动”一些,所以今天我抽了个时间再接着来个“续”——动态的添加机柜,主机和告警。
整体

1、动态的添加机柜,输入机柜ID机柜:
createRack

基本方法同TWaver HTML5 3D应用于大型数据中心中的机柜创建方法一样(其实是完全一样,我只传了一个机柜id和position):

var loadRack = function(pos,type,isEmp,id){
var empRack = true;
    if(isEmp != undefined && isEmp !=null){
        empRack = isEmp;
    }
    var rackType = "s";
    if(type != null && type != undefined){
        rackType = type;
    }
    var addRack = function(element){
        if(element && pos){
            element.setPosition(pos.clone());
            element.rackType = rackType;
            element.setClient('R_ID',id); //给创建好的机柜添加了一个id,后面检索的话可以根据这个id来找到相应的机柜
            if(rackType == 'emptyRack'){
                element.setClient('bycustom',true);
            }
            if(!empRack){
                element.loaded = true;
                window.setTimeout(function(){
                    showChart(element);
                },500);
            }
        }
    };
    var  = './emptyRack.json';
     
    mono.Toolkits.loadTemplateUrl(network.getDataBox(), rack, null, null, addRack);
}

 由于机柜的也想动态,想摆哪里就摆哪里,为了实现这样功能,我就先这么处理了一下,点你点击“添加”后,给network添加了一个监听,当click时获取一下鼠标所点中的位置,把这个位置作为你想要放机柜的位置(这里主要将这个意思,你也可以通过dblclick,或单独弄个button或什么来管理这个功能):

     var addRack = function(e){
        network.getRootView().removeEventListener('click',addRack); //当执行后就把这个监听去掉
        var objects = network.getElementsByMouseEvent(e);
        if (objects.length) {
            var first = objects[0];
            var object3d = first.element;
            var point=first.point;
            var rack_id = txtRack.value;
            var position = new mono.Vec3(point.x, Size.rack_y, point.z); //5710,0,2546
            loadRack(position,'emptyRack',true,rack_id);
        }
    }
 
   //创建时:
    if(type == 'rack'){
            network.getRootView().addEventListener('click',addRack);
//            var position = new mono.Vec3(point.x, Size.rack_y, point.y); //5710,0,2546
//            loadRack(position,'emptyRack',true,rack_id);
   }

 效果图:

在走廊添加3个机柜

2、动态的添加交换机,根据路由器的id,路由器的位置动态的添加交换机(这里选择交换机是因为交换机有许多的端口,告警可以直接从交换机的端口发出,主要是因为交换机具有代表性):
下面是在上面(第一步)创建的机柜(机柜ID为“rid”)中的20u的地方(不知道是不是换算错了,呵呵)添加了一个交换机:
动态添加交换机

代码如下:

var createRouter = function(rack_id,host_id,y){
     var addHost = function(element){
         if(element){
             var rack = findFromClient('R_ID',rack_id);//根据机柜的id找到机柜
             if(!rack) return;
             rack.addChild(element);//把新的主机加到该机柜中
             if(host_id){
                 element.setClient('oid',host_id); //设置新增加的交换机的oid(也就是给它贴了个标签),以便于查找
             }
             element.setPositionX(0);
             element.setPositionY(y);//主机在机柜中的位置
             element.setPositionZ(0);
         }
     }
   mono.Toolkits.loadTemplateUrl(network.getDataBox(),"./ciscoroter.json",null,null,addHost);
 }

 

3、动态的添加告警,可以给路由器中指定的端口添加告警,如下图:
动态添加告警

添加方法基本和上次差不多,在之前的基础上做的简单的改进:

 
var createAlarm = function(alarmid,rid,soid,poid,st){
    var rack = findFromClient('R_ID',rid);
    var alarm;
    var s;
    if(rack) {
        s = findOidfromChildren(rack, soid);
    }else { //当Router没有放到机柜中时,单独再找一下
        s = findFromClient('H_ID',soid); 
        if(!s){
            s = findFromClient('oid',soid);
        }
    }
    if (s) {
        var p = findOidfromChildren(s, poid);
        if (p) {
            alarm = new mono.Alarm(alarmid, p.getId(), st);
        } else {
            alarm = new mono.Alarm(alarmid, s.getId(), st);
        }
    }else if(rack){
       alarm = new mono.Alarm(alarmid, rack.getId(), st);
    }
    if(alarm){
        network.getDataBox().getAlarmBox().add(alarm);
    }
}
 
 var addAlarm = function(rack_id,host_id,port_id,severity_id){
        var severities = mono.AlarmSeverity.severities;
        var severity = severities.get(severity_id);
        createAlarm('c',rack_id,host_id,port_id,severity);
    }

 再给这个路由器和机柜添加东西:

效果图2

TWaver3D直线、曲线、曲面的绘制 如何绘制3D直线、曲线和曲面?TWaver手把手教你成为绘图大师! 阅读详情

相关推荐

TWaver可视化软件(二)数据中心三维可视化 上

近年来,随着我国互联网行业的高速发展,数据中心的规模也越来越大,

TWaver可视化 2146

Twaver-HTML5基础学习(4)告警元素(Alarm)

Twaver-HTML5基础学习(4)告警元素(Alarm)

见贤思齐焉,见不贤内自省 1369

TWaver可视化软件(三)数据中心可视化 下

本文是TWaver可视化软件系列的第三篇,内容上承接上一篇,继续介绍数据中心可视化的相关功能。 除了上篇说到的环境、资产、容量以及管线外,数据中心的动环、安防告警、IT运维、巡检等各类业务系统都已经实现了与可视化平台的对接,并实现了数据的可视化处理。 ...

TWaver可视化 1646

TWaver初学实战——如何在TWaver属性表中添加日历控件?

在日期输入框中添加日历控件,是一种非常流行和实用的做法。临渊羡鱼不如退而写代码,今天就看看在TWaver中是如何实现的。 资源准备 TWaver的在线使用文档中,就有TWaverPropertySheet的demo,直接拿来用就好了。 js的日历控件,网上更是琳琅满目,我相中的是一款“非常好的一个js日历控件”,源码完整,结构清晰,功能齐全,实用好看。 ...

weixin_30372371的博客 304

10个TWaver网页3D可视化精彩案例

以下网页3D案例均为TWaver原创出品,推荐使用Chrome, FireFox, Safari等对WebGL支持良好的浏览器运行。案例排名不分先后,如需Demo,可直接申请试用。

TWaver可视化 7817

TWaver可视化软件(一)初识三维可视化软件

在这个特殊的时期,想必大家在家中或放假或办公,学习的热情必定是空前高涨,趁着这个机会,我们就来聊一聊数据可视化。说起可视化,很多人听说过却未必深入了解过,事实上,在信息化的浪潮席卷之下,数据可视化已经成为数字化、智能化管理运营的趋势。 数据可视化,顾名思义,就是将数据以可视图表的形式展现出来,以直观的形式挖掘数据深层次的价值,帮助企业实现管理和运营的智能化,提高企业运行效率。赛瓦软件便是国内最早...

TWaver可视化 3421

twaver flex编程之tooltip定制

“定制”无疑是TWaver中最大的一特色,无论是node,link,attachment,就连tooltip也同样可以定制,“定制”可以显示出更强更复杂的一些功能,今天给大家带来了一个定制Tooltip的例子。 啥也不多说,先看看效果: 下面我们来细细分析一下这个功能的实现。tooltip的特点是当鼠标滑过时显示,滑出时不显示。因此我们可以定义一个tooltip组件,监听netwo

rock的专栏 1159

TWaver可视化编辑器(二)3D编辑器

作为一款高效、轻量、自带编辑功能小组件,TWaver Java在电信网管界一炮而红,在各大运营商的OSS,BSS,NMS系统中随处可见。

TWaver可视化 6249

用TWaver加载大型游戏场景一例

游戏中经常会出现一些大型的户外场景,例如一个小镇、一座古城等。通常这种场景中包含了较多的建筑、道路、桥梁等等元素,其3D模型比较大且复杂。在使用TWaver加载时,可使用一些技巧,让加载速度更快、显示更流畅。

TWaver可视化 1709

twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_

twaver-html5-5.9.0-api

C# WinForm项目目录结构详解:从入门到精通(附常见问题解决方案)

本文详细解析了C# WinForm项目目录结构,从解决方案与项目基础结构到核心文件功能,再到关键目录解析,帮助开发者快速掌握WinForm项目组织方式。文章还提供了常见问题解决方案,如引用丢失、配置文件不生效等,是WinForm开发从入门到精通的实用指南。

dream的博客 647

twaver html5软件价格,TWaver数据中心可视化软件

原标题:TWaver数据中心可视化软件TWaver数据中心可视化管理软件是基于自主3D引擎,采用最新的3D图形技术HTML5和WebGL研发的机房运维可视化管理平台。软件采用了B/S架构,无需安装任何插件即可在浏览器中流畅漫游数据中心三维场景,进行可视化管理。软件通过对数据中心从园区、建筑、设备和各类监控数据进行三维可视化虚拟仿真,提供了资产管理、容量管理、能耗可视化、网络配线可视化、管路可视化、...

weixin_36152359的博客 644

Nginx/OpenResty目录穿越漏洞复现

Nginx/OpenResty目录穿越漏洞复现 漏洞背景: 2020年03月18日, 360CERT监测发现 openwall oss-security 邮件组披露了两枚漏洞。在特定配置下 nginx/openresty 存在 内存泄漏漏洞/目录穿越漏洞。 Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 OpenResty是一个基于nginx的Web平台,它对nginx增加LuaJIT引擎使其运行Lua脚本。 影响版本: nginx <= v1.17

小小猪的博客 1万+

TWaver阶段学习-入门篇

这段时间在学习了解TWaver这个3D建模的框架,下面是对这段时间学习成果的一个总结,也为自己梳理一下知识点。 TWaver介绍 TWaver是美国Serva Software公司的产品,是全球范围内先进的可视化管理软件,可以直接使用,也可根据需求二次开发,在电信、金融、交通等领域都有广泛应用。 主要就是能快速构建一个3D的交互式场景,能够方便快捷的管理电信服务器,电力工厂等。 更加详细的介绍请:...

快乐是一切的博客 7757

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

反爬和反反爬,本质上是一场持续的博弈,没有100%的隐身,只有不断升级的伪装。网上很多教程只给了个基础的噪声代码,却没讲透反爬的检测逻辑,导致你用了还是被封。这套方案的核心,不是简单的API重写,而是站在反爬的角度,模拟真实用户的所有特征,保证所有指纹的一致性、合理性、完整性。目前这套方案我用了半年,跑了上千万次请求,稳过国内国外99%的主流反爬平台,没有出现过一次因为指纹关联导致的批量封禁。大家有什么更狠的反爬场景,或者更好的伪装技巧,欢迎评论区一起交流。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1193

PyRoki 入门教程(二)安装与使用

PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/

机器人控制与仿真应用 1252

TWaver 3D作品Viewer查看器

为了让开发者更方便的对各类3D模型、设备、物体进行浏览和查看,我们直接封装了mono.Viewer组件。它可以直接根据给定的数据源(json、obj、url等)进行数据加载和浏览展示。对于一般的3D设备、图纸、作品的展示,它可是非常方便了,一句new mono.Viewer()就解决了所有问题。各种常见的交互设置、灯光设置、呈现方式等,都已经直接封装其中。

TWaver可视化 2450

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:永磁同步电机(PMSM) PID转速控制仿真

*永磁同步电机(PMSM)因其高效、高功率密度和良好的动态响应特性,在现代工业自动化、电动汽车驱动系统等领域得到了广泛应用。为了实现对PMSM的速度精确控制,通常采用矢量控制(Field Oriented Control, FOC)**策略,其中PID控制器是实现速度环和电流环调节的关键组件。本教程将带你使用构建一个基于PID控制的永磁同步电机转速控制系统仿真模型PMSM电机建模矢量控制(FOC)策略实现PID控制器设计系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 6951

TWaver版3D化学元素周期表

技术上来说,用TWaver 3D来做的思路略有不同。最开始网上这个程序是使用HTML5、CSS3、WebGL、THREE.js、TWEEN.js等技术做的。使用TWaver就不用这么麻烦了,直接一个mono.js就差不多搞定了。技术上依旧是WebGL+js,但没有使用CSS3和其他框架。效果和效率都很好。

TWaver可视化 6585

【护网必备】Windows平台shellcode免杀加载器

bypass:McAfee、金山(数字签名)、火绒、ESET、卡巴企业版(时间5s 抖动50 Sleep_mask)、360全家桶(物理机)、Norton(加白程序资源)、WDF(PC)、WDF(Server)、Symantec(加白程序资源)bypass:金山(数字签名)、火绒、ESET、360全家桶(物理机)、WDF(PC)、WDF(服务器提示复查(关云保护))、McAfee、Norton(加白程序资源)、卡巴企业版(时间5s 抖动50 Sleep_mask)必须使用Bof操作,shell运行就掉线。

Fly_鹏程万里 1186

AutoSar实战营 - 总目录

欢迎大家来学习《AutoSar实战营》专栏,该篇为总目录,方便以后大家直接进入需要学习的文章。 ~正所谓独乐乐不如众乐乐 - - ~1, AutoSar之DaVinci开发环境2,BswM模块之Ecu State Handling1)读写DID功能 《AutoSar实战》读写DID之一:CDD准备 《AutoSar实战》读写DID之二:工具链配置 《AutoSar实战》读写DID之三:代码实现2)功能寻址 《AutoSar实战》禁止功能寻址

weixin_48498880的博客 3632

模型库框架TWaver® Make发布

在我们协助客户进行3D应用的开发过程中,客户遇到的最头疼的问题是如何在短时间内学会使用TWaver 3D引擎,以及使用TWaver 3D来创建和导入项目所需的各种3D业务模型。 由于项目涵盖的行业繁多、对模型种类和精度的需求各异,为了降低TWaver底层引擎的使用难度,TWaver发布了一款全新的模型库框架TWaver® Make,来帮助开发者快速创建高质量、专业的行业可视化应用场景。

TWaver可视化 3093

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

3D建模巨头Twaver--入门篇2

前面讲了twaver的一些基础和第一个简单的demo,对于创建模型更多的例子和样式讲解,在官方的api里面都有详细的说明的了,今天主要的是如何导入自定义的模型和利用官方的自带的模型快速创建一个场景。 导入依赖 想要导入自定义模型,除了需要导入基本的t.js之外,还要导入两个js文件。 index.html <!DOCTYPE html> <html> <head&gt...

快乐是一切的博客 2077

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

当ECharts碰到TWaver

百度公司的ECharts发展迅速,已经成为HTML5 Chart的佼佼者,这让大家骄傲:中国人终于也有世界级的开源通用UI产品了。正如其网站所说,它是百度的,是中国的,也是世界的。想想那些年,我们追逐感慨过的chart产品,fusionchart、highchart等等不计其数,随着HTML5的迅速普及和ECharts的疯狂发展,大家可以忘掉那些产品了。其他商业chart产品基本上也离颤抖中关门的日子不远了

TWaver可视化 2817

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: TWaver矢量小试——Android演进路线图
下一篇: TWaver3D特效之高光反射
subnetwork
博客等级 码龄17年 17粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值