From 801a451429b294a435e1c69db55c70e20c45444d Mon Sep 17 00:00:00 2001
From: cloudflight <cloudflight@126.com>
Date: 星期二, 24 十二月 2024 23:54:11 +0800
Subject: [PATCH] 换热器、普通控制阀状态问题

---
 Hydro/Yw.Hydraulic.Core/src/input3.cpp                |   15 +++++++++------
 Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs |   12 +++++++++++-
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs b/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs
index a143881..2c0bf51 100644
--- a/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs
+++ b/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs
@@ -155,7 +155,17 @@
             valveSb.AppendLine(";ID              	Node1           	Node2           	Diameter    	Type	Setting     	MinorLoss  ");
             network.Valves?.ForEach(x =>
             {
-                valveSb.AppendLine($"{x.Id}\t{x.StartNode.Id}\t{x.EndNode.Id}\t{x.Diameter:F4}\t{x.ValveType}\t{x.ValveSetting}\t{x.MinorLoss:F4}\t;\t");// + $"0");
+                string settings;
+                if (x.LinkStatus == ValveStatus.None )
+                {
+                    settings = x.ValveSetting;
+                }
+                else
+                {
+                    settings = "Undefined";
+                }
+                if (string.IsNullOrEmpty(settings)) settings = "Undefined";
+                valveSb.AppendLine($"{x.Id}\t{x.StartNode.Id}\t{x.EndNode.Id}\t{x.Diameter:F4}\t{x.ValveType}\t{settings}\t{x.MinorLoss:F4}\t;\t");// + $"0");
                 if (!string.IsNullOrEmpty(x.LinkStatus))
                 {
                     statusSb.AppendLine(x.Id + "\t" + x.LinkStatus);
diff --git a/Hydro/Yw.Hydraulic.Core/src/input3.cpp b/Hydro/Yw.Hydraulic.Core/src/input3.cpp
index da276d9..6459a7e 100644
--- a/Hydro/Yw.Hydraulic.Core/src/input3.cpp
+++ b/Hydro/Yw.Hydraulic.Core/src/input3.cpp
@@ -532,14 +532,17 @@
     if (type == GPV)
     {
         c = findcurve(net, parser->Tok[5]);
-       /* 奇怪的方法,为什么要进行openflag的判断呢? 
-       int d=0;
-        EN_getcurveindex(pr, parser->Tok[5], &d); */
-
-        if (c == 0) return setError(parser, 5, 206);
+        /* 奇怪的方法,为什么要进行openflag的判断呢?
+        int d=0;
+         EN_getcurveindex(pr, parser->Tok[5], &d); */
+         /*[Cloudflight修改]2024-12-24
+          GPV阀门的曲线设置,如果没有设置曲线,那么就将状态设置为OPEN
+          if (c == 0) return setError(parser, 5, 206);
+         */
+        if (c == 0) status = OPEN;//return setError(parser, 5, 206);
         setting = c;
         net->Curve[c].Type = HLOSS_CURVE;
-        status = OPEN;
+        //status = OPEN;
     }
     else if (!getfloat(parser->Tok[5], &setting)) return setError(parser, 5, 202);
     if (n >= 7 && !getfloat(parser->Tok[6], &lcoeff)) return setError(parser, 6, 202);

--
Gitblit v1.9.3