数字孪生引擎平台解决方案

荣科科技股份有限公司
2023年11月
目 录
** **
- 数字孪生引擎概述
通过对整个医院进行三维建模,构建医院的数字化虚拟场景,通过采集层对各类传感器和监控设备的接入,数据层对各业务子系统运行数据的整合,建立起虚拟场景与物理世界的桥梁,形成整个医院的数据孪生体,在虚拟场景中,实时展示各类设备的运行状态,同时打破物理空间的限制隔阂,以更加直 观、更加生动的方式展示联动事件关联处置,以全局视角总览整个医院的运行状态。
数字孪生理念的核心是"基于运行数据的实时仿真和交互”,我们从顶层设计、软件架构、能力体系、交付形态等方面统筹考虑,真正发挥数字孪生在智慧后勤管理中的作用,发挥更大的价值,解决医院后勤管理中的设备安全运行实时形态监控问题。
- 数字孪生引擎底座
2.1. 基于WebGL数字孪生引擎
基于WebGL的数字孪生引擎的核心功能包括3D场景的创建、渲染和管理,以及与现实世界的数据交互和实时更新。该引擎使用WebGL提供的API进行3D渲染,并通过获取现实世界中的数据来实现数字孪生。如图 1所示。

图 1 基于WebGL数字孪生引擎
2.1.1. 场景管理
场景管理用于展示和管理系统中的场景单元,主要用于场景信息管理、三维场景展示和点位数据摆放。点击左侧菜单栏中的场景管理,进入场景管理界面,如图 2所示。

图 2 场景管理
2.1.2. 模型管理
模型管理可对场景文件、在线摆放、本地上传和联网同步的模型资源进行管理,上传场景后系统自动同步模型,也可点击更新场景模型手动同步模型,更新后会记录当前同步时间,右上角可按分类对模型进行模糊搜索。
·模型编号:是模型的唯一标识,每个模型对应各自唯一的模型编号
·模型型号:展示当前的模型型号,通常不会重复
·孪生体型号:对应孪生体实例表中的孪生体型号属性值
仅当模型型号与孪生体型号匹配正确时,场景内孪生体显示正确模型,如图 3所示。

图 3 模型管理
2.1.3. 孪生体管理
孪生体管理模块用于管理目录、分类和孪生体实例数据。
目录可以对分类进行分组管理便于查找,目录展开后是各种孪生体分类;分类是按照一定特性将孪生体实例集合起来,上传场景后实例数据会自动更新;孪生体实例数据体现为具体的元数据,拥有其所在分类的属性,非必填属性的属性值可以为空,如图 4所示。

图 4 孪生体管理
2.2. 基于游戏场景数字孪生引擎
基于游戏场景的数字孪生引擎是一种实时仿真系统,通过与实际场景的紧密联系,实现对现实世界进行数字化映射和模拟。它结合了游戏引擎的渲染能力和实时交互性,以及数字孪生技术的仿真和预测能力,为工业、城市、交通等多个领域提供了可视化、沉浸式的仿真和决策支持工具。如图 5所示。

图 5 基于游戏场景数字孪生引擎
2.2.1. 启动器功能
漫游场景中支持编辑项目的地理位置信息,设置轮廓信息,可以结合Mars里的太阳仿真模拟项目所在位置的太阳角度,还支持企业多人通过项目私有专属云进行协同编辑。如图 6所示。

图 6 启动器功能
2.2.2. 编辑功能
模型导入支持skp、fbx、3dm和dae四种文件格式,场景模型导入后如果模型有修改,通过模型更新可以在保存现有Mars场景制作进度(如材质、配景、效果等参数)的基础上直接更新模型的调整修改,还可以通过地形雕刻功能塑造各种地形样貌。如图 7所示。

图 7 编辑功能
2.2.3. 材质编辑
可以查看目前支持材质产品信息显示的材质,并可根据效果调节材质的参数,可以通过吸管工具来快速吸取赋予同种材质,立体材质使用视差贴图的技术,在不增加模型复杂度的情况下,使模型表面产生逼真立体感的表现效果,使项目表现更真实。如图 8所示。

