Procházet zdrojové kódy

3相进单相出,网页,后台bug

liyi před 5 měsíci
rodič
revize
5161f17fe3

+ 64 - 13
f407/applications/html_h/index_html.h

@@ -1,7 +1,7 @@
 /* 自动生成的文本数据头文件 */
 /* 源文件: index.html */
-/* 文件大小: 130619 字节 */
-/* 生成时间: 2026-04-29 15:49:03 */
+/* 文件大小: 133988 字节 */
+/* 生成时间: 2026-05-04 13:58:49 */
 /* 编码: utf-8 */
 #ifndef P_INDEX_HTML_H
 #define P_INDEX_HTML_H
@@ -1360,6 +1360,8 @@ const char *p_index_html =
     "        let reconnectTimer = null;\n"
     
     "        let channelTelemetry = [];\n"
+    "        let channelTelemetry1 = [];\n"
+    "        let channelTelemetry2 = [];\n"
     "        let channelSwitchStates = [];\n"
     "        let envData = {\n"
     "            temp: 25,\n"
@@ -1435,6 +1437,9 @@ const char *p_index_html =
     "                                channelThresholds[i] = {name:\"smartPDU\",vMin: 198, vMax: 242, iMax: 100, pMax: 15000, eMax: 500 };\n"
     "                                channelDelays[i] = {name:\"smartPDU\", onSec: 1.8, offSec: 1.5 };\n"
     "                                channelTelemetry[i] = {name:\"smartPDU\", voltage: 220, current: 30, activePower: 6600, reactivePower: 2500, apparentPower: 7000, powerFactor: 0.85, frequency: 50.00, energyKwh: 100 };\n"
+    "                                channelTelemetry1[i] = {name:\"smartPDU\", voltage: 220, current: 30, activePower: 6600, reactivePower: 2500, apparentPower: 7000, powerFactor: 0.85, frequency: 50.00, energyKwh: 100 };\n"
+    "                                channelTelemetry2[i] = {name:\"smartPDU\", voltage: 220, current: 30, activePower: 6600, reactivePower: 2500, apparentPower: 7000, powerFactor: 0.85, frequency: 50.00, energyKwh: 100 };\n"
+    
     "                                channelSwitchStates[i] = true;\n"
     "                                channel_info[i] ={name:\"SmartPDU\",addr:0,sch:0,phse:0,phse1:1,open:1,close:1,status:1,\n"
     "                                                l1_v_upper:0,l1_v_lower:0,l1_c_upper:0,l1_p_upper:0,l1_w_upper:0,\n"
@@ -1478,6 +1483,36 @@ const char *p_index_html =
     "                        }\n"
     "                        //updateTableData();\n"
     "                    }\n"
+    "                    if (obj.power_data1 != undefined) {\n"
+    "                        for (let i = 0; i < device_info.chs; i++) {\n"
+    "                            \n"
+    "                            channelTelemetry1[i].voltage = obj.power_data1[i].voltage;\n"
+    "                            channelTelemetry1[i].current = obj.power_data1[i].current;\n"
+    "                            channelTelemetry1[i].activePower = obj.power_data1[i].power;\n"
+    "                            channelTelemetry1[i].reactivePower = obj.power_data1[i].reactive_power;\n"
+    "                            channelTelemetry1[i].apparentPower = obj.power_data1[i].app_power;\n"
+    "                            channelTelemetry1[i].powerFactor = obj.power_data1[i].factor;\n"
+    "                            channelTelemetry1[i].frequency = obj.power_data1[i].freq;\n"
+    "                            channelTelemetry1[i].energyKwh = obj.power_data1[i].consump;\n"
+    "                            obj.power_data1[i] = null;\n"
+    "                        }\n"
+    "                        //updateTableData();\n"
+    "                    }\n"
+    "                    if (obj.power_data2 != undefined) {\n"
+    "                        for (let i = 0; i < device_info.chs; i++) {\n"
+    "                            \n"
+    "                            channelTelemetry2[i].voltage = obj.power_data2[i].voltage;\n"
+    "                            channelTelemetry2[i].current = obj.power_data2[i].current;\n"
+    "                            channelTelemetry2[i].activePower = obj.power_data2[i].power;\n"
+    "                            channelTelemetry2[i].reactivePower = obj.power_data2[i].reactive_power;\n"
+    "                            channelTelemetry2[i].apparentPower = obj.power_data2[i].app_power;\n"
+    "                            channelTelemetry2[i].powerFactor = obj.power_data2[i].factor;\n"
+    "                            channelTelemetry2[i].frequency = obj.power_data2[i].freq;\n"
+    "                            channelTelemetry2[i].energyKwh = obj.power_data2[i].consump;\n"
+    "                            obj.power_data2[i] = null;\n"
+    "                        }\n"
+    "                        //updateTableData();\n"
+    "                    }                  \n"
     "                    if (obj.power_all != undefined) {\n"
     "                        all_channel = obj.power_all;\n"
     "                        obj.power_all = null;\n"
