轻松可视化实现设备监控大屏效果

简介: 前期团队一直在搭建与云端服务器对接的事情,近期终于落地,数据采集中心实现了服务端与可视化编辑器的融合,整个案例中脚本就两百行左右,基本通过可视化平台配置完成,体现我们平台的高效性。今天通过本案例讲解下服务端接口搭建、服务端与可视化编辑器是如何配合使用的。

前言

前期团队一直在搭建与云端服务器对接的事情,近期终于落地,数据采集中心实现了服务端与可视化编辑器的融合,整个案例中脚本就两百行左右,基本通过可视化平台配置完成,体现我们平台的高效性。今天通过本案例讲解下服务端接口搭建、服务端与可视化编辑器是如何配合使用的。

看板效果图


可视化端实现的交互效果分别有三点:1、报警滚动展示,2、表格翻页显示,3、设备故障三角形动画

设备数据上报阿里云


如上图设置好,设备参数就会以队列的形式上报阿里云平台

服务端接口搭建

前期准备,服务端上传设备到阿里云端,完成后,我们打开上图阿里云平台具体要对接的产品数据,按下列骤订阅消息


按以上设置保存后消息订阅完成
数据上报后,如何把数据从阿里云拉取下来呢,请看下图


通过上图对接好阿里云上的信息后,数据就接入到我们的平台,在函数体内根据自己实际业务需求做相应处理后,就可以输出到可视化平台了,以上数据接口已全部搭建完成
注:图中的name即我们要绑定的字段名,value为绑定位置接收到的数据

数据集准备


新建数据集,对接好相应字段,确定后重新打开,点击数据测试,就可以看到接口过来的数据

可视化端实现过程

改变了以往html+css的方式,ui设计师直接在页面中设计、拖拉组件方式就可以很快完成
一、简单数据展示实现过程
设计图标样式,定义需要动态改变的参数

在顶部需要的位置引入图标

或者点击参数后的按钮,按如下步骤处理

二、拖拉组件实现过程

以上这么多组件都是怎么定义的呢?我们这边以echarts为例,讲下实现过程

在渲染元素中,定义好echarts需要的option,按下列代码用参数替换option中的项

var fontResize=data.a('fontResize');
if(fontResize){
    option.textStyle.fontSize=data.a('allFontSize')\*gv.getZoom();//字体
    option.title.textStyle.fontSize=data.a('titleFontsize')\*gv.getZoom();//标题字体大小
    option.xAxis\[0\].axisLabel.textStyle.fontSize=data.a('allFontSize')\*gv.getZoom();//XY轴字体大小
    option.yAxis\[0\].axisLabel.textStyle.fontSize=data.a('allFontSize')\*gv.getZoom();//XY轴字体大小
    cache.htmlChart.clear();//清空缓存重新加载
    cache.htmlChart.setOption(option);
}

引入自定义组件,设置图表参数

绑定前面定义好的数据集、字段

因数据接口的数据是单条输出,所以我们要在插入前事件中接管数据,放入自己的容器中,定义好图表需要的数据格式后再返回,代码实现如下:

function(data){
    for(var item in data){
        if(item == '40005'){
            pm_xAxis.push(util.formatDate(new Date(data[item].time), 'mm:ss'));
            pm_series0.push(data[item].value);    
        }else if(item == '40010'){
            pm_series1.push(data[item].value);
        }
    }
    if(pm_xAxis.length>8){
        pm_xAxis.shift();
        pm_series0.shift();
        pm_series1.shift();
    }
    return [
        {
            "name": "PM2.5",
            "type": "line",
            "symbol": "none",
            "data": pm_series0,
            "smooth": false
        },
        {
            "name": "PM10",
            "type": "line",
            "symbol": "none",
            "data": pm_series1,
            "smooth": false
        }
    ]
}

看板中的其他模块大同小异,按上述步骤熟练后都可以快速实现,就不再重复描述,有兴趣同学可以动手试一试哦!

相关文章
[✔️]AudioRelay将电脑的声音投射在手机上
[✔️]AudioRelay将电脑的声音投射在手机上
3870 0
|
数据可视化 物联网
Threejs物联网,工厂3D可视化
Threejs物联网,工厂3D可视化
1539 15
Threejs物联网,工厂3D可视化
|
JavaScript
Threejs实现标签,自定义样式显示标签
Threejs实现标签,自定义样式显示标签
2319 0
Threejs实现标签,自定义样式显示标签
Threejs实现天空盒,全景场景,地面草地
Threejs实现天空盒,全景场景,地面草地
2224 0
Threejs实现天空盒,全景场景,地面草地
Threejs实现下雨,下雪,阴天,晴天,火焰
Threejs实现下雨,下雪,阴天,晴天,火焰
3158 0
Threejs实现下雨,下雪,阴天,晴天,火焰
|
7月前
|
存储 人工智能 运维
企业Agent解决方案全解析:从技术原理到落地实践,一文扫清
企业Agent正重塑数字化转型:作为具备自主决策能力的“数字员工”,它打通系统孤岛、实现流程闭环,提升效率72%。从金融风控到智能制造,覆盖多行业场景,2025年全球市场规模超1200亿美元。选型需聚焦场景、集成、安全与服务,未来将迈向多Agent协同与行业深度定制。
1443 0
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 来检查代码规范并自动格式化 Vue.js 代码。
【10月更文挑战第7天】随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 来检查代码规范并自动格式化 Vue.js 代码。通过安装和配置这两个工具,可以确保代码风格一致,提升团队协作效率和代码质量。
1415 2
Threejs创建天空和太阳
这篇文章讲解了如何使用Three.js中的Sky组件来创建真实的天空与太阳效果,包括调整天空的颜色、太阳的位置以及实现大气散射等技巧。
1040 3
|
数据采集 资源调度 JavaScript
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。