Explorar o código

调整告警所示灯功能

liling hai 11 meses
pai
achega
573d104d43
Modificáronse 1 ficheiros con 99 adicións e 43 borrados
  1. 99 43
      main.html

+ 99 - 43
main.html

@@ -1413,39 +1413,39 @@
         },
         //告警指示灯颜色
         AlarmColorTypeCode: {
-            "1": "FF8000", //橙
-            "2": "FF8000",
-            "3": "FF8000",
-            "4": "FF8000",
-            "5": "FF8000",
-            "6": "FF8000",
-            "7": "FF8000",
-            "8": "FF8000",
-            "9": "FF8000",
-            "10": "FF8000",
-            "11": "FF8000",
-            "12": "FF8000",
-            "13": "FF8000",
-            "14": "FF8000",
-            "15": "FF8000",
-            "16": "FF8000",
-            "17": "FF8000",
-            "18": "FF8000",
-            "19": "FF8000",
-            "20": "FF8000",
-            "21": "FF8000",
-            "22": "FF8000",
-            "23": "FF8000",
-            "24": "FF8000",
-            "25": "FF8000",
-            "26": "FF8000",
-            "27": "FF8000",
-            "1000": "", //盘头比例低于20%
-            "1001": "", //盘头比例低于50%
-            "10001": "ff0000",
-            "10002": "ff0000",
-            "10006": "ff0000",
-            "10008": "FF8000"
+            "1": "FF0000",  //红
+            "2": "FF0000",
+            "3": "FF0000",
+            "4": "FF0000",
+            "5": "FF0000",
+            "6": "FF0000",
+            "7": "FF0000",
+            "8": "FF0000",
+            "9": "FF0000",
+            "10": "FFFF00", //黄色
+            "11": "FFFF00", //黄色
+            "12": "FFFF00", //黄色
+            "13": "FFFF00", //黄色
+            "14": "FFFF00", //黄色
+            "15": "FFFF00", //黄色
+            "16": "FFFF00", //黄色
+            "17": "FF0000", //红色
+            "18": "FF0000", //红色
+            "19": "FF0000", //红色
+            "20": "FF0000", //红色
+            "21": "FF0000", //红色
+            "22": "FF0000", //红色
+            "23": "FF0000", //红色
+            "24": "FF0000", //红色
+            "25": "FF0000",
+            "26": "FFFF00",
+            "27": "FFFF00",
+            "1000": "",         //盘头比例低于20%
+            "1001": "",         //盘头比例低于50%
+            "10001": "FFFF00",  //黄色
+            "10002": "FFFF00",  //黄色
+            "10006": "FFFF00",  //黄色
+            "10008": "FFFF00"   //黄色
         },
         //停机原因类型
         StopType: {
@@ -1470,7 +1470,7 @@
                     if (this.PanAlarm[devcode] == null) {
                         //还原设备状态
                         ChangeModelColor(devcode);
-                        ChangeModelAlarmState(devCode); //"00ff00" 绿色
+                        ChangeModelAlarmState2(devCode); //"00ff00" 绿色
                     }
                 }
                 return
@@ -1503,7 +1503,7 @@
                             if (MODEL_LOADED == 1) {
                                 //机器告警提示
                                 //ChangeModelColor(devcode, DEV_ALAR_COLOR, typeName)
-                                ChangeModelAlarmState(devcode, DataFill.AlarmColorTypeCode[alarmInfo]);
+                                ChangeModelAlarmState2(devcode, DataFill.AlarmColorTypeCode[alarmInfo]);
                             } else {
                                 //记录下来,等待模型加载完成时处理
                                 //ALARM_DEVS.push(devcode + ">"+DEV_ALAR_COLOR+">" + typeName)
@@ -1549,7 +1549,7 @@
                 for (var i = 0; i < noAlarmDevs.length; i++) {
                     //还原设备的无告警状态
                     ChangeModelColor(noAlarmDevs[i])
-                    ChangeModelAlarmState(noAlarmDevs[i]) //00ff00
+                    ChangeModelAlarmState2(noAlarmDevs[i]) //00ff00
                 }
             }
         },