@@ -1717,12 +1752,26 @@ const char *p_index_html =
     "                const row = tableRows[i];\n"
     "                if (!row) continue;\n"
     
-    "                const tele = channelTelemetry[i] || {};\n"
-    "                const target = channelSwitchStates[i];\n"
-    "                const delays = channelDelays[i];\n"
-    "                const thr = channelThresholds[i];\n"
-    "                const info = channel_info[i];\n"
+    "                let tele= channelTelemetry[i]|| {};\n"
+    "                let target = channelSwitchStates[i];\n"
+    "                let delays = channelDelays[i];\n"
+    "                let thr = channelThresholds[i];\n"
+    "                let info = channel_info[i];\n"
     
+    "                if(device_info.power_type == 4 || device_info.power_type == 5)\n"
+    "                {\n"
+    "                    if(info.phse == 1)\n"
+    "                    {\n"
+    "                        //tele = channelTelemetry[i];\n"
+    "                    }else if(info.phse == 2)\n"
+    "                    {\n"
+    "                        tele = channelTelemetry1[i];\n"
+    "                    }else if(info.phse == 3)\n"
+    "                    {\n"
+    "                        tele = channelTelemetry2[i];\n"
+    "                    }\n"
+    "                }\n"
+    "                    \n"
     "                // 检查阈值告警\n"
     "                const alarms = [];\n"
     
@@ -1755,7 +1804,7 @@ const char *p_index_html =
     "                // 有功功率 (第4列,索引3)\n"
     "                if (cells[4]) {\n"
     "                    cells[4].innerHTML = ((tele.activePower || 0).toLocaleString()) + '<span class=\"unit-sub\">kW</span>';\n"
-    "                    cells[4].className = 'numeric-value power-bg ' + (info.l1_p_upper || info.l2_p_upper || info.l3_p_upper ? 'threshold-alarm' : '');\n"
+    "                    cells[4].className = 'numeric-value power-bg ' + (info.l1_p_upper || info.l2_p_upper || info.l3_p_upper? 'threshold-alarm' : '');\n"
     "                }\n"
     "                // 无功功率 (第5列,索引4)\n"
     "                if (cells[5]) {\n"
@@ -2044,9 +2093,11 @@ const char *p_index_html =
     "            clearInterval(device_info_id);\n"
     "            power_all_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_ALL, 0, 0));}, 600);\n"
     "            power_data_id = setInterval(function() { \n"
-    "            ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L1, 0, 0));\n"
-    "            setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_INFO, 0, 0));},40);\n"
-    "                }, 300);\n"
+    "                ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L1, 0, 0));\n"
+    "                setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L2, 0, 0));},40);\n"
+    "                setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L3, 0, 0));},40);\n"
+    "                setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_INFO, 0, 0));},40);\n"
+    "            }, 300);\n"
     "            power_thr_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_THR, 0, 0));}, 500);\n"
     "            sensor_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_SENSOR,0, 0, 0));}, 1000);          \n"
     "            wanning_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_WANNING,0, 0, 0));}, 3000);\n"
