Przeglądaj źródła

更改告警指示

liling 11 miesięcy temu
rodzic
commit
0022364930
1 zmienionych plików z 79 dodań i 5 usunięć
  1. 79 5
      main.html

+ 79 - 5
main.html

@@ -1322,6 +1322,7 @@
     });
     var sam0023;
     var modelsMap = {}
+    var modelsAlarmColorMap={};
     var MODEL_LOADED = 0; //模型是否加载完成
     var ALARM_DEVS = [];  //未提醒的告警设备,将在模型加载完成时提醒
     var OFFLINE_DEVS={};  //未接入设备列表
@@ -1367,6 +1368,42 @@
             "10006": "落布米数到达停机",
             "10008": "叫料停机"
         },
+        //告警指示灯颜色
+        AlarmColorTypeCode:{
+            "1": "ffff00", //黄色
+            "2": "ffff00",
+            "3": "ffff00",
+            "4": "ffff00",
+            "5": "ffff00",
+            "6": "ffff00",
+            "7": "ffff00",
+            "8": "ffff00",
+            "9": "ffff00",
+            "10": "ffff00",
+            "11": "ffff00",
+            "12": "ffff00",
+            "13": "ffff00",
+            "14": "ffff00",
+            "15": "ffff00",
+            "16": "ffff00",
+            "17": "ffff00",
+            "18": "ffff00",
+            "19": "ffff00",
+            "20": "ffff00",
+            "21": "ffff00",
+            "22": "ffff00",
+            "23": "ffff00",
+            "24": "ffff00",
+            "25": "ffff00",
+            "26": "ffff00",
+            "27": "ffff00",
+            "1000":"", //盘头比例低于20%
+            "1001":"", //盘头比例低于50%
+            "10001": "ff0000",
+            "10002": "ff0000",
+            "10006": "ff0000",
+            "10008": "ffff00"
+        },
         //停机原因类型
         StopType: {
             "stop1": "停经片停机",
@@ -1390,6 +1427,7 @@
                     if(this.PanAlarm[devcode]==null){
                         //还原设备状态
                         ChangeModelColor(devcode);
+                        ChangeModelAlarmState(devCode); //"00ff00" 绿色
                     }
                 }
                 return
@@ -1421,10 +1459,12 @@
                             var typeName = this.AlarmType[alarmInfo];
                             if (MODEL_LOADED == 1) {
                                 //机器告警提示
-                                ChangeModelColor(devcode, DEV_ALAR_COLOR, typeName)
+                                //ChangeModelColor(devcode, DEV_ALAR_COLOR, typeName)
+                                ChangeModelAlarmState(devcode,DataFill.AlarmColorTypeCode[alarmInfo]);
                             } else {
                                 //记录下来,等待模型加载完成时处理
-                                ALARM_DEVS.push(devcode + ">"+DEV_ALAR_COLOR+">" + typeName)
+                                //ALARM_DEVS.push(devcode + ">"+DEV_ALAR_COLOR+">" + typeName)
+                                ALARM_DEVS.push(devcode + ">"+DataFill.AlarmColorTypeCode[alarmInfo]+">" + typeName)
                             }
                         }
                         this.LastAlarmDevs[devcode]=1;
@@ -1464,7 +1504,9 @@
             }
             if(noAlarmDevs.length>0){
                 for (var i = 0; i < noAlarmDevs.length; i++) {
-                    ChangeModelColor(noAlarmDevs[i]) //还原设备的无告警状态
+                    //还原设备的无告警状态
+                    ChangeModelColor(noAlarmDevs[i]) 
+                    ChangeModelAlarmState(noAlarmDevs[i]) //00ff00
                 }
             }
         },
@@ -2324,6 +2366,7 @@
                         //设备已接入
                         if(OFFLINE_DEVS[devcode]!=null){
                             ChangeModelColor(devcode); //恢复原颜色
+                            ChangeModelAlarmState(devcode);//"00ff00"
                             OFFLINE_DEVS[devcode]=null;
                             console.log('设备上线:',devcode)
                         }
@@ -2331,6 +2374,7 @@
                         if(OFFLINE_DEVS[devcode]==null){
                             //设备未接入
                             ChangeModelColor(devcode,DEV_OFFLINE_COLOR);
+                            ChangeModelAlarmState(devcode);
                             OFFLINE_DEVS[devcode]=1
                             //console.log('离线设备:',devcode)
                         }
@@ -2424,10 +2468,23 @@
                     "minLod": 0.1,
                     "textColor": parseInt("0xffffffff")
                 };
-                options.pos = [xyz2[0] - 1.5, xyz2[1] - 3, 0]
+                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}
+                //创建指示灯标记
+                var alarmColorMarker = {
+                    "text":"●",
+                    "visible": true,
+                    "maxLod": 110,
+                    "minLod": 0.1,
+                    "textFontSize":14,
+                    "textColor": parseInt("0xffffff00") //透明色
+                }
+                alarmColorMarker.pos=[xyz2[0]+0.7, xyz2[1] - 3, 0]
+                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;
@@ -2435,7 +2492,8 @@
         if (ALARM_DEVS.length > 0) {
             for (var i = 0; i < ALARM_DEVS.length; i++) {
                 var s = ALARM_DEVS[i].split(">")
-                ChangeModelColor(s[0],s[1] , s[2]);
+                //ChangeModelColor(s[0],s[1] , s[2]);
+                ChangeModelAlarmState(s[0],s[1]);
             }
             ALARM_DEVS = [];//清除
         }
@@ -2578,6 +2636,22 @@
             }
         }
     }
+    //更改指示灯状态
+    async function ChangeModelAlarmState(name,color){
+        var iteminfo = modelsAlarmColorMap[name]
+        if (iteminfo == null) return
+        var colormarkPtr = iteminfo.itemPtr;
+        var alarmColorMarker = iteminfo.options;
+        if (color == null || color == "") {
+            if(OFFLINE_DEVS[name]==1) return; //离线设备无需处理
+            //还原为透明
+            alarmColorMarker["textColor"] = parseInt("0xffffff00");
+            player.Native.GisMarker.update(colormarkPtr, alarmColorMarker);
+            return;
+        }
+        alarmColorMarker["textColor"] = parseInt("0x"+color+"ff");
+        player.Native.GisMarker.update(colormarkPtr, alarmColorMarker);
+    }
 
     var LastClickObj = null;
     var openState = false;