图 8 材质编辑
2.2.4. 配景编辑
可以使用资源高级编辑功能对配景资源进行精确调整和高级属性调节;通过植物参数调节功能设置植物的高度、密度和颜色等参数;使用曲线工具绘制流畅的曲线;使用笔刷工具进行涂抹或画笔等操作;同时还可以使用测量工具测量场景中任意两点之间的距离。如图 9所示。

图 9 配景编辑
2.2.5. 功能资源模型
功能资源包括交互资源、人物资源动态扩展、可编辑标记资源、汽车资源动态扩展、音效资源和视频材质等。这些功能资源能够提供丰富的交互体验,实现人物和汽车等动态扩展,同时支持音效和视频材质的编辑。如图 10所示。

图 10 功能资源模型
2.2.6. 天空环境
天空环境功能包括天气系统、天空系统、体积雾、四季系统和太阳角度和倾斜。这些功能能够模拟真实的天气和环境效果,例如晴天、阴天、雨天、雪天等不同的天气状况,以及天空的颜色和动态变化。此外,体积雾能够模拟大雾的效果,四季系统可以模拟不同季节的天气变化,太阳角度和倾斜则可以影响场景的光照和阴影效果。如图 11所示。
图 11 天空环境
2.2.7. 后期设置
为场景提供了多种处理方式,包括屏幕空间全局光照、后期全局设置、两点透视、景深功能、滤镜设置等。这些功能可以满足用户对场景表现的不同需求,例如增加全局光照、调整场景的色彩和亮度、添加透视效果、模拟自然景深等。此外,预设模板和自定义模板功能也使得用户可以根据自己的习惯和需求进行个性化的后期设置,提高工作效率。如图 12所示。

图 12 后期设置
2.2.8. 漫游路径
通过录像视频和视频记录 环境功能记录场景的实时变化,关键帧更新功能可以在时间轴上标记关键帧,实现动画效果的制作。变焦视频功能支持对摄像机进行缩放操作,延时动画效果可以将漫游路径的移动速度降低,产生时间放慢的视觉效果。过渡动画效果则可以在漫游路径之间进行平滑的过渡,增强动画的连贯性。如图 13所示。

图 13 漫游路径
2.2.9. 选项设置
用户可以根据需要切换人视模式的主角视角,显示FPS值功能实时显示游戏的帧率,框选显示辅助线功能可以在选中物体时显示辅助线,精确调整物体的位置和尺寸。植物风动与风动程度功能可以调节植物的动态效果,罗盘方向功能可以设置罗盘的方向,方便进行定向操作,资源清单功能可以查看场景中所有资源的清单,方便资源的统计和管理。如图 14所示。

图 14 选项设置
2.2.10. 其他功能
镜头视图提供了多个摄像机视角选择,方便用户从不同角度观察场景;场景功能可以对场景进行各种操作,如创建、复制、删除等,以实现不同的场景效果;资源列表大纲功能可以显示场景中所有资源的层级关系,方便用户进行资源管理和布局。飞行人视切换功能则可以在飞行和人视模式之间进行切换。如图 15所示。

图 15 其他功能
- 数字孪生可视化建 模
3.1. 外景建模
建筑、结构、场地,根据用户提供的2维、3维图形素材,完成轻量级BIM模型绘制,模型细度达到LOD200。仿真漫游。如图 16所示。

图 16 外景建模
3.2. 室内建模
建筑、结构、场地,根据用户提供的2维、3维图形素材,完成轻量级BIM模型绘制,模型细度达到LOD200。仿真漫游。如图 17所示。

图 17 室内建模
3.3. BIM空间模型/拓扑模型
使用CAD图纸、人工测绘、摄影扫描等多种模式构建医院空间模型。如图 18所示。

图 18 BIM空间模型/拓扑模型
- 数字孪生可视化大屏展示系统
4.1. 数字孪生大屏
数字孪生引擎结合BI指标展示,构建3D数字孪生可视化大屏。如图 19 数字孪生大屏所示。