@@ -2260,9 +2311,9 @@ const char *p_index_html =
 ;
 
 // 文本数据大小(包括null终止符)
-const size_t p_index_html_size = 130620;
+const size_t p_index_html_size = 133989;
 
 // 文本长度(字符数)
-const size_t p_index_html_length = 128070;
+const size_t p_index_html_length = 131439;
 
 #endif /* P_INDEX_HTML_H */

+ 2 - 1
f427/applications/snmp.c

@@ -539,6 +539,7 @@ static snmp_err_t power_get_instance(const u32_t *column, const u32_t *row_oid,
 {
 	power_handle_new_t *all = power_get_all();
 	th_table_oid_ranges[0].max = all->chs;
+	
 	if (!snmp_oid_in_range(row_oid, row_oid_len, th_table_oid_ranges, LWIP_ARRAYSIZE(th_table_oid_ranges)))
         return SNMP_ERR_NOSUCHINSTANCE;
 	cell_instance->reference.u32 = row_oid[0];
@@ -762,7 +763,7 @@ static s16_t power_get_value(struct snmp_node_instance *instance, void *value)
 		uint8_t id = 0;
 		if( all->power_type == PDU_AC_I3O1 || all->power_type == PDU_AC_I3O1_H)
 		{
-			id = 0;
+			id = all->pch[row-1].info.pse.ph -1;
 		}else if(all->power_type == PDU_AC_I3O2)
 		{
 			id = all->pch[row-1].info.pse.ph2.ph_l - 1;

+ 60 - 9
nor_web/AC3-AC1/index.html

@@ -1348,6 +1348,8 @@
         let reconnectTimer = null;
 
         let channelTelemetry = [];
+        let channelTelemetry1 = [];
+        let channelTelemetry2 = [];
         let channelSwitchStates = [];
         let envData = {
             temp: 25,
@@ -1423,6 +1425,9 @@
                                 channelThresholds[i] = {name:"smartPDU",vMin: 198, vMax: 242, iMax: 100, pMax: 15000, eMax: 500 };
                                 channelDelays[i] = {name:"smartPDU", onSec: 1.8, offSec: 1.5 };
                                 channelTelemetry[i] = {name:"smartPDU", voltage: 220, current: 30, activePower: 6600, reactivePower: 2500, apparentPower: 7000, powerFactor: 0.85, frequency: 50.00, energyKwh: 100 };
+                                channelTelemetry1[i] = {name:"smartPDU", voltage: 220, current: 30, activePower: 6600, reactivePower: 2500, apparentPower: 7000, powerFactor: 0.85, frequency: 50.00, energyKwh: 100 };
+                                channelTelemetry2[i] = {name:"smartPDU", voltage: 220, current: 30, activePower: 6600, reactivePower: 2500, apparentPower: 7000, powerFactor: 0.85, frequency: 50.00, energyKwh: 100 };
+
                                 channelSwitchStates[i] = true;
                                 channel_info[i] ={name:"SmartPDU",addr:0,sch:0,phse:0,phse1:1,open:1,close:1,status:1,
                                                 l1_v_upper:0,l1_v_lower:0,l1_c_upper:0,l1_p_upper:0,l1_w_upper:0,
@@ -1466,6 +1471,36 @@
                         }
                         //updateTableData();
                     }
+                    if (obj.power_data1 != undefined) {
+                        for (let i = 0; i < device_info.chs; i++) {
+                            
+                            channelTelemetry1[i].voltage = obj.power_data1[i].voltage;
+                            channelTelemetry1[i].current = obj.power_data1[i].current;
+                            channelTelemetry1[i].activePower = obj.power_data1[i].power;
+                            channelTelemetry1[i].reactivePower = obj.power_data1[i].reactive_power;
+                            channelTelemetry1[i].apparentPower = obj.power_data1[i].app_power;
+                            channelTelemetry1[i].powerFactor = obj.power_data1[i].factor;
+                            channelTelemetry1[i].frequency = obj.power_data1[i].freq;
+                            channelTelemetry1[i].energyKwh = obj.power_data1[i].consump;
+                            obj.power_data1[i] = null;
+                        }
+                        //updateTableData();
+                    }
+                    if (obj.power_data2 != undefined) {
+                        for (let i = 0; i < device_info.chs; i++) {
+                            
+                            channelTelemetry2[i].voltage = obj.power_data2[i].voltage;
+                            channelTelemetry2[i].current = obj.power_data2[i].current;
+                            channelTelemetry2[i].activePower = obj.power_data2[i].power;
+                            channelTelemetry2[i].reactivePower = obj.power_data2[i].reactive_power;
+                            channelTelemetry2[i].apparentPower = obj.power_data2[i].app_power;
+                            channelTelemetry2[i].powerFactor = obj.power_data2[i].factor;
+                            channelTelemetry2[i].frequency = obj.power_data2[i].freq;
+                            channelTelemetry2[i].energyKwh = obj.power_data2[i].consump;
+                            obj.power_data2[i] = null;
+                        }
+                        //updateTableData();
+                    }                  
                     if (obj.power_all != undefined) {
                         all_channel = obj.power_all;
                         obj.power_all = null;
@@ -1705,12 +1740,26 @@
                 const row = tableRows[i];
                 if (!row) continue;
 
-                const tele = channelTelemetry[i] || {};
-                const target = channelSwitchStates[i];
-                const delays = channelDelays[i];
-                const thr = channelThresholds[i];
-                const info = channel_info[i];
+                let tele= channelTelemetry[i]|| {};
+                let target = channelSwitchStates[i];
+                let delays = channelDelays[i];
+                let thr = channelThresholds[i];
+                let info = channel_info[i];
 
+                if(device_info.power_type == 4 || device_info.power_type == 5)
+                {
+                    if(info.phse == 1)
+                    {
+                        //tele = channelTelemetry[i];
+                    }else if(info.phse == 2)
+                    {
+                        tele = channelTelemetry1[i];
+                    }else if(info.phse == 3)
+                    {
+                        tele = channelTelemetry2[i];
+                    }
+                }
+                    
                 // 检查阈值告警
                 const alarms = [];
 
@@ -1743,7 +1792,7 @@
                 // 有功功率 (第4列,索引3)
                 if (cells[4]) {
                     cells[4].innerHTML = ((tele.activePower || 0).toLocaleString()) + '<span class="unit-sub">kW</span>';
-                    cells[4].className = 'numeric-value power-bg ' + (info.l1_p_upper || info.l2_p_upper || info.l3_p_upper ? 'threshold-alarm' : '');
+                    cells[4].className = 'numeric-value power-bg ' + (info.l1_p_upper || info.l2_p_upper || info.l3_p_upper? 'threshold-alarm' : '');
                 }
                 // 无功功率 (第5列,索引4)
                 if (cells[5]) {
@@ -2032,9 +2081,11 @@
             clearInterval(device_info_id);
             power_all_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_ALL, 0, 0));}, 600);
             power_data_id = setInterval(function() { 
-            ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L1, 0, 0));
-            setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_INFO, 0, 0));},40);
-                }, 300);
+                ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L1, 0, 0));
+                setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L2, 0, 0));},40);
+                setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_L3, 0, 0));},40);
+                setTimeout(() => {ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_INFO, 0, 0));},40);
+            }, 300);
             power_thr_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_ELE_INFO, SUB_POWER_TYPE.NEW_SUB_PKT_TYPE_ELE_DATA_THR, 0, 0));}, 500);
             sensor_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_SENSOR,0, 0, 0));}, 1000);          
             wanning_id = setInterval(function() { ws.send(mk_hdr_bin(0, PKT_TYPE.NEW_PKT_TYPE_WANNING,0, 0, 0));}, 3000);

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2210 - 1605
nor_web/h_html/index_html.h