From 57c002c734126f647a35f8406064c27e8128fbf3 Mon Sep 17 00:00:00 2001
From: yanderong <307678080@qq.com>
Date: 星期二, 29 九月 2026 21:11:05 +0800
Subject: [PATCH] feat: 储能数据同步-字段增加

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/udan/service/UdanEmsMessageProcessor.java |   33 +++++++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/udan/service/UdanEmsMessageProcessor.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/udan/service/UdanEmsMessageProcessor.java
index 08ea393..15c104a 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/udan/service/UdanEmsMessageProcessor.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/udan/service/UdanEmsMessageProcessor.java
@@ -238,6 +238,9 @@
                 case 31: value.setAPhaseActivePower((double) f32(input, type)); break;
                 case 34: value.setBPhaseActivePower((double) f32(input, type)); break;
                 case 37: value.setCPhaseActivePower((double) f32(input, type)); break;
+                case 50: value.setControlMode(enumName(input, type, "PcsControlMode")); break;
+                case 60: value.setCommStatus(enumName(input, type, "CommStatus")); break;
+
                 default: skip(input, type);
             }
         });
@@ -263,6 +266,9 @@
                 case 33: value.setCumulativeDischargeKwh(f64(input, type)); break;
                 case 34: value.setCumulativeChargeKwh(f64(input, type)); break;
                 case 36: value.setAvgCellTemp((double) u32(input, type) - 40D); break;
+                case 52: value.setCommStatus(enumName(input, type, "CommStatus")); break;
+                case 48: value.setBatteryStatus(enumName(input, type, "BatteryStatus")); break;
+
                 default: skip(input, type);
             }
         });
@@ -299,12 +305,13 @@
                 case 4: value.setSupply_temp((double) f32(input, type)); break;
                 case 5: value.setReturn_temp((double) f32(input, type)); break;
                 case 8: value.setEnv_temp((double) f32(input, type)); break;
-                case 9: value.setBackwater_press((double) f32(input, type)); break;
-                case 10: value.setOut_water_press((double) f32(input, type)); break;
-                case 13: value.setCompress_status(enumName(input, type, "RunStatus")); break;
-                case 14: value.setCompress_heat_status(enumName(input, type, "RunStatus")); break;
-                case 15: value.setElectric_heat_status(enumName(input, type, "RunStatus")); break;
-                case 16: value.setPump_status(enumName(input, type, "RunStatus")); break;
+                case 21: value.setCool_start_temp((double) f32(input, type)); break;
+                case 22: value.setCool_stop_temp((double) f32(input, type)); break;
+                case 23: value.setHeat_start_temp((double) f32(input, type)); break;
+                case 24: value.setHeat_stop_temp((double) f32(input, type)); break;
+                case 6: value.setTms_mode(enumName(input, type, "TmsMode")); break;
+                case 28: value.setControl_mode(enumName(input, type, "TmsControlMode")); break;
+                case 25: value.setComm_status(enumName(input, type, "CommStatus")); break;
                 default: skip(input, type);
             }
         });
@@ -384,6 +391,20 @@
         if ("TmsRunStatus".equals(prefix)) {
             return new String[]{"TMS_RUN_STATUS_UNKNOWN", "TMS_RUN_STATUS_IDLE", "TMS_RUN_STATUS_READY_TO_START", "TMS_RUN_STATUS_RUNNING", "TMS_RUN_STATUS_DELAYED_SHUTDOWN", "TMS_RUN_STATUS_SELF_TEST", "TMS_RUN_STATUS_ALARMING"}[number < 0 || number > 6 ? 0 : number];
         }
+        if ("PcsControlMode".equals(prefix)) {
+            return new String[]{"PCS_CONTROL_MODE_UNKNOWN", "PCS_CONTROL_MODE_LOCAL_CONTROL", "PCS_CONTROL_MODE_REMOTE_CONTROL"}[number < 0 || number > 3 ? 0 : number];
+        }
+        if ("BatteryStatus".equals(prefix)) {
+            return new String[]{"Battery_Status_BAN_CHARGE_DISCHARGE", "Battery_Status_ONLY_CHARGE", "Battery_Status_ONLY_DISCHARGE","Battery_Status_NORMAL","Battery_Status_BAN_CHARGE_DISCHARGE_NEW","Battery_Status_IDLE"}[number < 0 || number > 6 ? 0 : number];
+        }
+        if ("TmsMode".equals(prefix)) {
+            return new String[]{"TMS_MODE_UNKNOWN", "TMS_MODE_REFRIGERATION", "TMS_MODE_HEATING","TMS_MODE_SELF_LOOP","TMS_MODE_AUTOMATIC","TMS_MODE_STOP"}[number < 0 || number > 6 ? 0 : number];
+        }
+        if ("TmsControlMode".equals(prefix)) {
+            return new String[]{"UNKNOWN", "OUTLET_WATER_TEMP", "INLET_WATER_TEMP","CELL_WEIGHT_TEMP","CELL_AVG_TEMP"}[number < 0 || number > 5 ? 0 : number];
+        }
+
+
         return prefix + "_" + number;
     }
     private static <T> T enumAt(T[] values, CodedInputStream input, int type) throws IOException {

--
Gitblit v1.7.1