图 19 数字孪生大屏
4.2. 综合指数指标
全院主要指标汇总专版,主要包括:医院简介、医院专家统计、医院地址、天气、建筑设施、安防监控和停车场等。如图 20所示。

图 20 综合 指数指标
4.3. 设备安全指标
设备安全专版,主要包括:设备数量、设备状态运行统计、设备运行状态、设备告警趋势、设备安全工单、设备工单占比、设备巡检执行跟踪和今日巡航任务等。如图 21所示。

图 21 设备安全指标
4.4. 安防管理指标
安防管理专版,主要包括:设备在线监控、安全设备运行监控、24小时客流分析、客流量统计、安保人员在岗情况、摄像头界面和区域以及告警等。如图 22所示。

图 22 安全管理指标
4.5. 能耗管理指标
能耗管理专版,主要包括:今日能耗展示、能源趋势监控、本月能耗展示、今日能耗展示、今日能耗建议、能耗设备统计、科室实时能耗和负载预测曲线等。如图 23所示。

图 23 能耗管理指标
4.6. 停车场****管理指标
停车场管理专版,主要包括:实时车位数、高峰进出车辆统计、停车压力指数和实时车辆统计,如图 27所示。

图 27 停车场管理指标
4.7. 医废管理指标
医废管理专版,主要包括:医废预警概览、近六个月预警趋势统计、今日科室医废产量、转运工作量Top5、近七天医废收集总量、库 存医废检测、医废转移追溯.
4.8. 危化品管理指标
危化品管理专版,主要包括:重点监测对象、危化品预警分析、危化品预警列表、安全管控措施、毒麻药品领用记录top5、危化品库存统计、运输追溯。
4.9. 固定资产管理指标
固定资产管理专版,主要包括:固定资产总值、资产价值分布、资产分类价值、资产价值分类、固定资产总数、资产数量分布、设备分类数量和设备数量分类,如图 28所示。

图 28 固定资产管理指标
4.10. 消防管理指标
消防管理专版,主要包括:消防物资概览、消防报警统计、消防告警动态监测、消防运营分析、今日值班人员、实时监控、消防安全培训、应急预案、液位、水压、电器线路温度、用电环境温度、燃气浓度、剩余电流、电压、烟雾浓度、无线用电设备剩余电量、信号强度、功率、烟感探测器、人员在离岗、烟雾报警、火点报警、无证上岗、灭火器遗失、通道占用、车辆违停。
4.11. 工单管理指标
工单管理专版,主要包括:工单详情、设备工单数量、工单分布、工单质量和工单数量统计,如图 29所示。

图 29 工单管理指标
4.12. 门禁管理指标
门禁管理专版,主要包括:门禁概览、运行状态、出入记录、报警提示、故障提示、异常信息、管理日志、异常处理、系统巡检、使用情况、陪护人员管控、患者统计。
4.13. 巡检管理指标
巡检管理专版,主要包括:实施巡检数、实时巡检状态、任务统计、分类任务、巡检计划和巡检数量统计,如图 30所示。

图 30 巡检管理分析
4.14. 消毒与循环物品管理指标
消毒与循环物品管理专版,主要包括:灭菌合格率、消毒剂消耗量、消毒剂使用次数、医院感染发生率、感染类型分析、循环物品清洁度、循环物品使用次数、损坏率。
4.15. 被服台账管理指标
被服台账管理专版,主要包括:电子台账、被服下发、被服回收、统计查询、库存情况、洗涤次数、破损率、采购情况、盘点情况、库存预警、质量管理、能源消耗、环境影响。
4.16. 餐饮膳食管理指标
餐饮膳食管理专版,主要包括:就餐人数统计、餐饮收入统计、营养分析、食谱管理、原料库存管理、食品安全监控、满意度调查。
4.17. 电梯管理指标
电梯管理专版,主要包括:电梯运行状态、使用率、承载人数统计、运行次数统计、故障率统计、报警率统计、维修保养情况、能源消耗统计。
4.18. 保洁管理指标
保洁管理专版,主要包括:保洁人员数量、排版情况、区域分布图、任务完成情况、工作质量评价、用品消耗情况、卫生检查、投诉情况、消毒杀菌记录、环境卫生监测数据。
4.19. 物资管理指标
物资管理专版,主要包括:库存总量、分类情况、采购数据、库存周转率、库存预警线、使用情况、消耗情况、成本管理、报废情况、使用效益评估、领用情况、回收与再利用情况、进口物资占比、高值 耗材使用情况、低值易耗品消耗情况。
4.20. 会议管理指标
会议管理专版,主要包括:实时会议室、会议数量、部门会议统计、基本信息、会议预约列表、进行中会议。如图 31所示。