@@ -2580,7 +2580,7 @@
                     //设备已接入
                     if (OFFLINE_DEVS[devcode] != null) {
                         ChangeModelColor(devcode); //恢复原颜色
-                        ChangeModelAlarmState(devcode);//"00ff00"
+                        ChangeModelAlarmState2(devcode);//"00ff00"
                         OFFLINE_DEVS[devcode] = null;
                         console.log('设备上线:', devcode)
                     }
@@ -2588,7 +2588,7 @@
                     if (OFFLINE_DEVS[devcode] == null) {
                         //设备未接入
                         ChangeModelColor(devcode, DEV_OFFLINE_COLOR);
-                        ChangeModelAlarmState(devcode);
+                        ChangeModelAlarmState2(devcode);
                         OFFLINE_DEVS[devcode] = 1
                         //console.log('离线设备:',devcode)
                     }
@@ -2610,6 +2610,18 @@
         player.Native.Camera.moveTo([-60.91624261330108, -39.68511717426356, 85.99570940739352], [-61.26059834308166, -0.225858934410347, -0.5930273740619612], [-0.007940809332449061, 0.9099266223396253, 0.41469324265623975], 1);
     }
 
+    function backMasterView180() {
+        if (AutoPlayer) {
+            const img = $("#autoplayer_btn").find("img");
+            img.attr("src", "image/auto3d_stop.png");
+            try {
+                player.Native.CameraAnimation.stop();
+            } catch (e) {
+            }
+        }
+        player.Native.Camera.moveTo([-61.71380071610987, 51.07810751258113, 79.71750535252107], [-61.26763429787266, -0.047500086249613105, -0.5366793501724771], [0.00735988539091022, -0.8433593320509241, 0.5372996083468254], 1);
+    }
+
     //1.创建RemotePlayer对象
     var player = new RemotePlayer({
         video: document.getElementById("EngineContent"), //绑定视频标签或图片标签
@@ -2676,6 +2688,7 @@
                 var xyz = await player.Native.ModelTree.calcItemAabb(tmp.item)
                 var xyz2 = [(xyz.aabb.max[0] + xyz.aabb.min[0]) * 0.5, (xyz.aabb.max[1] + xyz.aabb.min[1]) * 0.5, (xyz.aabb.max[2] + xyz.aabb.min[2]) * 0.5];
                 // 创建设备编号标记
+                /*
                 var options = {
                     "text": devItems[i].name.replace("C_", "") + "#",
                     "visible": true,
@@ -2686,8 +2699,10 @@
                 options.pos = [xyz2[0] - 1.5, xyz2[1] - 3, 0]
                 var markPtr = await player.Native.GisMarker.create(options);
                 player.Native.GisMarker.update(markPtr, options);
-                modelsMap[tmp.name] = {item: tmp.item, xyz: xyz2}
+                */
+                modelsMap[tmp.name] = {item: tmp.item, xyz: xyz2, rowno: rowItems[row].name.substr(1)}
                 //创建指示灯标记
+                /*
                 var alarmColorMarker = {
                     "text": "●",
                     "visible": true,
@@ -2700,6 +2715,7 @@
                 var colormarkPtr = await player.Native.GisMarker.create(alarmColorMarker);
                 player.Native.GisMarker.update(colormarkPtr, alarmColorMarker);
                 modelsAlarmColorMap[tmp.name] = {itemPtr: colormarkPtr, options: alarmColorMarker}
+                */
             }
         }
         //loadedcnt.innerText=totalcnt.innerText;
@@ -2708,7 +2724,7 @@
             for (var i = 0; i < ALARM_DEVS.length; i++) {
                 var s = ALARM_DEVS[i].split(">")
                 //ChangeModelColor(s[0],s[1] , s[2]);
-                ChangeModelAlarmState(s[0], s[1]);
+                ChangeModelAlarmState2(s[0], s[1]);
             }
             ALARM_DEVS = [];//清除
         }
