Proxima 问题排查方法【常见接口请求篇】
2021-07-23 by uino 152 Proxima

打开浏览器,F12 调出浏览器调试工具
进入 Proxima 场景加载的过程中,在 Network 选项卡下我们可以观察到许多网络请求

0.png

了解观察一些常见的请求接口,有利于我们在项目中更好的发现和排查问题

一. Proxima 后台接口

1. 获取孪生体场景树
getDownDataChainByTerm

在 Proxima 里,孪生体数据以场景树的方式进行组织管理
例如:

image.png

如上的场景树图对应于孪生体管理里的孪生体数据
图片1.png

在 Proxima 里通过 getDownDataChainByTerm 接口查询一个场景下的孪生体树状结构,如下图所示

图片2.png

通过查看接口返回的数据可以观察到每一个孪生体的数据,例如:

_ID_: 对应孪生体的编号
_NAME_: 对应孪生体的名称
_PARENT_: 对应孪生体所属父级
DATA: 对应孪生体所有的台账属性数据

如果发现场景中有如下类型的问题,可以考虑排查该接口返回的数据是否完整:
(1) 场景里有孪生体的丢失,例如:
房间里应该有某某设备,但进入场景后没有,控制台通过 ThingJS Query 也查询不到
(2)孪生体对象的属性有丢失,例如:
对孪生体添加了一些属性数据但是在孪生体面板上没有该属性,控制台通过 ThingJS Query 到对象后查看 userData/DATA 下的属性也不全
通过设备摆放添加的孪生体的位置都在 [0,0,0] 原点

2.根据场景id获取园区CI数据
getCiByParent

image.png

3. 获取园区场景路径
getSourcePath

图片3.png

该接口返回园区场景在 Proxima 服务器上的 URL 地址
我们可以将返回结果的 data/REALURL 中的地址单独复制出来(注意去掉 .tjs 后缀),在 ThingJS 在线开发 单独查看场景,例如:

// ThingJS 在线开发加载场景
var app = new THING.App({
    url: 'http://10.100.42.32:1662/thing/rsm/GalileoResource/20210719/f007bdaa-9844-4083-a709-a9893739bc34',
});


// 加载场景后执行 
app.on('load', function (ev) {
    var campus = ev.campus;
    console.log('after load ' + campus.id);
    // 切换层级到园区
    app.level.change(campus);
});

通过这种方式可以单独排查园区场景本身是否有问题。

如果在线开发加载不了上述的 url 地址,那可以把带 .tjs 的地址复制到浏览器,将 tjs 文件下载下来,再上传到 ThingJS 在线开发进行观察。

4. 获取场景所需的产品库信息
getProductlib

图片4.png

该接口返回场景所需要的模型库信息,其中:

REALURL:表示模型在 Proxima 服务器上的 url 
indexJson:包含了模型包围盒,面数等信息

也可以从具体某个模型信息中复制出 URL 地址,在 ThingJS 在线开发 单独查看,例如:

var app = new THING.App();
var obj = app.create({
    type: 'Thing',
    url: 'http://10.100.42.32:1662/thing/rsm/product/modelItems/webgl/01BD0A9484D54718AFCB39BB6E487D67', // 模型地址 
    position: [0, 0, 0], // 世界坐标系下的位置
    complete: function (ev) {
        console.log('面数: ' + ev.object.node.getFacesNumber());
        console.log('包围盒大小: ' + ev.object.orientedBoundingBox.size);
  
        app.camera.fit(ev.object);
    }
});

通过这种方式可以单独查看某个模型的面数,包围盒大小等信息

5. 获取配置管理

queryConfigure

图片5.png
通过传入不同的请求参数获取相应的配置数据(如 孪生体集合/图层/业务/配饰/面板……)

6. 监控

getNewMonitor

图片6.png

该接口将返回推送到孪生体对象的监控数据
如果监控信息面板、取监控路径的配饰、或一些配置了监控数据取值路径的图层或业务(比如 温场图、温度云图、照明业务、电梯业务、停车场业务等)没有相应的监控数据或者变化效果,可查看是否请求并返回了正确的监控数据

7. 告警

getAlarmInfo

图片7.png
该接口返回场景中的告警数据
如果告警信息面板 或 告警图表组件 没有相应的数据或数据没有更新,场景中开启告警没有效果
可查看是否请求该接口并返回正确数据


二. 资源请求

1.模型库模型
加载场景的时候,如果模型库中的模型缺失,控制台中会有如下报错
image.png
解决方法:
对于 Proxima 3.X 的版本,联网环境下可以在 模型管理->模型库->同步模型
image.png
如果没有 联网环境 或 2.X 版本,需要去 uModel 下载该场景的产品库,在模型上传里上传更新
image.png