图 31 会议管理指标
4.21. 运送管理指标
运送管理专版,主要包括:运送物品总量、物品分类情况、人员数量、及时率、成本计算、运输方式、风险控制、质量评价、任务完成情况、患者转运情况、医疗设备运输、药品运输。
4.22. 一站式服务指标
一站式服务中心专版,主要包括:运维报修工单信息和巡检信息等指标信息。如图 24所示。

图 24 一站式服务指标
4.23. 异常告警信息
即时告警信息,当监测指标出现异常时,在大屏实时提醒。如图 25所示。

图 25 异常告警信息
4.24. 指标数据计算
通过即时运算,将业务数据转换为实时指标数据,形成指标结果集。如图 26所示。

图 26 指标数据计算
4.25. 指标数据对接
通过WebAPI方式对接数据中心各类业务数据。如图 27所示。

图 27 指标数据对接
- 数字孪生可视化大屏交互场景
5.1. 模型操作
用户可以在BIM大屏上控制视角,对建筑、楼宇、区域等模型进行360度的自由旋转。通过简单的拖拽和触摸,观察医院的任何一个角度和细节;通过滚动鼠标或触摸屏幕来缩小或放大模型。如图 28所示。

图 28 模型操作
5.2. 属性查看
呈现出医院建筑和设备的3D模型,并列出各个建筑和设备构件的属性信息,例如查看房屋建筑、医疗设备的详细属性,包括材料、尺寸、重量、价格、耐火等级等参数。如图 29所示。

图 29 属性查看
5.3. 3D漫游
用户可以在BIM大屏上控制视角,进行3D空间的自由漫游。通过简单的点击和拖拽,用户可以观察医院的各个角落和内部构造;选择逐层浏览模式,从顶层开始,沿着楼层逐层深入,自动浏览医院的每一层;选择某些设备进行互动。例如,点击病房内的空调风口,可以显示当前温度和湿度;规划从起点到终点的路径,例如从门诊到某间病房的路径。在规划路径时,可以设定一些限制条件,如只走楼梯、避开某些区域等,实现室内导航。如图 30所示。

图 30 3D漫游
5.4. 量房和测量
BIM大屏可 以呈现出医院建筑的2D或3D模型。通过简单的点击和拖拽,用户可以指定量房的起点和终点,系统可以自动计算出量房的长度、宽度、高度等信息。提供批量测量功能,可以一次性指定多个测量点,自动计算出参数。如图 31所示。

图 31 量房和测量
5.5. 标记和注释
用户可以选择标记功能,对医院建筑模型中的特定区域或构件进行标记和注释。通过简单的点击和拖拽,将标记移动到所需位置,并添加文本、图片或视频等注释信息;支持批量标记,为多个构件添加相同的标记。以数据面板形式展示设备的各个数据,例如直观了解楼宇的用水量。如图 32所示。

图 32 标记和注释
5.6. 空间切换
在BIM大屏的顶部或底部,可以设置多个楼层切换按钮,每个按钮对应不同的楼层。用户可以通过层级导航点击相应的按钮,快速切换到该楼层的视图。还可以设置一个楼层选择下拉菜单。用户可以在下拉菜单中选择想要查看的楼层,BIM大屏会自动切换到该楼层的视图。如图 33所示。