@@ -2852,7 +2868,7 @@
         }
     }
 
-    //更改指示灯状态
+    //更改指示灯状态。需求变更,已废弃
     async function ChangeModelAlarmState(name, color) {
         var iteminfo = modelsAlarmColorMap[name]
         if (iteminfo == null) return
@@ -2868,7 +2884,33 @@
         alarmColorMarker["textColor"] = parseInt("0x" + color + "ff");
         player.Native.GisMarker.update(colormarkPtr, alarmColorMarker);
     }
-
+    //更改指示灯状态.版本2:更改设备标号牌旁边的指示灯模型
+    //绿灯为G 红灯为R 黄灯为Y
+    //如果没有告警和停机,显示绿灯另外2个隐藏
+    //CCD 叫料 停经片停机显示黄灯另外2个隐藏
+    //有故障和掉线二字的显示红灯,其他都显示黄灯
+    async function ChangeModelAlarmState2(name, color) {
+        color = color==null ? "" : color.toUpperCase();
+        var iteminfo = modelsMap[name]
+        if (iteminfo == null) return
+        var t = (color=="" ||color=="00FF00"||color=="FFFFFF")?"g":(color=="FF0000"?"r":"y");
+        var y_itemid = await player.Native.ModelTree.findItemByName(name+"Y",iteminfo.item,true,1)
+        var g_itemid = await player.Native.ModelTree.findItemByName(name+"G",iteminfo.item,true,1)
+        var r_itemid = await player.Native.ModelTree.findItemByName(name+"R",iteminfo.item,true,1)
+        player.Native.ModelTree.setItemVisible([y_itemid.item,g_itemid.item,r_itemid.item],false)
+        if(t=='g'){
+            player.Native.ModelTree.setItemVisible([g_itemid.item],true);
+            return;
+        }
+        if(t=='r'){
+            player.Native.ModelTree.setItemVisible([r_itemid.item],true);
+            return;
+        }
+        if(t=='y'){
+            player.Native.ModelTree.setItemVisible([y_itemid.item],true);
+            return;
+        }
+    }
     var LastClickObj = null;
     var openState = false;
     var dbClickTimer = null;
@@ -2993,7 +3035,21 @@
         //选中
         player.Native.ModelTree.setSelectItem(se.item);
         var calcInfo = await PlayerUtils.call(player.Native.ModelTree.calcItemAabb, se.item);
-        player.Native.Camera.moveToAabbWithDistance([calcInfo.localAabb.min, calcInfo.localAabb.max], 0.2, 21, 4);
+        console.log([calcInfo.localAabb.min, calcInfo.localAabb.max])
+        //调整目标对象的视角和角度
+        if(se.rowno%2==0){
+            //移动到目标并放大
+            player.Native.Camera.moveToAabbWithDistance([calcInfo.localAabb.min, [calcInfo.localAabb.max[0],calcInfo.localAabb.max[1],calcInfo.localAabb.max[2]-1]], 0.2, 5, 0.5);
+            //var c = await player.Native.Camera.currentParam();
+            //将视角调整为设备编号牌那一面
+            //有问题.....................
+            player.Native.Camera.rotateViewYaw(-180);
+
+        }else{
+            //backMasterView();
+            player.Native.Camera.moveToAabbWithDistance([calcInfo.localAabb.min, [calcInfo.localAabb.max[0],calcInfo.localAabb.max[1],calcInfo.localAabb.max[2]-1]], 0.2, 5, 0.5);
+        }
+        //player.Native.Camera.moveToAabbWithDistance([calcInfo.localAabb.min, calcInfo.localAabb.max], 0.2, 21, 4);
         name = name.replace("C_", "")
         $.getJSON(SERVER_URL + "/query/C_" + name, {}, function (res) {
             if (res.code == 500) {