Quellcode durchsuchen

低配F427 网页

liyi vor 8 Monaten
Ursprung
Commit
2af1755256

+ 348 - 86
f407/applications/html_h/channel_display.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: channel_display.js */
-/* 文件大小: 6362 字节 */
-/* 生成时间: 2025-09-16 05:47:15 */
+/* 文件大小: 19230 字节 */
+/* 生成时间: 2026-01-10 02:29:25 */
 /* 编码: utf-8 */
 #ifndef P_CHANNEL_DISPLAY_H
 #define P_CHANNEL_DISPLAY_H
@@ -21,160 +21,423 @@ const char *p_channel_display =
     "    channelAllList1 = [];\n"
     "    length = channel_power_infro.length\n"
     "    for (let j = 1; j < length; j++) {\n"
-    "        let alarm=channel_power_infro[j].alarm;\n"
-    "        let thr=channel_power_infro[j].thr;\n"
+    "        let alarm = channel_power_infro[j].alarm;\n"
+    "        let thr = channel_power_infro[j].thr;\n"
     "        num = channel_power_infro[j].info.type\n"
     "            // 创建一个新的列表项元素\n"
     "        const channelFormData1 = {\n"
     
     "        };\n"
     "        //自动生成通道名称列\n"
-    "        channelFormData1.productChName=\"CH\" + j\n"
-    "        //自动生成通道号\n"
-    "        channelFormData1.productChId=j\n"
+    "        channelFormData1.productChName = \"CH\" + j\n"
+    "            //自动生成通道号\n"
+    "        channelFormData1.productChId = j\n"
     
     "        // 开启延时\n"
-    "        channelFormData1.firingInterval=channel_power_infro[j].info.start_delay\n"
+    "        channelFormData1.firingInterval = channel_power_infro[j].info.start_delay\n"
     
     "        // 关闭延时\n"
-    "        channelFormData1.closeInterval=channel_power_infro[j].info.stop_delay\n"
-    "        channelFormData1.channel_power_infro=channel_power_infro[j];\n"
+    "        channelFormData1.closeInterval = channel_power_infro[j].info.stop_delay\n"
+    "        channelFormData1.channel_power_infro = channel_power_infro[j];\n"
     "        channelAllList1.push(channelFormData1);\n"
-    "        if(productTypeData.productType=='0'){\n"
+    "        if (productTypeData.productType == '0' || productTypeData.productType == '1') {\n"
     "            const channelFormData = {\n"
     
     "            };\n"
     