图 33 空间切换
5.7. 实时告警
当监测到异常数据或故障时,大屏可以立即发出告警提示,点击告警信息,可以自动定位故障位置,展示相应的故障信息和处理建议;并提供紧急处理功能,例如,当火灾发生时,大屏可以自动联动消防系统 ,并展示相应的紧急处理建议和逃生路线。如图 34所示。

图 34 实时告警
5.8. 反向控制
用户通过操作界面反向控制医院的设备,例如反向控制灯光的开关,空调的温度;当操作反向控制系统时,BIM大屏可以实时显示操作结果和反馈信息。并可以接入医院的安全监控系统,当出现异常情况或安全隐患时,大屏可以自动报警。如图 35所示。

图 35 反向控制
5.9. 热力图
地图场景中可呈现各个地图点的温湿度等信息,如气象监测;园区场景除监测天气,也可用于显示设备、房间的温湿度等,用来分析孪生体的状态,以便及时预警。如图 36所示。

图 36 热力图
5.10. 电梯运行状态
可将建筑做透明处理,从而更加直观地展示电梯轿厢在建筑中的空间位置、实时的动态运行过程(当前楼层及运行方向等),同时可调取轿厢内的监控视频查看电梯内的实时情况,以便发生故障或异常时及时进行处理。如图 37所示。

图 37 电梯运行状态
5.11. 显示轨迹
在BIM大屏上可以使用点位拾取获得固定轨迹。轨迹图形实时更新显示数据,例如患者的行动轨迹、物流运输轨迹等。并可以同时展示多个轨迹图形,例如多个患者的行动轨迹、多个物流运输轨迹等。如图 38所示。

图 38 显示轨迹
5.12. 自定义逻辑线
展示园区内某栋建筑内部所有摄像头设备与终端显示器之间的关联关系,方便监测是否所有的监控设备都接入终端;监测设备间的电路连接关系,方便日常检修、排除故障。如图 39所示。

图 39 自定义逻辑线
5.13. 孪生体变色
当某个参数或指标超过预定范围时,孪生体可以变成红色或黄色等醒目的颜色来提示用户;在BIM大屏上可以同时展示多个孪生体,每个孪生体代表一个患者、一台设备或一个监测点等。例如按不同颜色区分科室状态。如图 40所示。

图 40 孪生体变色
5.14. 显示视频融合
适用于对应急处理响应要求比较高的场景,方便快读查看到现场实时监控画面,以便采取应急措施。如火灾救急等应用场景。如图 41所示。

图 41 显示视频融合
5.15. 场景控制
用户可以通过简单的点击或滑动操作,在不同的场景模式之间进行切换,同时,场景之间的切换也可以通过预设进行,例如当某个数据超过预定值时自动切换到相应的紧急 处理场景。各种数据以可视化的形式呈现,例如将医疗设备使用情况、病患人数以图表展示。如图 42所示。

图 42 场景控制
5.16. 时间轴
在BIM大屏上展示一条时间轴,将医院的历史、现状和未来规划串联在一起。可以以时间为顺序,展示医院不同时期的关键事件、决策和成果等。通过播放时间轴,展示时间推进的模拟过程,适应于任何有时间维度推进需求的场景。如图 43所示。

图 43 时间轴
5.17. 单元格数据管理
当孪生体是由某一类单元格组成时,例如楼宇是由房间单元组成,货架是储物格单元组成。可以通过孪生体面板,以二维表格的形式,查看其内部单元的信息,并可对单元信息进行分类查询。如图 44所示。

图 44 单元格数据管理
5.18. 盲区分析
用于查看摄像头的视野覆盖范围。如图 45所示。

图 45 盲区分析
- 荣家厚勤数字孪生webgl对外标准接口规范
6.1. 概述
本文主要介绍数字孪生webgl产品目前提供几大内置接口的标准规范,在数据接入时,可以直接按照字段要求推送至系统中。主要包括资产数据、性能数据、告 警数据、图表数据的接 入格式、方法等内容,详细内容见以下章节。
6.2. 资产数据接口
6.2.1. 批量更新或保存资产数据
6.2.2. 通过业务主键批量删除对象
6.2.2.1. 接口描述
资产设备的下架和删除,可以通过调用通过传业务主键的方式删除设备,每次可以传多个值,按照格式传值,可以将数字孪生系统 系统中的设备整条信息删除。
6.2.2.2. 接口调用方法
接口请求方式:POST
认证方式:无认证
请求url地址:http://{IP}:{PORT}/thing/provider/rest/deleteCis
请求参数说明
| *参数名称* | *必选/可选* | *参数类型* | *参数说明* |
|---|---|---|---|
| 无参数名直接传值数据 | true | List<List<String>> | 孪生体ID组成的数组 |
请求示例
[
[
"门禁1"
],
[
"门禁2"
]
]
返回参数
| *返回值名称* | *返回值类型* | *返回值说明* |
|---|---|---|
| code | Integer | 请求结果状态码-1表示成功,500表示失败 |
| data | String | 本次推送结果详情 |
| success | Boolean | 请求结果是否成功 |
返回示例
{
"code": -1,
"data": {
"delete": [
[
"门禁1"
],
[
"门禁2"
]
]
},
"success": true
}
6.2.3. 通过单个属性信息查询 CI
6.2.3.1. 接口描述
在资产更新时,通常需要查询系统中某个孪生体分类中某个孪生体详细的信息,此时可 以使用如下接口指定查询分类和查询名称及查询值,准确查询到想要的数据。
6.2.3.2. 接口调 用方法
接口请求方式:POST
认证方式:无认证
请求 url 地址:http://{IP}:{PORT}/thing/provider/rest/getByAttr
请求参数说明
| *参数名称* | *必选/可选* | *参数类型* | *参数说明* |
|---|---|---|---|
| attrName | true | String | 需要查询的属性名称 |
| attrValue | true | String | 需要查询的属性名称对应的值 |
| className | true | String | 需要查询的指定分类的名称 |
请求示例
{
"attrName": "孪生体ID",
"attrValue": "门禁01",
"className": "门禁设备"
}
返回参数
| *返回值名称* | *返回值类型* | *返回值说明* |
|---|---|---|
| code | Integer | 请求结果状态码-1表示成功,500表示失败 |
| data | JSONObject | 仅返回第一条匹配的孪生体信息 |
| success | Boolean | 请求结果是否成功 |
返回示例
{
"code": -1,
"data": {
"classId": 8734830748950277,
"ciCode": "8717362404510748",
"hashCode": 1247965298,
"ciPrimaryKey": "[\"门禁01\"]",
"time": 20220222115540,
"id": 8717362404517738,
"object": {
"_TYPE_": "STANDALONEDEVICE",
"_DATASOURCES_": "WEBEDIT",
"名称": "侧门门禁",
"孪生体型号": "海康_人脸识别门禁1",
"_ANGLE_": "0",
"孪生体ID": "门禁01",
"_SIZE_": "[]",
"_MODELTYPE_": "Thing",
"空间所属": "B23A_PARK",
"_UUID_": "0F8009FC-7289-4ADE-AAAA-8D775618CA82",
"_SCALE_": "[0.957,0.979,1.143]",
"标签": "反向控制",
"_OFFSET_": "[-1.572,1.65,2.806]",
"_DATAFROM_": "WEBEDIT",
"_MODELID_": "3222e24ae67c4a5399b4af5578e796e3",
"_VERSION_": "0"
}
},
"success": true
}
6.2.4. 根据孪生体分类名称分页查询所有孪生体信息
6.2.4.1. 接口描述
在资产更新时,除了每个孪生体属性信息单独查询,还可以根据孪生体分类名称分页查 询孪生体数据。
6.2.4.2. 接口调用 方法
接口请求方式:POST
认证方式:无认证
请求 url 地址:http://{IP}:{PORT}/thing/provider/rest/getByAttrs
请求参数说明
| *参数名称* | *必选/可选* | *参数类型* | *参数说明* |
|---|---|---|---|
| pageNum | false | Integer | 分页查询的第几页(默认查询第一页) |
| pageSize | false | Integer | 每页查询多少条数据(默认每页查询10条数据) |
| classNames | true | java List\<String\> | 要查询的孪生体分类 |
| attrCdts | true | java List<Map<String,String>> | 属性集合 |
请求示例
{
"pageNum": 1,
"pageSize": 10,
"classNames": ["门禁设备"],
"attrCdts":[
{
"key": "孪生体型号",
"value": "海康_人脸识别门禁1",
"optType": 1
}
]
}
返回参数
| *返回值名称* | *返回值类型* | *返回值说明* |
|---|---|---|
| code | Integer | 请求结果状态码-1表示成功,500表示失败 |
| data | JSONObject | 返回匹配的孪生体信息 |
| success | Boolean | 请求结果是否成功 |
返回示例
{
"code": -1,
"data": [
{
"classId": 8734830748950277,
"ciCode": "8717362404510748",
"hashCode": 1247965298,
"ciPrimaryKey": "[\"门禁01\"]",
"time": 20220222115540,
"id": 8717362404517738,
"object": {
"_TYPE_": "STANDALONEDEVICE",
"_DATASOURCES_": "WEBEDIT",
"名称": "侧门门禁1",
"孪生体型号": "海康_人脸识别门禁1",
"_ANGLE_": "0",
"孪生体ID": "门禁01",
"_SIZE_": "[]",
"_MODELTYPE_": "Thing",
"空间所属": "B23A_PARK",
"_UUID_": "0F8009FC-7289-4ADE-AAAA-8D775618CA82",
"_SCALE_": "[0.957,0.979,1.143]",
"标签": "反向控制",
"_OFFSET_": "[-1.572,1.65,2.806]",
"_DATAFROM_": "WEBEDIT",
"_MODELID_": "3222e24ae67c4a5399b4af5578e796e3",
"_VERSION_": "0"
}
},
{
"classId": 8734830748950277,
"ciCode": "8717362404510749",
"hashCode": 1247965299,
"ciPrimaryKey": "[\"门禁02\"]",
"time": 20220222115540,
"id": 8717362404517739,
"object": {
"_TYPE_": "STANDALONEDEVICE",
"_DATASOURCES_": "WEBEDIT",
"名称": "侧门门禁2",
"孪生体型号": "海康_人脸识别门禁1",
"_ANGLE_": "0",
"孪生体ID": "门禁02",
"_SIZE_": "[]",
"_MODELTYPE_": "Thing",
"空间所属": "B23A_PARK",
"_UUID_": "0F8009FC-7289-4ADE-AAAA-8D775618CA82",
"_SCALE_": "[0.957,0.979,1.143]",
"标签": "反向控制",
"_OFFSET_": "[-1.572,1.65,2.806]",
"_DATAFROM_": "WEBEDIT",
"_MODELID_": "3222e24ae67c4a5399b4af5578e796e3",
"_VERSION_": "0"
}
}
],
"success": true
}
6.3. 数据接口
6.3.1. 孪生体数据推送
6.3.1.1. 接口描述
该接口用于通过孪生体分类和属性创建或更新孪生体数据
6.3.1.2. 接口调用方法
接口请求方式:POST
认证方式:无认证
请求 url 地址:http://{IP}:{PORT}/thing/provider/rest/saveOrUpdateCiBatch
请求参数说明
| *参数名称* | *必选/可选* | *参数类型* | *参数说明* |
|---|---|---|---|
| cilist | true | java List<Map<String,Object>> | 推送孪生体数据的详细信息 |
| className | true | String | 孪生体分类名称 |
| updateClassDef | false | Boolean | 是否更新分类定义,当推送数据的属性未在分类中时,true则自动创建该属性,false则不更新分类定义 |
| returnSucessPks | true | Boolean | 保存成功后是否返回孪生体ID,true则返回保存成功的孪生体ID,false则返回成功或失败数量的报告 |
请求示例
{
"cilist": [
{
"孪生体ID": "班车01",
"名称": "班车01",
"空间所属":"数字谷",
"孪生体型号":"公交车_公交车",
"_OFFSET_":"[-74.95604733,-0.08903935,42.97785232]",
"_DATAFROM_":"WEBEDIT",
"_DATASOURCES_":"WEBEDIT",
"_SCALE_":"[1,1,1]",
"_ANGLE_":"[90,0,0]",
"_EDITTYPE_":"STANDALONEDEVICE"
}
],
"className": "班车",
"updateClassDef": false,
"returnSucessPks": false
}
返回参数
| *返回值名称* | *返回值类型* | *返回值说明* |
|---|---|---|
| code | Integer | 请求结果状态码-1表示成功,500表示失败 |
| data | String | 本次推送结果详情 |
| success | Boolean | 请求结果是否成功 |
返回示例
{
"code": -1,
"data": "本次保存分类【设备】下孪生体数据,总数【2】;成功【2】,失败【0】,忽略【0】;新增【2】,更新【0】。",
"success": true
}
6.3.2. 性能数据推送
6.3.2.1. 接口描述
该接口用于为系统内孪生体推送性能数据。
6.3.2.2. 接口调用方法
接口请求方式:POST
认证方式:无认证
请求 url 地址:http://{IP}:{PORT}/thing/provider/rest/monitor/dynamics
请求参数说明
| *参数名称* | *必选/可选* | *参数类型* | *参数说明* |
|---|---|---|---|
| twinID/twinCode | true | String | 孪生体ID/CI Code 两个参数,二选一即可 |
| metric | true | String | 指标名称 |
| val | false | String | 指标值,当指标值为字符串时使用val,与value二选一 |
| value | false | Double | 指标值,当指标值为数字类型时使用value,与val二选一 |
| unit | false | String | 指标值的单位 |
请求示例
[
{
"twinID": "设备002",
"metric": "开关状态",
"val": "开"
}
]
返回参数
| *返回值名称* | *返回值类型* | *返回值说明* |
|---|---|---|
| code | Integer | 请求结果状态码-1表示成功,500表示失败 |
| data | String | 本次推送结果详情 |
| success | Boolean | 请求结果是否成功 |
返回示例
{
"code": -1,
"data": true,
"success": true
}
6.3.3. 告 警数据推送
6.3.3.1. 接口描述
该接口用于保存或更新告警数据。如需更改已有告警数据的孪生体告警信息,必须具备twinID/twinCode、sourceAlertKey、sourceIdentifier参数来锁定孪生体及其告警指标。
6.3.3.2. 接口调用方法
接口请求方式:POST
认证方式:无认证
请求 url 地址:http://{IP}:{PORT}/thing/provider/rest/monitor/alarms
请求参数说明
| *参数名称* | *必选/可选* | *参数类型* | *参数说明* |
|---|---|---|---|
| twinID/twinCode | true | String | 孪生体ID/CI Code 两个参数,二选一即可 |
| severity | true | Integer | 告警等级 |
| status | true | Integer | 告警状态:1表示开启,2表示关闭,11表示已处理 |
| sourceAlertKey | true | String | 指标名称 |
| summary | true | String | 告警信息 |
| sourceIdentifier | true | String | 事件源的唯一标识 |
| lastOccurrence | true | String | 告警最后一次发生时间,例子:2020-07-29 09:33:06 |
请求示例
[
{
"twinID": "设备001",
"severity": 1,
"status": 1,
"sourceAlertKey": "CPU使用率",
"summary": "CPU使用率超过90%,已连续发生超过3次",
"sourceIdentifier": "xxx",
"lastOccurrence": "2020-07-29 09:33:06"
}
]
返回参数
| *返回值名称* | *返回值类型* | *返回值说明* |
|---|---|---|
| code | Integer | 请求结果状态码-1表示成功,500表示失败 |
| data | String | 本次推送结果详情 |
| success | Boolean | 请求结果是否成功 |
返回示例
{
"code": -1,
"data": true,
"success": true
}