-    "            if(alarm.c_upper!=0){\n"
-    "                channelFormData.colorStyledl='color: red;font-weight: bold;'\n"
-    "            }else{\n"
-    "                channelFormData.colorStyledl=''\n"
+    "            if (alarm.l1_c_upper != 0) {\n"
+    "                channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "            } else {\n"
+    "                channelFormData.colorStyledl = ''\n"
     "            }\n"
-    "            if( alarm.p_upper!=0 ){\n"
-    "                channelFormData.colorStylegl='color: red;font-weight: bold;'\n"
-    "            }else{\n"
-    "                channelFormData.colorStylegl=''\n"
+    "            if (alarm.l1_p_upper != 0) {\n"
+    "                channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "            } else {\n"
+    "                channelFormData.colorStylegl = ''\n"
     "            }\n"
-    "            if( alarm.v_lower!=0){\n"
-    "                channelFormData.colorStyledy2='color: #ff00ff;font-weight: bold;'\n"
-    "            }else{\n"
-    "                channelFormData.colorStyledy2=''\n"
+    "            if (alarm.l1_v_lower != 0) {\n"
+    "                channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "            } else {\n"
+    "                channelFormData.colorStyledy2 = ''\n"
     "            }\n"
-    "            if( alarm.v_upper!=0){\n"
-    "                channelFormData.colorStyledy='color: red;font-weight: bold;'\n"
-    "            }else{\n"
-    "                channelFormData.colorStyledy=''\n"
+    "            if (alarm.l1_v_upper != 0) {\n"
+    "                channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "            } else {\n"
+    "                channelFormData.colorStyledy = ''\n"
     "            }\n"
-    "            if(alarm.w_upper!=0){\n"
-    "                channelFormData.colorStylehdl='color: red;font-weight: bold;'\n"
-    "            }else{\n"
-    "                channelFormData.colorStylehdl=''\n"
+    "            if (alarm.l1_w_upper != 0) {\n"
+    "                channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
+    "            } else {\n"
+    "                channelFormData.colorStylehdl = ''\n"
     "            }\n"
     "            //自动生成设备名称列\n"
     
     "            //自动生成通道名称列\n"
-    "            channelFormData.productChName=\"CH\" + j\n"
-    "            //自动生成通道号\n"
-    "            channelFormData.productChId=j\n"
-    "            //自动生成相序列\n"
-    "            channelFormData.productPhOrder=\"L1\"\n"
-    "            // 自动生成电压列\n"
-    "            var val = channel_power_infro[j].power[0].voltage / 10.0;\n"
-    "            channelFormData.productChVoltage=val\n"
+    "            channelFormData.productChName = \"CH\" + j\n"
+    "                //自动生成通道号\n"
+    "            channelFormData.productChId = j\n"
+    "                //自动生成相序列\n"
+    "            channelFormData.productPhOrder = \"L1\"\n"
+    "                // 自动生成电压列\n"
+    "            var val = channel_power_infro[j].power[0].voltage / 100.0;\n"
+    "            channelFormData.productChVoltage = val\n"
     
     "            // 自动生成电流列\n"
-    "            var val = channel_power_infro[j].power[0].current / 10.0;\n"
-    "            channelFormData.productChCurrent=val\n"
-    "            // 自动生成功率列\n"
-    "            var val = channel_power_infro[j].power[0].power / 1000.0;\n"
-    "            channelFormData.productChPower= val\n"
+    "            var val = channel_power_infro[j].power[0].current / 100.0;\n"
+    "            channelFormData.productChCurrent = val\n"
+    "                // 自动生成功率列\n"
+    "            var val = channel_power_infro[j].power[0].power / 100.0 / 1000.0;\n"
+    "            channelFormData.productChPower = val.toFixed(2)\n"
     
     
     "            // 自动生成频率列\n"
     "            var val = channel_power_infro[j].power[0].freq / 100.0;\n"
-    "            channelFormData.productChPowerFreq= val\n"
+    "            channelFormData.productChPowerFreq = val\n"
+    
+    
+    "            // 自动生成耗电量列\n"
+    "            var val = channel_power_infro[j].power[0].consump / 100.0;\n"
+    "            channelFormData.productChConsumption = val\n"
+    
+    
+    "            // 自动生成功率因数列\n"
+    "            // const factor_td = document.createElement('td');\n"
+    "            var val = channel_power_infro[j].power[0].factor / 100.0;\n"
+    "            channelFormData.productChPowerFactor = val\n"
+    
+    "            // 开启延时\n"
+    "            channelFormData.firingInterval = channel_power_infro[j].info.start_delay\n"
+    
+    "            // 关闭延时\n"
+    "            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay\n"
+    
+    
+    "            //通道状态\n"
+    "            channel_status = channel_power_infro[j].status\n"
+    "            channelFormData.productChStatus = channel_status\n"
+    "            channelFormData.channel_power_infro = channel_power_infro[j]\n"
+    "            channelAllList.push(channelFormData);\n"
+    "            // 三相进单项出\n"
+    "        } else if (productTypeData.productType == '4' || productTypeData.productType == '5') {\n"
+    "            var ph_id = channel_power_infro[j].info.ph_id;\n"
+    "            ph_id = ph_id > 0 ? ph_id - 1 : ph_id;\n"
+    "            const channelFormData = {\n"
+    
+    "            };\n"
+    "            if (ph_id == 0) {\n"
+    "                if (alarm.l1_c_upper != 0) {\n"
+    "                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledl = ''\n"
+    "                }\n"
+    "                if (alarm.l1_p_upper != 0) {\n"
+    "                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStylegl = ''\n"
+    "                }\n"
+    "                if (alarm.l1_v_lower != 0) {\n"
+    "                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledy2 = ''\n"
+    "                }\n"
+    "                if (alarm.l1_v_upper != 0) {\n"
+    "                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledy = ''\n"
+    "                }\n"
+    "                if (alarm.l1_w_upper != 0) {\n"
+    "                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStylehdl = ''\n"
+    "                }\n"
+    "            } else if (ph_id == 1) {\n"
+    "                if (alarm.l2_c_upper != 0) {\n"
+    "                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledl = ''\n"
+    "                }\n"
+    "                if (alarm.l2_p_upper != 0) {\n"
+    "                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStylegl = ''\n"
+    "                }\n"
+    "                if (alarm.l2_v_lower != 0) {\n"
+    "                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledy2 = ''\n"
+    "                }\n"
+    "                if (alarm.l2_v_upper != 0) {\n"
+    "                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledy = ''\n"
+    "                }\n"
+    "                if (alarm.l2_w_upper != 0) {\n"
+    "                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStylehdl = ''\n"
+    "                }\n"
+    "            } else if (ph_id == 2) {\n"
+    "                if (alarm.l3_c_upper != 0) {\n"
+    "                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledl = ''\n"
+    "                }\n"
+    "                if (alarm.l3_p_upper != 0) {\n"
+    "                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStylegl = ''\n"
+    "                }\n"
+    "                if (alarm.l3_v_lower != 0) {\n"
+    "                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledy2 = ''\n"
+    "                }\n"
+    "                if (alarm.l3_v_upper != 0) {\n"
+    "                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStyledy = ''\n"
+    "                }\n"
+    "                if (alarm.l3_w_upper != 0) {\n"
+    "                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
+    "                } else {\n"
+    "                    channelFormData.colorStylehdl = ''\n"
+    "                }\n"
+    "            }\n"
+    
+    
+    "            //自动生成设备名称列\n"
+    
+    "            //自动生成通道名称列\n"
+    "            channelFormData.productChName = \"CH\" + j\n"
+    "                //自动生成通道号\n"
+    "            channelFormData.productChId = j\n"
+    "                //自动生成相序列\n"
+    "            channelFormData.productPhOrder = \"L\" + channel_power_infro[j].info.ph_id;\n"
+    "            // 自动生成电压列\n"
+    "            var val = channel_power_infro[j].power[ph_id].voltage / 100.0;\n"
+    "            channelFormData.productChVoltage = val\n"
+    
+    "            // 自动生成电流列\n"
+    "            var val = channel_power_infro[j].power[ph_id].current / 100.0;\n"
+    "            channelFormData.productChCurrent = val\n"
+    "                // 自动生成功率列\n"
+    "            var val = channel_power_infro[j].power[ph_id].power / 100.0 / 1000.0;\n"
+    "            channelFormData.productChPower = val.toFixed(2)\n"
+    
+    
+    "            // 自动生成频率列\n"
+    "            var val = channel_power_infro[j].power[ph_id].freq / 100.0;\n"
+    "            channelFormData.productChPowerFreq = val\n"
     
     
     "            // 自动生成耗电量列\n"
-    "            var val = channel_power_infro[j].power[0].consump / 1000.0;\n"
-    "            channelFormData.productChConsumption=val\n"
+    "            var val = channel_power_infro[j].power[ph_id].consump / 100.0;\n"
+    "            channelFormData.productChConsumption = val\n"
     
     
     "            // 自动生成功率因数列\n"
     "            // const factor_td = document.createElement('td');\n"
-    "            // var val = channel_power_infro[j].power[0].factor / 100.0;\n"
+    "            var val = channel_power_infro[j].power[ph_id].factor / 100.0;\n"
+    "            channelFormData.productChPowerFactor = val\n"
     
     "            // 开启延时\n"
-    "            channelFormData.firingInterval=channel_power_infro[j].info.start_delay\n"
+    "            channelFormData.firingInterval = channel_power_infro[j].info.start_delay\n"
     
     "            // 关闭延时\n"
-    "            channelFormData.closeInterval=channel_power_infro[j].info.stop_delay\n"
+    "            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay\n"
     
     
     "            //通道状态\n"
     "            channel_status = channel_power_infro[j].status\n"
-    "            channelFormData.productChStatus=channel_status\n"
-    "            channelFormData.channel_power_infro=channel_power_infro[j]\n"
+    "            channelFormData.productChStatus = channel_status\n"
+    "            channelFormData.channel_power_infro = channel_power_infro[j]\n"
+    "            channelAllList.push(channelFormData);\n"
+    
+    "        } else if (productTypeData.productType == '6') {\n"
+    "            // 三相进两项出\n"
+    "            var ph_id = channel_power_infro[j].info.ph_id;\n"
+    "            ph_id = ph_id - 1;\n"
+    "            var ph_val = channel_power_infro[j].info.ph_val;\n"
+    "            ph_val = ph_val - 1;\n"
+    "            // 第一相数据\n"
+    "            // 自动生成电压列\n"
+    "            var channelFormData = {\n"
+    
+    "            };\n"
+    "            // l1_v_lower 电压低限  l1_v_upper 电压高先\n"
+    "            if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {\n"
+    "                channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {\n"
+    "                channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {\n"
+    "                channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {\n"
+    "                channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_w_upper != 0 || alarm.l2_w_upper != 0 || alarm.l3_w_upper != 0) {\n"
+    "                channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            //自动生成通道名称列\n"
+    "            channelFormData.productChName = \"CH\" + j\n"
+    "                //自动生成通道号\n"
+    "            channelFormData.productChId = j\n"
+    "                //自动生成相序列\n"
+    "            channelFormData.productPhOrder = \"L\" + (ph_id + 1)\n"
+    "                // 自动生成功率因数列\n"
+    "                // const factor_td = document.createElement('td');\n"
+    "            var val = channel_power_infro[j].power[ph_id].factor / 100.0;\n"
+    "            channelFormData.productChPowerFactor = val;\n"
+    "            // 开启延时\n"
+    "            channelFormData.firingInterval = channel_power_infro[j].info.start_delay\n"
+    "                // 关闭延时\n"
+    "            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay\n"
+    "                //通道状态\n"
+    "            channel_status = channel_power_infro[j].status\n"
+    "            channelFormData.productChStatus = channel_status\n"
+    "            var val = channel_power_infro[j].power[ph_id].voltage / 100.0;\n"
+    "            channelFormData.productChVoltage = val\n"
+    "                // 自动生成电流列\n"
+    "            var val = channel_power_infro[j].power[ph_id].current / 100.0;\n"
+    "            channelFormData.productChCurrent = val\n"
+    "                // 自动生成功率列\n"
+    "            var val = channel_power_infro[j].power[ph_id].power / 100.0 / 1000.0;\n"
+    "            channelFormData.productChPower = val.toFixed(2)\n"
+    "                // 自动生成频率列\n"
+    "            var val = channel_power_infro[j].power[ph_id].freq / 100.0;\n"
+    "            channelFormData.productChPowerFreq = val\n"
+    "                // 自动生成耗电量列\n"
+    "            var val = channel_power_infro[j].power[ph_id].consump / 100.0;\n"
+    "            channelFormData.productChConsumption = val\n"
+    "            channelFormData.channel_power_infro = channel_power_infro[j]\n"
+    "            channelAllList.push(channelFormData);\n"
+    "            // 第二相数据\n"
+    "            channelFormData = {\n"
+    
+    "            };\n"
+    "            // l1_v_lower 电压低限  l1_v_upper 电压高先\n"
+    "            if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {\n"
+    "                channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {\n"
+    "                channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {\n"
+    "                channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {\n"
+    "                channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            if (alarm.l1_w_upper != 0 || alarm.l2_w_upper != 0 || alarm.l3_w_upper != 0) {\n"
+    "                channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
+    "            }\n"
+    "            //自动生成通道名称列\n"
+    "            channelFormData.productChName = \"CH\" + j\n"
+    "                //自动生成通道号\n"
+    "            channelFormData.productChId = j\n"
+    "                //自动生成相序列\n"
+    "            channelFormData.productPhOrder = \"L\" + (ph_val + 1)\n"
+    "                // 自动生成功率因数列\n"
+    "                // const factor_td = document.createElement('td');\n"
+    "            var val = channel_power_infro[j].power[ph_val].factor / 100.0;\n"
+    "            channelFormData.productChPowerFactor = val;\n"
+    "            // 开启延时\n"
+    "            channelFormData.firingInterval = channel_power_infro[j].info.start_delay\n"
+    "                // 关闭延时\n"
+    "            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay\n"
+    "                //通道状态\n"
+    "            channel_status = channel_power_infro[j].status\n"
+    
+    "            channelFormData.productChStatus = channel_status\n"
+    "            var val = channel_power_infro[j].power[ph_val].voltage / 100.0;\n"
+    "            channelFormData.productChVoltage = val\n"
+    "                // 自动生成电流列\n"
+    "            var val = channel_power_infro[j].power[ph_val].current / 100.0;\n"
+    "            channelFormData.productChCurrent = val\n"
+    "                // 自动生成功率列\n"
+    "            var val = channel_power_infro[j].power[ph_val].power / 100.0 / 1000.0;\n"
+    "            channelFormData.productChPower = val.toFixed(2)\n"
+    "                // 自动生成频率列\n"
+    "            var val = channel_power_infro[j].power[ph_val].freq / 100.0;\n"
+    "            channelFormData.productChPowerFreq = val\n"
+    "                // 自动生成耗电量列\n"
+    "            var val = channel_power_infro[j].power[ph_val].consump / 100.0;\n"
+    "            channelFormData.productChConsumption = val\n"
+    "            channelFormData.channel_power_infro = channel_power_infro[j]\n"
     "            channelAllList.push(channelFormData);\n"
-    "        }else{\n"
     
+    
+    "        } else {\n"
+    "            // 三相进三相出\n"
     "            // 自动生成电压列\n"
-    "            for(let m = 0; m < channel_power_infro[j].power.length; m++){\n"
+    "            for (let m = 0; m < channel_power_infro[j].power.length; m++) {\n"
     "                const channelFormData = {\n"
     
     "                };\n"
-    "                if(alarm.c_upper!=0 || alarm.p_upper!=0 || alarm.v_lower!=0 || alarm.v_upper!=0 || alarm.w_upper!=0){\n"
-    "                    channelFormData.colorStyledy='color: red;'\n"
-    "                    channelFormData.colorStyledl='color: red;'\n"
-    "                    channelFormData.colorStylegl='color: red;'\n"
-    "                    channelFormData.colorStylehdl='color: red;'\n"
-    "                }else{\n"
-    "                    channelFormData.colorStyle=''\n"
+    "                // l1_v_lower 电压低限  l1_v_upper 电压高先\n"
+    "                if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {\n"
+    "                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'\n"
+    "                }\n"
+    "                if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {\n"
+    "                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'\n"
+    "                }\n"
+    "                if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {\n"
+    "                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'\n"
+    "                }\n"
+    "                if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {\n"
+    "                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'\n"
+    "                }\n"
+    "                if (alarm.l1_w_upper != 0 || alarm.l3_w_upper != 0 || alarm.l3_w_upper != 0) {\n"
+    "                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'\n"
     "                }\n"
+    
+    
     "                //自动生成设备名称列\n"
     "                //自动生成通道名称列\n"
-    "                channelFormData.productChName=\"CH\" + j\n"
-    "                //自动生成通道号\n"
-    "                channelFormData.productChId=j\n"
-    "                //自动生成相序列\n"
-    "                channelFormData.productPhOrder=\"L\"+(m+1)\n"
+    "                channelFormData.productChName = \"CH\" + j\n"
+    "                    //自动生成通道号\n"
+    "                channelFormData.productChId = j\n"
+    "                    //自动生成相序列\n"
+    "                channelFormData.productPhOrder = \"L\" + (m + 1)\n"
     
     "                // 自动生成功率因数列\n"
     "                // const factor_td = document.createElement('td');\n"
-    "                // var val = channel_power_infro[j].power[0].factor / 100.0;\n"
-    
+    "                var val = channel_power_infro[j].power[m].factor / 100.0;\n"
+    "                channelFormData.productChPowerFactor = val;\n"
     "                // 开启延时\n"
-    "                channelFormData.firingInterval=channel_power_infro[j].info.start_delay\n"
+    "                channelFormData.firingInterval = channel_power_infro[j].info.start_delay\n"
     
     "                // 关闭延时\n"
-    "                channelFormData.closeInterval=channel_power_infro[j].info.stop_delay\n"
+    "                channelFormData.closeInterval = channel_power_infro[j].info.stop_delay\n"
     
     
     "                //通道状态\n"
     "                channel_status = channel_power_infro[j].status\n"
     
-    "                channelFormData.productChStatus=channel_status\n"
+    "                channelFormData.productChStatus = channel_status\n"
     
-    "                var val = channel_power_infro[j].power[m].voltage / 10.0;\n"
-    "                channelFormData.productChVoltage=val\n"
+    "                var val = channel_power_infro[j].power[m].voltage / 100.0;\n"
+    "                channelFormData.productChVoltage = val\n"
     
     "                // 自动生成电流列\n"
-    "                var val = channel_power_infro[j].power[m].current / 10.0;\n"
-    "                channelFormData.productChCurrent=val\n"
-    "                // 自动生成功率列\n"
-    "                var val = channel_power_infro[j].power[m].power / 1000.0;\n"
-    "                channelFormData.productChPower= val\n"
+    "                var val = channel_power_infro[j].power[m].current / 100.0;\n"
+    "                channelFormData.productChCurrent = val\n"
+    "                    // 自动生成功率列\n"
+    "                var val = channel_power_infro[j].power[m].power / 100.0 / 1000.0;\n"
+    "                channelFormData.productChPower = val.toFixed(2)\n"
     
     
     "                // 自动生成频率列\n"
     "                var val = channel_power_infro[j].power[m].freq / 100.0;\n"
-    "                channelFormData.productChPowerFreq= val\n"
+    "                channelFormData.productChPowerFreq = val\n"
     
     
     "                // 自动生成耗电量列\n"
-    "                var val = channel_power_infro[j].power[0].consump / 1000.0;\n"
-    "                channelFormData.productChConsumption=val\n"
-    "                channelFormData.channel_power_infro=channel_power_infro[j]\n"
+    "                var val = channel_power_infro[j].power[m].consump / 100.0;\n"
+    "                channelFormData.productChConsumption = val\n"
+    "                channelFormData.channel_power_infro = channel_power_infro[j]\n"
     "                channelAllList.push(channelFormData);\n"
     "            }\n"
     
@@ -185,14 +448,13 @@ const char *p_channel_display =
     
     
     "    }\n"
-    "}\n"
-    
+    "}"
 ;
 
 // 文本数据大小(包括null终止符)
-const size_t p_channel_display_size = 6363;
+const size_t p_channel_display_size = 19231;
 
 // 文本长度(字符数)
-const size_t p_channel_display_length = 5928;
+const size_t p_channel_display_length = 18208;
 
 #endif /* P_CHANNEL_DISPLAY_H */

+ 32 - 16
f407/applications/html_h/data_js.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: data.js */
-/* 文件大小: 43628 字节 */
-/* 生成时间: 2025-09-16 05:47:16 */
+/* 文件大小: 44069 字节 */
+/* 生成时间: 2026-01-10 02:29:27 */
 /* 编码: utf-8 */
 #ifndef P_DATA_JS_H
 #define P_DATA_JS_H
@@ -49,7 +49,7 @@ const char *p_data_js =
     "        SUB_TYPE_PARAS_SNMP: len++,\n"
     "        SUB_TYPE_PARAS_NTP: len++,\n"
     "        SUB_TYPE_POWER_CONSUMER_CLEAR: len++,\n"
-    "        SUB_TYPE_SENSORE_SET: len++,\n"
+    "        SUB_TYPE_PH_CFG: len++,\n"
     "    }\n"
     "}();\n"
     "const PDU_TYPE = function() {\n"
@@ -432,17 +432,33 @@ const char *p_data_js =
     
     "    tmp = new DataView(bin, length);\n"
     
-    "    var val = tmp.getUint16(0, true);\n"
-    "    length += 2;\n"
+    "    var val = tmp.getUint32(0, true);\n"
+    "    length += 4;\n"
+    
+    "    this.l1_v_upper = (val & 0x1);\n"
+    "    this.l1_v_lower = (val & 0x2);\n"
+    "    this.l1_c_upper = (val & 0x4);\n"
+    "    this.l1_p_upper = (val & 0x8);\n"
+    "    this.l1_w_upper = (val & 0x10);\n"
+    
+    
+    "    this.l2_v_upper = (val & (1 << 8));\n"
+    "    this.l2_v_lower = (val & (1 << 9));\n"
+    "    this.l2_c_upper = (val & (1 << 10));\n"
+    "    this.l2_p_upper = (val & (1 << 11));\n"
+    "    this.l2_w_upper = (val & (1 << 12));\n"
+    
+    "    this.l3_v_upper = (val & (1 << 16));\n"
+    "    this.l3_v_lower = (val & (1 << 17));\n"
+    "    this.l3_c_upper = (val & (1 << 18));\n"
+    "    this.l3_p_upper = (val & (1 << 19));\n"
+    "    this.l3_w_upper = (val & (1 << 20));\n"
+    
+    
     
-    "    this.v_upper = (val & 0x1);\n"
-    "    this.v_lower = (val & 0x2);\n"
-    "    this.c_upper = (val & 0x4);\n"
-    "    this.p_upper = (val & 0x8);\n"
-    "    this.w_upper = (val & 0x10);\n"
-    "    this.ph_loss1 = (val & 0x00);\n"
-    "    this.ph_loss2 = (val & 0x00);\n"
-    "    this.ph_loss3 = (val & 0x00);\n"
+    "    this.ph_loss1 = (val & (1 << 24));\n"
+    "    this.ph_loss2 = (val & (1 << 25));\n"
+    "    this.ph_loss3 = (val & (1 << 26));\n"
     "    // this.v_upper = tmp.uint16_t(0, true);\n"
     "    // length += 1;\n"
     
@@ -1851,7 +1867,7 @@ const char *p_data_js =
     "    }\n"
     
     "    function _onerror(evt) {\n"
-    "        console.log(\"___ ws.onerror\");\n"
+    "      //  console.log(\"___ ws.onerror\");\n"
     "        //write_scr('<span style=\"color: red;\">ERROR:</span> '+ evt.data);\n"
     "    }\n"
     
@@ -1859,9 +1875,9 @@ const char *p_data_js =
 ;
 
 // 文本数据大小(包括null终止符)
-const size_t p_data_js_size = 43629;
+const size_t p_data_js_size = 44070;
 
 // 文本长度(字符数)
-const size_t p_data_js_length = 43546;
+const size_t p_data_js_length = 43987;
 
 #endif /* P_DATA_JS_H */

+ 65 - 39
f407/applications/html_h/display_data.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: display_data.js */
-/* 文件大小: 3721 字节 */
-/* 生成时间: 2025-09-16 05:47:24 */
+/* 文件大小: 5052 字节 */
+/* 生成时间: 2026-01-10 02:29:36 */
 /* 编码: utf-8 */
 #ifndef P_DISPLAY_DATA_H
 #define P_DISPLAY_DATA_H
@@ -10,44 +10,66 @@
 
 // 文本数据(UTF-8编码)
 const char *p_display_data = 
-    "function total_Infor(j, total_data,type) {\n"
-    "    initialTotalFormList=[];\n"
+    "function total_Infor(j, total_data, type) {\n"
+    "    initialTotalFormList = [];\n"
     "    len = total_data.length\n"
-    "        //显示总信息\n"
-    "    for (let i = 0; i <=len-1; i++) {\n"
+    "    let totalVoltageAll = 0.00;\n"
+    "    let totalCurrentAll = 0.00;\n"
+    "    let totalPowerAll = 0.00;\n"
+    "    let totalFrequencyAll = 0.00;\n"
+    "    let totalEnergyAll = 0.00;\n"
+    "    //显示总信息\n"
+    "    for (let i = 0; i <= len - 1; i++) {\n"
     "        num = i + 1\n"
     "        voltage = total_data[i].voltage.toFixed(2)\n"
     "        current = total_data[i].current.toFixed(2)\n"
     "        power = total_data[i].power\n"
-    "        power = power / 1000\n"
+    "        power /= 10\n"
+    "        power = power / 100.0\n"
     "        power = power.toFixed(3)\n"
     "        consump = total_data[i].consump.toFixed(2)\n"
-    "        // if (consump <= 0) {\n"
-    "        //     consump = 0\n"
-    "        // }\n"
-    "        // consump = consump / 1000\n"
-    "        // consump = consump.toFixed(3)\n"
+    "            // if (consump <= 0) {\n"
+    "            //     consump = 0\n"
+    "            // }\n"
+    "            // consump = consump / 1000\n"
+    "            // consump = consump.toFixed(3)\n"
     "        freq = total_data[i].freq.toFixed(2)\n"
-    "        if(type=='0'){\n"
-    "            initialFormData.totalVoltage=voltage ; // 总电压\n"
-    "            initialFormData.totalCurrent=current ; // 总电流\n"
-    "            initialFormData.totalPower=power;  // 总功率\n"
-    "            initialFormData.totalFrequency=freq; // 总频率\n"
-    "            initialFormData.totalEnergy=consump; // 总耗电量\n"
+    "        if (type == '0' || type == '1') {\n"
+    "            initialFormData.totalVoltage = voltage; // 总电压\n"
+    "            initialFormData.totalCurrent = current; // 总电流\n"
+    "            initialFormData.totalPower = power; // 总功率\n"
+    "            initialFormData.totalFrequency = freq; // 总频率\n"
+    "            initialFormData.totalEnergy = consump; // 总耗电量\n"
+    "			      initialFormData.threeType = \"\"; // 相序\n"
     "            break\n"
-    "        }else{\n"
+    "        } else {\n"
     "            const initialChFormData = {};\n"
-    "            initialChFormData.totalVoltage=voltage ; // 总电压\n"
-    "            initialChFormData.totalCurrent=current ; // 总电流\n"
-    "            initialChFormData.totalPower=power;  // 总功率\n"
-    "            initialChFormData.totalFrequency=freq; // 总频率\n"
-    "            initialChFormData.totalEnergy=consump; // 总耗电量\n"
+    "            initialChFormData.totalVoltage = voltage; // 总电压\n"
+    "            initialChFormData.totalCurrent = current; // 总电流\n"
+    "            initialChFormData.totalPower = power; // 总功率\n"
+    "            initialChFormData.totalFrequency = freq; // 总频率\n"
+    "            initialChFormData.totalEnergy = consump; // 总耗电量\n"
+    "			initialChFormData.threeType = \"\"; // 相序\n"
+    "            if (Number(voltage) > totalVoltageAll) {\n"
+    "                totalVoltageAll = Number(voltage);\n"
+    "            }\n"
+    "            totalCurrentAll = totalCurrentAll + Number(current);\n"
+    "            totalPowerAll = totalPowerAll + Number(power);\n"
+    "            totalFrequencyAll = totalFrequencyAll + Number(freq);\n"
+    "            totalEnergyAll = totalEnergyAll + Number(consump);\n"
     "            initialTotalFormList.push(initialChFormData);\n"
     "        }\n"
     
     "    }\n"
-    
-    
+    "    // 合并总数\n"
+    
+    "    initialAllFormData.totalVoltage = (totalVoltageAll*1.732).toFixed(2); // 总电压\n"
+    "    initialAllFormData.totalCurrent = totalCurrentAll.toFixed(2); // 总电流\n"
+    "    initialAllFormData.totalPower = totalPowerAll.toFixed(2); // 总功率\n"
+    "    initialAllFormData.totalFrequency = totalFrequencyAll.toFixed(2); // 总频率\n"
+    "    initialAllFormData.totalEnergy = totalEnergyAll.toFixed(2); // 总耗电量\n"
+    "	    initialAllFormData.threeType = \"\";  // 相序\n"
+    "    console.log(initialAllFormData)\n"
     "}\n"
     
     "function Channel_Info(j_data, channel_power_infro) {\n"
@@ -61,30 +83,31 @@ const char *p_display_data =
     "    // const dataList = document.getElementById('threshold_mannage');\n"
     "    // // 清空现有的列表项\n"
     "    // dataList.innerHTML = '';\n"
-    "    initialYzFormList=[];\n"
+    "    initialYzFormList = [];\n"
     "    channel_length = channel_power_infro.length\n"
     "        //遍历数据数组\n"
     "    for (let j = 1; j < channel_length; j++) {\n"
     "        const initialChFormData = {};\n"
     "        //自动生成名称列\n"
-    "        initialChFormData.productChName=\"CH\" + j;\n"
+    "        initialChFormData.productChName = \"CH\" + j;\n"
     "        //自动生成编号列\n"
-    "        initialChFormData.productChId=j;\n"
+    "        initialChFormData.productChId = j;\n"
     "        //自动生成电流上限列\n"
-    "        initialChFormData.currentUpperAction= channel_power_infro[j].thr.c_upper / 10.0;\n"
+    "        initialChFormData.currentUpperAction = channel_power_infro[j].thr.c_upper / 100.0;\n"
     
     "        // 自动生成电压上限列\n"
-    "        initialChFormData.voltageUpperAction=channel_power_infro[j].thr.v_upper / 10.0;\n"
+    "        initialChFormData.voltageUpperAction = channel_power_infro[j].thr.v_upper / 100.0;\n"
     
     "        // 自动生成电压下限列\n"
-    "        initialChFormData.voltageDownAction=channel_power_infro[j].thr.v_lower / 10.0;\n"
+    "        initialChFormData.voltageDownAction = channel_power_infro[j].thr.v_lower / 100.0;\n"
     
     "        // 自动生成功率上限列\n"
-    "        initialChFormData.powerUpperAction=channel_power_infro[j].thr.p_upper / 1000.0;\n"
+    "        val = channel_power_infro[j].thr.p_upper / 100.0 / 1000.0\n"
+    "        initialChFormData.powerUpperAction = val.toFixed(2);\n"
     
     "        // 自动生成耗电量上限列\n"
-    "        initialChFormData.alarmContentUpperAction=channel_power_infro[j].thr.w_upper / 1000.0;\n"
-    "        initialChFormData.channel_power_infro=channel_power_infro[j]\n"
+    "        initialChFormData.alarmContentUpperAction = channel_power_infro[j].thr.w_upper / 100.0;\n"
+    "        initialChFormData.channel_power_infro = channel_power_infro[j]\n"
     "        initialYzFormList.push(initialChFormData);\n"
     "    }\n"
     "}\n"
@@ -110,20 +133,23 @@ const char *p_display_data =
     "// 单项总体监控对象\n"
     "let initialFormData = {\n"
     
+    "};\n"
+    "// 三相总体监控对象\n"
+    "let initialAllFormData = {\n"
+    
     "};\n"
     
     "// 阈值设置集合\n"
     "let initialYzFormList = [];\n"
     
     
-    "let channel_power_infro1=[];\n"
-    
+    "let channel_power_infro1 = [];"
 ;
 
 // 文本数据大小(包括null终止符)
-const size_t p_display_data_size = 3722;
+const size_t p_display_data_size = 5053;
 
 // 文本长度(字符数)
-const size_t p_display_data_length = 3405;
+const size_t p_display_data_length = 4668;
 
 #endif /* P_DISPLAY_DATA_H */

+ 2 - 2
f407/applications/html_h/index_css.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: index.css */
 /* 文件大小: 10638 字节 */
-/* 生成时间: 2025-09-16 05:47:26 */
+/* 生成时间: 2026-01-10 02:29:38 */
 /* 编码: utf-8 */
 #ifndef P_CSS_INDEX_H
 #define P_CSS_INDEX_H
@@ -31,7 +31,7 @@ const char *p_css_index =
     ".container {\n"
     "    display: flex;\n"
     "    flex-direction: column;\n"
-    "    height: 95vh;\n"
+    "    height: 85vh;\n"
     "    gap: 20px;\n"
     "}\n"
     ".summary-section {\n"

Datei-Diff unterdrückt, da er zu groß ist
+ 967 - 207
f407/applications/html_h/index_html.h


+ 1 - 1
f407/applications/html_h/index_js.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: index.js */
 /* 文件大小: 417 字节 */
-/* 生成时间: 2025-09-16 05:47:25 */
+/* 生成时间: 2026-01-10 02:29:36 */
 /* 编码: utf-8 */
 #ifndef P_INDEX_JS_H
 #define P_INDEX_JS_H

+ 15 - 4
f407/applications/html_h/operation.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: operation.js */
-/* 文件大小: 3765 字节 */
-/* 生成时间: 2025-09-16 05:47:25 */
+/* 文件大小: 4028 字节 */
+/* 生成时间: 2026-01-10 02:29:36 */
 /* 编码: utf-8 */
 #ifndef P_OPERATION_H
 #define P_OPERATION_H
@@ -48,6 +48,8 @@ const char *p_operation =
     
     "// 阈值设置\n"
     "function threshold_update(orgin_data) {\n"
+    "	    console.log(\"阈值设置\")\n"
+    "    console.log(orgin_data)\n"
     "    translate_data = orgin_data\n"
     "    console.log(translate_data)\n"
     "    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_THRESHOLD, 0, 1, translate_data)\n"
@@ -67,6 +69,15 @@ const char *p_operation =
     "    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_CONSUMER_CLEAR, 0, 1, orgin_data)\n"
     "    ws.send(a)\n"
     "}\n"
+    "//配置相信息\n"
+    "function power_cfg_ph(orgin_data) {\n"
+    "    console.log(orgin_data)\n"
+    "    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_PH_CFG, 0, 1, orgin_data)\n"
+    "    ws.send(a)\n"
+    "}\n"
+    
+    
+    
     
     "// 网络设置\n"
     "function network_settings(data) {\n"
@@ -140,9 +151,9 @@ const char *p_operation =
 ;
 
 // 文本数据大小(包括null终止符)
-const size_t p_operation_size = 3766;
+const size_t p_operation_size = 4029;
 
 // 文本长度(字符数)
-const size_t p_operation_length = 3597;
+const size_t p_operation_length = 3842;
 
 #endif /* P_OPERATION_H */

+ 1 - 1
f407/applications/html_h/petite-vue.min.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: petite-vue.min.js */
 /* 文件大小: 16901 字节 */
-/* 生成时间: 2025-09-16 05:47:25 */
+/* 生成时间: 2026-01-10 02:29:37 */
 /* 编码: us-ascii */
 #ifndef P_PETITE_VUE_H
 #define P_PETITE_VUE_H

+ 1 - 1
f407/applications/html_h/sys_para.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: sys_paras.js */
 /* 文件大小: 240 字节 */
-/* 生成时间: 2025-09-16 05:47:25 */
+/* 生成时间: 2026-01-10 02:29:37 */
 /* 编码: us-ascii */
 #ifndef P_SYS_PARA_H
 #define P_SYS_PARA_H

+ 8 - 8
f407/applications/html_h/ws.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: ws.js */
-/* 文件大小: 3306 字节 */
-/* 生成时间: 2025-09-16 05:47:25 */
+/* 文件大小: 3315 字节 */
+/* 生成时间: 2026-01-10 02:29:37 */
 /* 编码: utf-8 */
 #ifndef P_WS_H
 #define P_WS_H
@@ -28,7 +28,7 @@ const char *p_ws =
     "let his_alarm = []\n"
     
     "function on_ws_msg(js) {\n"
-    "    console.log(\"执行\")\n"
+    "    // console.log(\"执行\")\n"
     
     "    // debugger\n"
     "    //总电源数据显示\n"
@@ -140,16 +140,16 @@ const char *p_ws =
     "    activePageIntervalId = setInterval(pageFunction, intervalTime);\n"
     "}\n"
     
-    "ws = new WS('ws://'+window.location.host+'/ws',on_ws_msg);\n"
+    "//ws = new WS('ws://' + window.location.host + '/ws', on_ws_msg);\n"
     
-    "// ws = new WS('ws://192.168.1.134/ws', on_ws_msg);\n"
-    "//ws = new WS('ws://192.168.1.134/websocket/TMS-WebSocket', on_ws_msg);"
+    " ws = new WS('ws://192.168.1.166/ws', on_ws_msg);\n"
+    " // ws = new WS('ws://192.168.1.79/websocket/TMS-WebSocket', on_ws_msg);"
 ;
 
 // 文本数据大小(包括null终止符)
-const size_t p_ws_size = 3307;
+const size_t p_ws_size = 3316;
 
 // 文本长度(字符数)
-const size_t p_ws_length = 3148;
+const size_t p_ws_length = 3157;
 
 #endif /* P_WS_H */

+ 439 - 177
nor_web/api/channel_display.js

@@ -1,177 +1,439 @@
-// 通道集合
-let channelAllList = [];
-let channelAllList1 = [];
-
-
-
-function channel_display(j_data, channel_power_infro) {
-    channelAllList = [];
-    channelAllList1 = [];
-    length = channel_power_infro.length
-    for (let j = 1; j < length; j++) {
-        let alarm=channel_power_infro[j].alarm;
-        let thr=channel_power_infro[j].thr;
-        num = channel_power_infro[j].info.type
-            // 创建一个新的列表项元素
-        const channelFormData1 = {
-
-        };
-        //自动生成通道名称列
-        channelFormData1.productChName="CH" + j
-        //自动生成通道号
-        channelFormData1.productChId=j
-
-        // 开启延时
-        channelFormData1.firingInterval=channel_power_infro[j].info.start_delay
-
-        // 关闭延时
-        channelFormData1.closeInterval=channel_power_infro[j].info.stop_delay
-        channelFormData1.channel_power_infro=channel_power_infro[j];
-        channelAllList1.push(channelFormData1);
-        if(productTypeData.productType=='0'){
-            const channelFormData = {
-
-            };
-
-            if(alarm.c_upper!=0){
-                channelFormData.colorStyledl='color: red;font-weight: bold;'
-            }else{
-                channelFormData.colorStyledl=''
-            }
-            if( alarm.p_upper!=0 ){
-                channelFormData.colorStylegl='color: red;font-weight: bold;'
-            }else{
-                channelFormData.colorStylegl=''
-            }
-            if( alarm.v_lower!=0){
-                channelFormData.colorStyledy2='color: #ff00ff;font-weight: bold;'
-            }else{
-                channelFormData.colorStyledy2=''
-            }
-            if( alarm.v_upper!=0){
-                channelFormData.colorStyledy='color: red;font-weight: bold;'
-            }else{
-                channelFormData.colorStyledy=''
-            }
-            if(alarm.w_upper!=0){
-                channelFormData.colorStylehdl='color: red;font-weight: bold;'
-            }else{
-                channelFormData.colorStylehdl=''
-            }
-            //自动生成设备名称列
-
-            //自动生成通道名称列
-            channelFormData.productChName="CH" + j
-            //自动生成通道号
-            channelFormData.productChId=j
-            //自动生成相序列
-            channelFormData.productPhOrder="L1"
-            // 自动生成电压列
-            var val = channel_power_infro[j].power[0].voltage / 10.0;
-            channelFormData.productChVoltage=val
-
-            // 自动生成电流列
-            var val = channel_power_infro[j].power[0].current / 10.0;
-            channelFormData.productChCurrent=val
-            // 自动生成功率列
-            var val = channel_power_infro[j].power[0].power / 1000.0;
-            channelFormData.productChPower= val
-
-
-            // 自动生成频率列
-            var val = channel_power_infro[j].power[0].freq / 100.0;
-            channelFormData.productChPowerFreq= val
-
-
-            // 自动生成耗电量列
-            var val = channel_power_infro[j].power[0].consump / 1000.0;
-            channelFormData.productChConsumption=val
-
-
-            // 自动生成功率因数列
-            // const factor_td = document.createElement('td');
-            // var val = channel_power_infro[j].power[0].factor / 100.0;
-
-            // 开启延时
-            channelFormData.firingInterval=channel_power_infro[j].info.start_delay
-
-            // 关闭延时
-            channelFormData.closeInterval=channel_power_infro[j].info.stop_delay
-
-
-            //通道状态
-            channel_status = channel_power_infro[j].status
-            channelFormData.productChStatus=channel_status
-            channelFormData.channel_power_infro=channel_power_infro[j]
-            channelAllList.push(channelFormData);
-        }else{
-
-            // 自动生成电压列
-            for(let m = 0; m < channel_power_infro[j].power.length; m++){
-                const channelFormData = {
-
-                };
-                if(alarm.c_upper!=0 || alarm.p_upper!=0 || alarm.v_lower!=0 || alarm.v_upper!=0 || alarm.w_upper!=0){
-                    channelFormData.colorStyledy='color: red;'
-                    channelFormData.colorStyledl='color: red;'
-                    channelFormData.colorStylegl='color: red;'
-                    channelFormData.colorStylehdl='color: red;'
-                }else{
-                    channelFormData.colorStyle=''
-                }
-                //自动生成设备名称列
-                //自动生成通道名称列
-                channelFormData.productChName="CH" + j
-                //自动生成通道号
-                channelFormData.productChId=j
-                //自动生成相序列
-                channelFormData.productPhOrder="L"+(m+1)
-
-                // 自动生成功率因数列
-                // const factor_td = document.createElement('td');
-                // var val = channel_power_infro[j].power[0].factor / 100.0;
-
-                // 开启延时
-                channelFormData.firingInterval=channel_power_infro[j].info.start_delay
-
-                // 关闭延时
-                channelFormData.closeInterval=channel_power_infro[j].info.stop_delay
-
-
-                //通道状态
-                channel_status = channel_power_infro[j].status
-
-                channelFormData.productChStatus=channel_status
-
-                var val = channel_power_infro[j].power[m].voltage / 10.0;
-                channelFormData.productChVoltage=val
-
-                // 自动生成电流列
-                var val = channel_power_infro[j].power[m].current / 10.0;
-                channelFormData.productChCurrent=val
-                // 自动生成功率列
-                var val = channel_power_infro[j].power[m].power / 1000.0;
-                channelFormData.productChPower= val
-
-
-                // 自动生成频率列
-                var val = channel_power_infro[j].power[m].freq / 100.0;
-                channelFormData.productChPowerFreq= val
-
-
-                // 自动生成耗电量列
-                var val = channel_power_infro[j].power[0].consump / 1000.0;
-                channelFormData.productChConsumption=val
-                channelFormData.channel_power_infro=channel_power_infro[j]
-                channelAllList.push(channelFormData);
-            }
-
-
-
-        }
-
-
-
-    }
-}
-
+// 通道集合
+let channelAllList = [];
+let channelAllList1 = [];
+
+
+
+function channel_display(j_data, channel_power_infro) {
+    channelAllList = [];
+    channelAllList1 = [];
+    length = channel_power_infro.length
+    for (let j = 1; j < length; j++) {
+        let alarm = channel_power_infro[j].alarm;
+        let thr = channel_power_infro[j].thr;
+        num = channel_power_infro[j].info.type
+            // 创建一个新的列表项元素
+        const channelFormData1 = {
+
+        };
+        //自动生成通道名称列
+        channelFormData1.productChName = "CH" + j
+            //自动生成通道号
+        channelFormData1.productChId = j
+
+        // 开启延时
+        channelFormData1.firingInterval = channel_power_infro[j].info.start_delay
+
+        // 关闭延时
+        channelFormData1.closeInterval = channel_power_infro[j].info.stop_delay
+        channelFormData1.channel_power_infro = channel_power_infro[j];
+        channelAllList1.push(channelFormData1);
+        if (productTypeData.productType == '0' || productTypeData.productType == '1') {
+            const channelFormData = {
+
+            };
+
+            if (alarm.l1_c_upper != 0) {
+                channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+            } else {
+                channelFormData.colorStyledl = ''
+            }
+            if (alarm.l1_p_upper != 0) {
+                channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+            } else {
+                channelFormData.colorStylegl = ''
+            }
+            if (alarm.l1_v_lower != 0) {
+                channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+            } else {
+                channelFormData.colorStyledy2 = ''
+            }
+            if (alarm.l1_v_upper != 0) {
+                channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+            } else {
+                channelFormData.colorStyledy = ''
+            }
+            if (alarm.l1_w_upper != 0) {
+                channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+            } else {
+                channelFormData.colorStylehdl = ''
+            }
+            //自动生成设备名称列
+
+            //自动生成通道名称列
+            channelFormData.productChName = "CH" + j
+                //自动生成通道号
+            channelFormData.productChId = j
+                //自动生成相序列
+            channelFormData.productPhOrder = "L1"
+                // 自动生成电压列
+            var val = channel_power_infro[j].power[0].voltage / 100.0;
+            channelFormData.productChVoltage = val
+
+            // 自动生成电流列
+            var val = channel_power_infro[j].power[0].current / 100.0;
+            channelFormData.productChCurrent = val
+                // 自动生成功率列
+            var val = channel_power_infro[j].power[0].power / 100.0 / 1000.0;
+            channelFormData.productChPower = val.toFixed(2)
+
+
+            // 自动生成频率列
+            var val = channel_power_infro[j].power[0].freq / 100.0;
+            channelFormData.productChPowerFreq = val
+
+
+            // 自动生成耗电量列
+            var val = channel_power_infro[j].power[0].consump / 100.0;
+            channelFormData.productChConsumption = val
+
+
+            // 自动生成功率因数列
+            // const factor_td = document.createElement('td');
+            var val = channel_power_infro[j].power[0].factor / 100.0;
+            channelFormData.productChPowerFactor = val
+
+            // 开启延时
+            channelFormData.firingInterval = channel_power_infro[j].info.start_delay
+
+            // 关闭延时
+            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
+
+
+            //通道状态
+            channel_status = channel_power_infro[j].status
+            channelFormData.productChStatus = channel_status
+            channelFormData.channel_power_infro = channel_power_infro[j]
+            channelAllList.push(channelFormData);
+            // 三相进单项出
+        } else if (productTypeData.productType == '4' || productTypeData.productType == '5') {
+            var ph_id = channel_power_infro[j].info.ph_id;
+            ph_id = ph_id > 0 ? ph_id - 1 : ph_id;
+            const channelFormData = {
+
+            };
+            if (ph_id == 0) {
+                if (alarm.l1_c_upper != 0) {
+                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledl = ''
+                }
+                if (alarm.l1_p_upper != 0) {
+                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStylegl = ''
+                }
+                if (alarm.l1_v_lower != 0) {
+                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledy2 = ''
+                }
+                if (alarm.l1_v_upper != 0) {
+                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledy = ''
+                }
+                if (alarm.l1_w_upper != 0) {
+                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStylehdl = ''
+                }
+            } else if (ph_id == 1) {
+                if (alarm.l2_c_upper != 0) {
+                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledl = ''
+                }
+                if (alarm.l2_p_upper != 0) {
+                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStylegl = ''
+                }
+                if (alarm.l2_v_lower != 0) {
+                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledy2 = ''
+                }
+                if (alarm.l2_v_upper != 0) {
+                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledy = ''
+                }
+                if (alarm.l2_w_upper != 0) {
+                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStylehdl = ''
+                }
+            } else if (ph_id == 2) {
+                if (alarm.l3_c_upper != 0) {
+                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledl = ''
+                }
+                if (alarm.l3_p_upper != 0) {
+                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStylegl = ''
+                }
+                if (alarm.l3_v_lower != 0) {
+                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledy2 = ''
+                }
+                if (alarm.l3_v_upper != 0) {
+                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStyledy = ''
+                }
+                if (alarm.l3_w_upper != 0) {
+                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+                } else {
+                    channelFormData.colorStylehdl = ''
+                }
+            }
+
+
+            //自动生成设备名称列
+
+            //自动生成通道名称列
+            channelFormData.productChName = "CH" + j
+                //自动生成通道号
+            channelFormData.productChId = j
+                //自动生成相序列
+            channelFormData.productPhOrder = "L" + channel_power_infro[j].info.ph_id;
+            // 自动生成电压列
+            var val = channel_power_infro[j].power[ph_id].voltage / 100.0;
+            channelFormData.productChVoltage = val
+
+            // 自动生成电流列
+            var val = channel_power_infro[j].power[ph_id].current / 100.0;
+            channelFormData.productChCurrent = val
+                // 自动生成功率列
+            var val = channel_power_infro[j].power[ph_id].power / 100.0 / 1000.0;
+            channelFormData.productChPower = val.toFixed(2)
+
+
+            // 自动生成频率列
+            var val = channel_power_infro[j].power[ph_id].freq / 100.0;
+            channelFormData.productChPowerFreq = val
+
+
+            // 自动生成耗电量列
+            var val = channel_power_infro[j].power[ph_id].consump / 100.0;
+            channelFormData.productChConsumption = val
+
+
+            // 自动生成功率因数列
+            // const factor_td = document.createElement('td');
+            var val = channel_power_infro[j].power[ph_id].factor / 100.0;
+            channelFormData.productChPowerFactor = val
+
+            // 开启延时
+            channelFormData.firingInterval = channel_power_infro[j].info.start_delay
+
+            // 关闭延时
+            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
+
+
+            //通道状态
+            channel_status = channel_power_infro[j].status
+            channelFormData.productChStatus = channel_status
+            channelFormData.channel_power_infro = channel_power_infro[j]
+            channelAllList.push(channelFormData);
+
+        } else if (productTypeData.productType == '6') {
+            // 三相进两项出
+            var ph_id = channel_power_infro[j].info.ph_id;
+            ph_id = ph_id - 1;
+            var ph_val = channel_power_infro[j].info.ph_val;
+            ph_val = ph_val - 1;
+            // 第一相数据
+            // 自动生成电压列
+            var channelFormData = {
+
+            };
+            // l1_v_lower 电压低限  l1_v_upper 电压高先
+            if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {
+                channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+            }
+            if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {
+                channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+            }
+            if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {
+                channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+            }
+            if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {
+                channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+            }
+            if (alarm.l1_w_upper != 0 || alarm.l2_w_upper != 0 || alarm.l3_w_upper != 0) {
+                channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+            }
+            //自动生成通道名称列
+            channelFormData.productChName = "CH" + j
+                //自动生成通道号
+            channelFormData.productChId = j
+                //自动生成相序列
+            channelFormData.productPhOrder = "L" + (ph_id + 1)
+                // 自动生成功率因数列
+                // const factor_td = document.createElement('td');
+            var val = channel_power_infro[j].power[ph_id].factor / 100.0;
+            channelFormData.productChPowerFactor = val;
+            // 开启延时
+            channelFormData.firingInterval = channel_power_infro[j].info.start_delay
+                // 关闭延时
+            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
+                //通道状态
+            channel_status = channel_power_infro[j].status
+            channelFormData.productChStatus = channel_status
+            var val = channel_power_infro[j].power[ph_id].voltage / 100.0;
+            channelFormData.productChVoltage = val
+                // 自动生成电流列
+            var val = channel_power_infro[j].power[ph_id].current / 100.0;
+            channelFormData.productChCurrent = val
+                // 自动生成功率列
+            var val = channel_power_infro[j].power[ph_id].power / 100.0 / 1000.0;
+            channelFormData.productChPower = val.toFixed(2)
+                // 自动生成频率列
+            var val = channel_power_infro[j].power[ph_id].freq / 100.0;
+            channelFormData.productChPowerFreq = val
+                // 自动生成耗电量列
+            var val = channel_power_infro[j].power[ph_id].consump / 100.0;
+            channelFormData.productChConsumption = val
+            channelFormData.channel_power_infro = channel_power_infro[j]
+            channelAllList.push(channelFormData);
+            // 第二相数据
+            channelFormData = {
+
+            };
+            // l1_v_lower 电压低限  l1_v_upper 电压高先
+            if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {
+                channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+            }
+            if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {
+                channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+            }
+            if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {
+                channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+            }
+            if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {
+                channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+            }
+            if (alarm.l1_w_upper != 0 || alarm.l2_w_upper != 0 || alarm.l3_w_upper != 0) {
+                channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+            }
+            //自动生成通道名称列
+            channelFormData.productChName = "CH" + j
+                //自动生成通道号
+            channelFormData.productChId = j
+                //自动生成相序列
+            channelFormData.productPhOrder = "L" + (ph_val + 1)
+                // 自动生成功率因数列
+                // const factor_td = document.createElement('td');
+            var val = channel_power_infro[j].power[ph_val].factor / 100.0;
+            channelFormData.productChPowerFactor = val;
+            // 开启延时
+            channelFormData.firingInterval = channel_power_infro[j].info.start_delay
+                // 关闭延时
+            channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
+                //通道状态
+            channel_status = channel_power_infro[j].status
+
+            channelFormData.productChStatus = channel_status
+            var val = channel_power_infro[j].power[ph_val].voltage / 100.0;
+            channelFormData.productChVoltage = val
+                // 自动生成电流列
+            var val = channel_power_infro[j].power[ph_val].current / 100.0;
+            channelFormData.productChCurrent = val
+                // 自动生成功率列
+            var val = channel_power_infro[j].power[ph_val].power / 100.0 / 1000.0;
+            channelFormData.productChPower = val.toFixed(2)
+                // 自动生成频率列
+            var val = channel_power_infro[j].power[ph_val].freq / 100.0;
+            channelFormData.productChPowerFreq = val
+                // 自动生成耗电量列
+            var val = channel_power_infro[j].power[ph_val].consump / 100.0;
+            channelFormData.productChConsumption = val
+            channelFormData.channel_power_infro = channel_power_infro[j]
+            channelAllList.push(channelFormData);
+
+
+        } else {
+            // 三相进三相出
+            // 自动生成电压列
+            for (let m = 0; m < channel_power_infro[j].power.length; m++) {
+                const channelFormData = {
+
+                };
+                // l1_v_lower 电压低限  l1_v_upper 电压高先
+                if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {
+                    channelFormData.colorStyledl = 'color: red;font-weight: bold;'
+                }
+                if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {
+                    channelFormData.colorStylegl = 'color: red;font-weight: bold;'
+                }
+                if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {
+                    channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
+                }
+                if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {
+                    channelFormData.colorStyledy = 'color: red;font-weight: bold;'
+                }
+                if (alarm.l1_w_upper != 0 || alarm.l3_w_upper != 0 || alarm.l3_w_upper != 0) {
+                    channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
+                }
+
+
+                //自动生成设备名称列
+                //自动生成通道名称列
+                channelFormData.productChName = "CH" + j
+                    //自动生成通道号
+                channelFormData.productChId = j
+                    //自动生成相序列
+                channelFormData.productPhOrder = "L" + (m + 1)
+
+                // 自动生成功率因数列
+                // const factor_td = document.createElement('td');
+                var val = channel_power_infro[j].power[m].factor / 100.0;
+                channelFormData.productChPowerFactor = val;
+                // 开启延时
+                channelFormData.firingInterval = channel_power_infro[j].info.start_delay
+
+                // 关闭延时
+                channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
+
+
+                //通道状态
+                channel_status = channel_power_infro[j].status
+
+                channelFormData.productChStatus = channel_status
+
+                var val = channel_power_infro[j].power[m].voltage / 100.0;
+                channelFormData.productChVoltage = val
+
+                // 自动生成电流列
+                var val = channel_power_infro[j].power[m].current / 100.0;
+                channelFormData.productChCurrent = val
+                    // 自动生成功率列
+                var val = channel_power_infro[j].power[m].power / 100.0 / 1000.0;
+                channelFormData.productChPower = val.toFixed(2)
+
+
+                // 自动生成频率列
+                var val = channel_power_infro[j].power[m].freq / 100.0;
+                channelFormData.productChPowerFreq = val
+
+
+                // 自动生成耗电量列
+                var val = channel_power_infro[j].power[m].consump / 100.0;
+                channelFormData.productChConsumption = val
+                channelFormData.channel_power_infro = channel_power_infro[j]
+                channelAllList.push(channelFormData);
+            }
+
+
+
+        }
+
+
+
+    }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1861 - 1845
nor_web/api/data.js


+ 134 - 108
nor_web/api/display_data.js

@@ -1,108 +1,134 @@
-function total_Infor(j, total_data,type) {
-    initialTotalFormList=[];
-    len = total_data.length
-        //显示总信息
-    for (let i = 0; i <=len-1; i++) {
-        num = i + 1
-        voltage = total_data[i].voltage.toFixed(2)
-        current = total_data[i].current.toFixed(2)
-        power = total_data[i].power
-        power = power / 1000
-        power = power.toFixed(3)
-        consump = total_data[i].consump.toFixed(2)
-        // if (consump <= 0) {
-        //     consump = 0
-        // }
-        // consump = consump / 1000
-        // consump = consump.toFixed(3)
-        freq = total_data[i].freq.toFixed(2)
-        if(type=='0'){
-            initialFormData.totalVoltage=voltage ; // 总电压
-            initialFormData.totalCurrent=current ; // 总电流
-            initialFormData.totalPower=power;  // 总功率
-            initialFormData.totalFrequency=freq; // 总频率
-            initialFormData.totalEnergy=consump; // 总耗电量
-            break
-        }else{
-            const initialChFormData = {};
-            initialChFormData.totalVoltage=voltage ; // 总电压
-            initialChFormData.totalCurrent=current ; // 总电流
-            initialChFormData.totalPower=power;  // 总功率
-            initialChFormData.totalFrequency=freq; // 总频率
-            initialChFormData.totalEnergy=consump; // 总耗电量
-            initialTotalFormList.push(initialChFormData);
-        }
-
-    }
-
-
-}
-
-function Channel_Info(j_data, channel_power_infro) {
-    channel_length = channel_power_infro.length
-    channel_display(j_data, channel_power_infro, channel_infro)
-
-}
-
-function threshold_mannage(orgin_data, channel_power_infro) {
-    // 获取要插入新行的DOM元素
-    // const dataList = document.getElementById('threshold_mannage');
-    // // 清空现有的列表项
-    // dataList.innerHTML = '';
-    initialYzFormList=[];
-    channel_length = channel_power_infro.length
-        //遍历数据数组
-    for (let j = 1; j < channel_length; j++) {
-        const initialChFormData = {};
-        //自动生成名称列
-        initialChFormData.productChName="CH" + j;
-        //自动生成编号列
-        initialChFormData.productChId=j;
-        //自动生成电流上限列
-        initialChFormData.currentUpperAction= channel_power_infro[j].thr.c_upper / 10.0;
-
-        // 自动生成电压上限列
-        initialChFormData.voltageUpperAction=channel_power_infro[j].thr.v_upper / 10.0;
-
-        // 自动生成电压下限列
-        initialChFormData.voltageDownAction=channel_power_infro[j].thr.v_lower / 10.0;
-
-        // 自动生成功率上限列
-        initialChFormData.powerUpperAction=channel_power_infro[j].thr.p_upper / 1000.0;
-
-        // 自动生成耗电量上限列
-        initialChFormData.alarmContentUpperAction=channel_power_infro[j].thr.w_upper / 1000.0;
-        initialChFormData.channel_power_infro=channel_power_infro[j]
-        initialYzFormList.push(initialChFormData);
-    }
-}
-
-function now_time() {
-    const now = new Date();
-
-    // 获取年、月、日、小时、分钟和秒
-    const year = now.getFullYear();
-    const month = now.getMonth() + 1;
-    const day = now.getDate();
-    const hours = now.getHours();
-    const minutes = now.getMinutes();
-    const seconds = now.getSeconds();
-
-    formattedTime = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
-    return formattedTime
-}
-
-// 三相总体状态集合
-let initialTotalFormList = [];
-
-// 单项总体监控对象
-let initialFormData = {
-
-};
-
-// 阈值设置集合
-let initialYzFormList = [];
-
-
-let channel_power_infro1=[];
-
+function total_Infor(j, total_data, type) {
+    initialTotalFormList = [];
+    len = total_data.length
+    let totalVoltageAll = 0.00;
+    let totalCurrentAll = 0.00;
+    let totalPowerAll = 0.00;
+    let totalFrequencyAll = 0.00;
+    let totalEnergyAll = 0.00;
+    //显示总信息
+    for (let i = 0; i <= len - 1; i++) {
+        num = i + 1
+        voltage = total_data[i].voltage.toFixed(2)
+        current = total_data[i].current.toFixed(2)
+        power = total_data[i].power
+        power /= 10
+        power = power / 100.0
+        power = power.toFixed(3)
+        consump = total_data[i].consump.toFixed(2)
+            // if (consump <= 0) {
+            //     consump = 0
+            // }
+            // consump = consump / 1000
+            // consump = consump.toFixed(3)
+        freq = total_data[i].freq.toFixed(2)
+        if (type == '0' || type == '1') {
+            initialFormData.totalVoltage = voltage; // 总电压
+            initialFormData.totalCurrent = current; // 总电流
+            initialFormData.totalPower = power; // 总功率
+            initialFormData.totalFrequency = freq; // 总频率
+            initialFormData.totalEnergy = consump; // 总耗电量
+			      initialFormData.threeType = ""; // 相序
+            break
+        } else {
+            const initialChFormData = {};
+            initialChFormData.totalVoltage = voltage; // 总电压
+            initialChFormData.totalCurrent = current; // 总电流
+            initialChFormData.totalPower = power; // 总功率
+            initialChFormData.totalFrequency = freq; // 总频率
+            initialChFormData.totalEnergy = consump; // 总耗电量
+			initialChFormData.threeType = ""; // 相序
+            if (Number(voltage) > totalVoltageAll) {
+                totalVoltageAll = Number(voltage);
+            }
+            totalCurrentAll = totalCurrentAll + Number(current);
+            totalPowerAll = totalPowerAll + Number(power);
+            totalFrequencyAll = totalFrequencyAll + Number(freq);
+            totalEnergyAll = totalEnergyAll + Number(consump);
+            initialTotalFormList.push(initialChFormData);
+        }
+
+    }
+    // 合并总数
+
+    initialAllFormData.totalVoltage = (totalVoltageAll*1.732).toFixed(2); // 总电压
+    initialAllFormData.totalCurrent = totalCurrentAll.toFixed(2); // 总电流
+    initialAllFormData.totalPower = totalPowerAll.toFixed(2); // 总功率
+    initialAllFormData.totalFrequency = totalFrequencyAll.toFixed(2); // 总频率
+    initialAllFormData.totalEnergy = totalEnergyAll.toFixed(2); // 总耗电量
+	    initialAllFormData.threeType = "";  // 相序
+    console.log(initialAllFormData)
+}
+
+function Channel_Info(j_data, channel_power_infro) {
+    channel_length = channel_power_infro.length
+    channel_display(j_data, channel_power_infro, channel_infro)
+
+}
+
+function threshold_mannage(orgin_data, channel_power_infro) {
+    // 获取要插入新行的DOM元素
+    // const dataList = document.getElementById('threshold_mannage');
+    // // 清空现有的列表项
+    // dataList.innerHTML = '';
+    initialYzFormList = [];
+    channel_length = channel_power_infro.length
+        //遍历数据数组
+    for (let j = 1; j < channel_length; j++) {
+        const initialChFormData = {};
+        //自动生成名称列
+        initialChFormData.productChName = "CH" + j;
+        //自动生成编号列
+        initialChFormData.productChId = j;
+        //自动生成电流上限列
+        initialChFormData.currentUpperAction = channel_power_infro[j].thr.c_upper / 100.0;
+
+        // 自动生成电压上限列
+        initialChFormData.voltageUpperAction = channel_power_infro[j].thr.v_upper / 100.0;
+
+        // 自动生成电压下限列
+        initialChFormData.voltageDownAction = channel_power_infro[j].thr.v_lower / 100.0;
+
+        // 自动生成功率上限列
+        val = channel_power_infro[j].thr.p_upper / 100.0 / 1000.0
+        initialChFormData.powerUpperAction = val.toFixed(2);
+
+        // 自动生成耗电量上限列
+        initialChFormData.alarmContentUpperAction = channel_power_infro[j].thr.w_upper / 100.0;
+        initialChFormData.channel_power_infro = channel_power_infro[j]
+        initialYzFormList.push(initialChFormData);
+    }
+}
+
+function now_time() {
+    const now = new Date();
+
+    // 获取年、月、日、小时、分钟和秒
+    const year = now.getFullYear();
+    const month = now.getMonth() + 1;
+    const day = now.getDate();
+    const hours = now.getHours();
+    const minutes = now.getMinutes();
+    const seconds = now.getSeconds();
+
+    formattedTime = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
+    return formattedTime
+}
+
+// 三相总体状态集合
+let initialTotalFormList = [];
+
+// 单项总体监控对象
+let initialFormData = {
+
+};
+// 三相总体监控对象
+let initialAllFormData = {
+
+};
+
+// 阈值设置集合
+let initialYzFormList = [];
+
+
+let channel_power_infro1 = [];

+ 14 - 14
nor_web/api/index.js

@@ -1,14 +1,14 @@
-export  function    getApiBaseUrl (){
-    const { protocol, hostname, port } = window.location;
-
-    // 开发环境特殊处理
-    if (hostname === 'localhost' || hostname === '127.0.0.1') {
-        return 'http://localhost:8084/pdu'; // 开发服务器地址
-    }
-
-    // 生产环境使用当前域名
-    return port
-        ? `${protocol}//${hostname}:${port}/pdu`
-        : `${protocol}//${hostname}/pdu`;
-}
-
+export  function    getApiBaseUrl (){
+    const { protocol, hostname, port } = window.location;
+
+    // 开发环境特殊处理
+    if (hostname === 'localhost' || hostname === '127.0.0.1') {
+        return 'http://localhost:8084/pdu'; // 开发服务器地址
+    }
+
+    // 生产环境使用当前域名
+    return port
+        ? `${protocol}//${hostname}:${port}/pdu`
+        : `${protocol}//${hostname}/pdu`;
+}
+

+ 137 - 126
nor_web/api/operation.js

@@ -1,127 +1,138 @@
-// 总开
-function all_open() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_CH_ALL, 0, 0, 1, 0));
-}
-
-// 总关
-function all_close() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_CH_ALL, 0, 0, 0, 0));
-}
-
-// 通道开启
-function single_open(j_data, channel_power_infro, j) {
-    j_c_data = j_data
-    opreation_data = channel_power_infro
-    j_status = opreation_data[j].status;
-    if (j_status == 0) {
-        opreation_data[j].status = 1
-    }
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_SWITCH, 0, 0, opreation_data[j])
-        //var b = bin_to_pkt(a)
-    ws.send(a)
-}
-
-// 通道关闭
-function single_close(j_data, channel_power_infro, j) {
-    j_c_data = j_data
-    opreation_data = channel_power_infro
-    j_status = opreation_data[j].status;
-    if (j_status == 1) {
-        opreation_data[j].status = 0
-    }
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_SWITCH, 0, 0, opreation_data[j])
-        //var b = bin_to_pkt(a)
-    ws.send(a)
-}
-
-// 阈值设置
-function threshold_update(orgin_data) {
-    translate_data = orgin_data
-    console.log(translate_data)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_THRESHOLD, 0, 1, translate_data)
-    ws.send(a)
-}
-// 延时设置保存
-function delay_update(orgin_data) {
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_OPEN_DELAY, 0, 1, orgin_data)
-    ws.send(a)
-    b = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_CLOSE_DELAY, 0, 1, orgin_data)
-    ws.send(b)
-}
-
-// 耗电量重置
-function power_reset(orgin_data) {
-    console.log(orgin_data)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_CONSUMER_CLEAR, 0, 1, orgin_data)
-    ws.send(a)
-}
-
-// 网络设置
-function network_settings(data) {
-    console.log(data)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_NETWORK, 0, 1, data)
-    ws.send(a)
-}
-
-// 485设置
-function modbus_settings(data) {
-    console.log(data)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_MODBUS, 0, 1, data)
-    ws.send(a)
-}
-
-// snmp设置
-function snmp_settings(data) {
-    console.log(data)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SNMP, 0, 1, data)
-    ws.send(a)
-}
-
-// 设备系统时间设置
-function sys_settings(data) {
-    console.log(data)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 1, data)
-    ws.send(a)
-}
-
-// 设备固件升级
-function sys_up_settings(data, file) {
-    console.log(data)
-    console.log(file)
-    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 1, data)
-    ws.send(a)
-}
-
-// 状态监控请求
-function function1() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_POWER_TOTAL, 0, 0, 0));
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, 0, 0, 0));
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_SENSOR, 0, 0, 0, 0));
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 0, 0));
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_ALARM, 0, 0, 0, 0));
-}
-
-//获取网络配置信息
-function function2() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_NETWORK, 0, 0, 0));
-}
-//获取485配置
-function function3() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_MODBUS, 0, 0, 0));
-
-}
-//获取SNMP配置
-function function4() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SNMP, 0, 0, 0));
-
-}
-// 获取设备配置
-function function5() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 0, 0));
-
-}
-//获取传感器配置
-function function6() {
-    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_SENSOR, 0, 0, 0, 0));
-
+// 总开
+function all_open() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_CH_ALL, 0, 0, 1, 0));
+}
+
+// 总关
+function all_close() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_CH_ALL, 0, 0, 0, 0));
+}
+
+// 通道开启
+function single_open(j_data, channel_power_infro, j) {
+    j_c_data = j_data
+    opreation_data = channel_power_infro
+    j_status = opreation_data[j].status;
+    if (j_status == 0) {
+        opreation_data[j].status = 1
+    }
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_SWITCH, 0, 0, opreation_data[j])
+        //var b = bin_to_pkt(a)
+    ws.send(a)
+}
+
+// 通道关闭
+function single_close(j_data, channel_power_infro, j) {
+    j_c_data = j_data
+    opreation_data = channel_power_infro
+    j_status = opreation_data[j].status;
+    if (j_status == 1) {
+        opreation_data[j].status = 0
+    }
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_SWITCH, 0, 0, opreation_data[j])
+        //var b = bin_to_pkt(a)
+    ws.send(a)
+}
+
+// 阈值设置
+function threshold_update(orgin_data) {
+	    console.log("阈值设置")
+    console.log(orgin_data)
+    translate_data = orgin_data
+    console.log(translate_data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_THRESHOLD, 0, 1, translate_data)
+    ws.send(a)
+}
+// 延时设置保存
+function delay_update(orgin_data) {
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_OPEN_DELAY, 0, 1, orgin_data)
+    ws.send(a)
+    b = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_CLOSE_DELAY, 0, 1, orgin_data)
+    ws.send(b)
+}
+
+// 耗电量重置
+function power_reset(orgin_data) {
+    console.log(orgin_data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_CONSUMER_CLEAR, 0, 1, orgin_data)
+    ws.send(a)
+}
+//配置相信息
+function power_cfg_ph(orgin_data) {
+    console.log(orgin_data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, SUB_TYPE.SUB_TYPE_POWER_PH_CFG, 0, 1, orgin_data)
+    ws.send(a)
+}
+
+
+
+
+// 网络设置
+function network_settings(data) {
+    console.log(data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_NETWORK, 0, 1, data)
+    ws.send(a)
+}
+
+// 485设置
+function modbus_settings(data) {
+    console.log(data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_MODBUS, 0, 1, data)
+    ws.send(a)
+}
+
+// snmp设置
+function snmp_settings(data) {
+    console.log(data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SNMP, 0, 1, data)
+    ws.send(a)
+}
+
+// 设备系统时间设置
+function sys_settings(data) {
+    console.log(data)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 1, data)
+    ws.send(a)
+}
+
+// 设备固件升级
+function sys_up_settings(data, file) {
+    console.log(data)
+    console.log(file)
+    a = pkt_to_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 1, data)
+    ws.send(a)
+}
+
+// 状态监控请求
+function function1() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_POWER_TOTAL, 0, 0, 0));
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_POWER_CH, 0, 0, 0));
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_SENSOR, 0, 0, 0, 0));
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 0, 0));
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_ALARM, 0, 0, 0, 0));
+}
+
+//获取网络配置信息
+function function2() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_NETWORK, 0, 0, 0));
+}
+//获取485配置
+function function3() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_MODBUS, 0, 0, 0));
+
+}
+//获取SNMP配置
+function function4() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SNMP, 0, 0, 0));
+
+}
+// 获取设备配置
+function function5() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_PARAS, SUB_TYPE.SUB_TYPE_PARAS_SYS, 0, 0, 0));
+
+}
+//获取传感器配置
+function function6() {
+    ws.send(mk_hdr_bin(0, PKT_TYPE.PKT_TYPE_SENSOR, 0, 0, 0, 0));
+
 }

+ 11 - 11
nor_web/api/sys_paras.js

@@ -1,12 +1,12 @@
-channle_datas = []
-let currentNumber = 1;
-let resultArray = [];
-const cyclesPerNumber = 3;
-let button_status = [];
-const data = [];
-const datas = []
-const finall_data = []
-const processing_data = {}
-function parasd_process(parasd_data) {
-
+channle_datas = []
+let currentNumber = 1;
+let resultArray = [];
+const cyclesPerNumber = 3;
+let button_status = [];
+const data = [];
+const datas = []
+const finall_data = []
+const processing_data = {}
+function parasd_process(parasd_data) {
+
 }

+ 134 - 134
nor_web/api/ws.js

@@ -1,134 +1,134 @@
-let productTypeData = {
-
-};
-let data_alarm = [];
-let sensorc_list = [];
-let network_data = {}
-    // 485配置
-let cas_data = {}
-    // snmp
-let snmp_data = {}
-    // 设备信息
-let lang_data = {}
-
-let sensor_data = {}
-
-let his_alarm = []
-
-function on_ws_msg(js) {
-    console.log("执行")
-
-    // debugger
-    //总电源数据显示
-    if (js.powert != undefined) {
-        total_data = js.powert.total
-        type = js.powert.type
-        productTypeData.productType = type;
-        total_Infor(js, total_data, type)
-    }
-    //通道电源数据显示
-    if (js.powerc != undefined) {
-        channel_power_infro = js.powerc
-        channel_infro = channel_power_infro.power
-        alarm = js.powerc.alarm
-        channel_number = js.powerc.info // 通道基础信息
-        channel_power = js.powerc.power
-        j_data = js
-            // 通道号
-        Channel_Info(j_data, channel_power_infro)
-
-        // 阈值设置
-        threshold_mannage(js, channel_power_infro)
-            // systemAlarm(alarm)
-            //populateTable(j_data,channel_power)
-    }
-
-    // 警告
-    if (js.alarmd != undefined) {
-        alarmd_data = js.alarmd
-        data_alarm = [];
-        data_alarm = alarm_process(alarmd_data)
-
-    }
-    // 配置信息(网络配置,485配置,snmp,设备信息)
-
-    if (js.cas != undefined) {
-        cas_data = js.cas;
-    }
-    if (js.network != undefined) {
-        network_data = js.network
-    }
-    if (js.snmp != undefined) {
-        snmp_data = js.snmp
-        console.log("snmp数据--》")
-        console.log(snmp_data)
-    }
-    if (js.sensorc != undefined) {
-        sensor_data = js.sensorc;
-    }
-    // if (js.paras != undefined) {
-    //     // 设备信息
-    //     lang_data = js.paras.lang
-    // }
-    if (js.sensorc != undefined) {
-        sensorc_list = [];
-        // 传感器
-        sensorc_list = js.sensorc
-            // console.log(sensorc_list)
-    }
-    if (js.sys != undefined) {
-        lang_data = js.sys
-            // console.log(lang_data)
-    }
-
-    if (js.his_alarmd != undefined) {
-        his_alarm = js.his_alarmd;
-        console.log(his_alarm)
-    }
-
-}
-
-function alarm_process(alarmd_data) {
-    const result = [];
-    const alarmProperties = alarmd_data.alarm;
-
-    const baseProperties = {
-        "ch": alarmd_data.ch,
-        "time": alarmd_data.time
-    };
-    let idCounter = 1;
-
-    for (const key in alarmProperties) {
-        if (alarmProperties.hasOwnProperty(key) && alarmProperties[key] == 1) {
-            const newObj = {...baseProperties, [key]: alarmProperties[key], "id": idCounter++ };
-            result.push(newObj);
-        }
-    }
-
-    return result;
-}
-
-function ws_hdr() {
-    var proto = window.location.protocol,
-        ws;
-    if (proto == 'https:') {
-        ws = 'wss://';
-    } else {
-        ws = 'ws://';
-    }
-    return ws;
-}
-
-function setActivePage(pageFunction, intervalTime) {
-
-    // 停止之前活动的页面定时函数
-    if (activePageIntervalId != null) {
-        clearInterval(activePageIntervalId);
-    }
-    activePageIntervalId = setInterval(pageFunction, intervalTime);
-}
-
-ws = new WS('ws://'+window.location.host+'/ws',on_ws_msg);
-
-// ws = new WS('ws://192.168.1.134/ws', on_ws_msg);
-//ws = new WS('ws://192.168.1.134/websocket/TMS-WebSocket', on_ws_msg);
+let productTypeData = {
+
+};
+let data_alarm = [];
+let sensorc_list = [];
+let network_data = {}
+    // 485配置
+let cas_data = {}
+    // snmp
+let snmp_data = {}
+    // 设备信息
+let lang_data = {}
+
+let sensor_data = {}
+
+let his_alarm = []
+
+function on_ws_msg(js) {
+    // console.log("执行")
+
+    // debugger
+    //总电源数据显示
+    if (js.powert != undefined) {
+        total_data = js.powert.total
+        type = js.powert.type
+        productTypeData.productType = type;
+        total_Infor(js, total_data, type)
+    }
+    //通道电源数据显示
+    if (js.powerc != undefined) {
+        channel_power_infro = js.powerc
+        channel_infro = channel_power_infro.power
+        alarm = js.powerc.alarm
+        channel_number = js.powerc.info // 通道基础信息
+        channel_power = js.powerc.power
+        j_data = js
+            // 通道号
+        Channel_Info(j_data, channel_power_infro)
+
+        // 阈值设置
+        threshold_mannage(js, channel_power_infro)
+            // systemAlarm(alarm)
+            //populateTable(j_data,channel_power)
+    }
+
+    // 警告
+    if (js.alarmd != undefined) {
+        alarmd_data = js.alarmd
+        data_alarm = [];
+        data_alarm = alarm_process(alarmd_data)
+
+    }
+    // 配置信息(网络配置,485配置,snmp,设备信息)
+
+    if (js.cas != undefined) {
+        cas_data = js.cas;
+    }
+    if (js.network != undefined) {
+        network_data = js.network
+    }
+    if (js.snmp != undefined) {
+        snmp_data = js.snmp
+        console.log("snmp数据--》")
+        console.log(snmp_data)
+    }
+    if (js.sensorc != undefined) {
+        sensor_data = js.sensorc;
+    }
+    // if (js.paras != undefined) {
+    //     // 设备信息
+    //     lang_data = js.paras.lang
+    // }
+    if (js.sensorc != undefined) {
+        sensorc_list = [];
+        // 传感器
+        sensorc_list = js.sensorc
+            // console.log(sensorc_list)
+    }
+    if (js.sys != undefined) {
+        lang_data = js.sys
+            // console.log(lang_data)
+    }
+
+    if (js.his_alarmd != undefined) {
+        his_alarm = js.his_alarmd;
+        console.log(his_alarm)
+    }
+
+}
+
+function alarm_process(alarmd_data) {
+    const result = [];
+    const alarmProperties = alarmd_data.alarm;
+
+    const baseProperties = {
+        "ch": alarmd_data.ch,
+        "time": alarmd_data.time
+    };
+    let idCounter = 1;
+
+    for (const key in alarmProperties) {
+        if (alarmProperties.hasOwnProperty(key) && alarmProperties[key] == 1) {
+            const newObj = {...baseProperties, [key]: alarmProperties[key], "id": idCounter++ };
+            result.push(newObj);
+        }
+    }
+
+    return result;
+}
+
+function ws_hdr() {
+    var proto = window.location.protocol,
+        ws;
+    if (proto == 'https:') {
+        ws = 'wss://';
+    } else {
+        ws = 'ws://';
+    }
+    return ws;
+}
+
+function setActivePage(pageFunction, intervalTime) {
+
+    // 停止之前活动的页面定时函数
+    if (activePageIntervalId != null) {
+        clearInterval(activePageIntervalId);
+    }
+    activePageIntervalId = setInterval(pageFunction, intervalTime);
+}
+
+//ws = new WS('ws://' + window.location.host + '/ws', on_ws_msg);
+
+ ws = new WS('ws://192.168.1.166/ws', on_ws_msg);
+ // ws = new WS('ws://192.168.1.79/websocket/TMS-WebSocket', on_ws_msg);

Datei-Diff unterdrückt, da er zu groß ist
+ 612 - 612
nor_web/css/index.css


Datei-Diff unterdrückt, da er zu groß ist
+ 963 - 203
nor_web/index.html